Status: This specification is in progress. Any extra features people think of should be sent to the mailing list.
Add support for two switchable cue behaviours. Many users are familiar with a particular cue behaviour, and it would make it easier for users to transition to Mixxx if they configure the cue button to work they way they expect it.
Each mode will be selectable via the Preferences dialog (which pane? - Albert). The dialog should explain what each behaviour does (as in the explanation above), so users don't have to dig through documentation.
The default mode will be CDJ.
Both modes must be supported when using MIDI hardware and the Hercules. In order to facilitate this, we probably need to create a new ControlObject like “cue_generic”, whose behaviour gets changed depending on what's selected in the prefs. It looks like the cueing code is already nicely abstracted in a file called EngineBufferCue.cpp, with slots that get called when existing controls like “cue_simple” get fired. Each slot takes a parameter of type “double”, which hopefully indicates whether it was a button up/down event. If it doesn't, then we'll have to look into adding that.
This work breakdown structure (WBS) will become more detailed as the design above becomes more thorough and complete.
1. Configurable Cue Behaviour
1.1 Modify Preferences dialog
1.2 Modify EngineBufferCue
1.2.1 Implement basic slotControlCueCDJ/CDJ behaviour
1.2.2 [Implement the link between the preferences and EngineBufferCue - need to figure this out first]
1.2.3 Implement slotControlCueProxy (?) that calls the correct slot (simple, CDJ) based on the prefs
1.2.4 Implement "play after 3 seconds" behaviour in slotControlCueCDJ
1.2.5 Refactor slotControlCueSimple, if necessary
If you're interested in helping to code this feature, sign up your name below: