Make the Controller subsystem protocol-agnostic (support non-MIDI controllers)

Registered by Sean M. Pappalardo

Now that the MIDI controller subsystem is backend-agnostic (it uses multiple MIDI back ends where applicable,) we need to make it protocol-agnostic so we can add direct support for non-MIDI controllers such as ones that speak USB-HID, OSC, LiveWire, etc.

Blueprint information

Status:
Complete
Approver:
Mixxx Development Team
Priority:
Low
Drafter:
Sean M. Pappalardo
Direction:
Approved
Assignee:
Sean M. Pappalardo
Definition:
Approved
Series goal:
Accepted for 1.11
Implementation:
Implemented
Milestone target:
milestone icon 1.11.0
Started by
Sean M. Pappalardo
Completed by
RJ Skerry-Ryan

Sprints

Whiteboard

The new Controller subsystem is now in place and tests good with HID and MIDI controllers.

The following is now mostly historical, but keeping it for my reference:
I plan to add one more level of abstraction and rename Device to Controller. So we can have MidiControllers (of which Hss1394Controllers and Numark7Controllers would be sub-classes as they are now,) HidControllers, OscControllers, etc. with appropriate Enumerators managing each group. Non-MIDI controllers will communicate directly with scripts since each controller will have unique communication requirements. Mixxx's job will just be to deliver data unchanged between a controller its associated script.

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.