-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Gsoc2016 Keyboard Work Breakdown
You have to implement the pure virtual methods. Take MidiController and PortMidiController or HidController as a reference.
- Implement destructor.
- Implement presetExtension method. Add corresponding #define in defs_controller.h.
- Implement the accept method (part of the visitor pattern).
- Implement the savePreset method (just prepare it for the upcoming KeyboardPresetFileHandler).
- Implement the getPreset method.
- Implement the isMappable method.
- What do you need to do with the matchPreset method?
- What do you need to do with the receive method?
- ...
- Add tests.
Possible approaches:
- Install a global event filter or something similar to get all Qt keyboard events. Easier approach, but I think this won't let us differentiate between different physical keyboards.
- Access keyboards with a lower level API.
Reference: http://doc.qt.io/qt-4.8/eventsandfilters.html
- Add tests.
- Create a KeyboardPresetFileHandler class (like MidiControllerPresetFileHandler).
- Add tests.
- Append KeyboardEnumerator in the slotInitialize method.
Notes:
don't break tooltips, make them read current keyboard preset.
add CO (if not already existent) to enable/disable controllers (make a special one for keyboard controllers?). this is to keep support for the "enable keyboard shortcuts" option of the options menu.
mixxx currently leaks some keyboard events to Qt. This allows library lists to respond to arrow key presses for example. Do we want this? Better manage this via mapping like Traktro does?
Mixxx is a free and open-source DJ software.
Manual
Hardware Compatibility
Reporting Bugs
Getting Involved
Contribution Guidelines
Coding Guidelines
Using Git
Developer Guide
Creating Skins
Contributing Mappings
Mixxx Controls
MIDI Scripting
Components JS
HID Scripting