summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorronso0 <ronso0@mixxx.org>2020-10-23 17:40:59 +0200
committerronso0 <ronso0@mixxx.org>2020-10-23 17:43:02 +0200
commit9b4e3e139e90f2519ac2533c2c49c044bd7d757f (patch)
treecbcb27116470adb4ede1983b7a34cf3333c504cc
parent1fe930b79e35c17a880140dc914ce6c59660b86c (diff)
Controlpickermenu Mixer: sort actions into submenus, move EQ menu here, too
-rw-r--r--src/controllers/controlpickermenu.cpp191
1 files changed, 133 insertions, 58 deletions
diff --git a/src/controllers/controlpickermenu.cpp b/src/controllers/controlpickermenu.cpp
index 07632a6eaf..f2062fd809 100644
--- a/src/controllers/controlpickermenu.cpp
+++ b/src/controllers/controlpickermenu.cpp
@@ -25,31 +25,145 @@ ControlPickerMenu::ControlPickerMenu(QWidget* pParent)
m_parameterStr = tr("Parameter %1");
m_libraryStr = tr("Library");
- // Master Controls
+ // Mixer Controls
QMenu* mixerMenu = addSubmenu(tr("Mixer"));
- addControl("[Master]", "crossfader", tr("Crossfader"), tr("Master crossfader"), mixerMenu, true);
- addControl("[Master]", "gain", tr("Master Gain"), tr("Master gain"), mixerMenu, true);
- addControl("[Master]", "balance", tr("Master Balance"), tr("Master balance"), mixerMenu, true);
- addControl("[Master]", "delay", tr("Master Delay"), tr("Master delay"), mixerMenu, true);
- addControl("[Master]", "headGain", tr("Headphone Gain"), tr("Headphone gain"), mixerMenu, true);
- addControl("[Master]", "headMix", tr("Headphone Mix"), tr("Headphone mix (pre/main)"), mixerMenu, true);
- addControl("[Master]", "headSplit", tr("Headphone Split Cue"), tr("Toggle headphone split cueing"), mixerMenu);
- addControl("[Master]", "headDelay", tr("Headphone Delay"), tr("Headphone delay"), mixerMenu, true);
- addDeckAndSamplerControl("orientation", tr("Orientation"),
- tr("Mix orientation (e.g. left, right, center)"), mixerMenu);
- addDeckAndSamplerControl("orientation_left", tr("Orient Left"),
- tr("Set mix orientation to left"), mixerMenu);
- addDeckAndSamplerControl("orientation_center", tr("Orient Center"),
- tr("Set mix orientation to center"), mixerMenu);
- addDeckAndSamplerControl("orientation_right", tr("Orient Right"),
- tr("Set mix orientation to right"), mixerMenu);
+ // Crossfader / Orientation
+ QMenu* crossfaderMenu = addSubmenu(tr("Crossfader / Orientation"), mixerMenu);
+ addControl("[Master]",
+ "crossfader",
+ tr("Crossfader"),
+ tr("Master crossfader"),
+ crossfaderMenu,
+ true);
+ addDeckAndSamplerControl("orientation",
+ tr("Orientation"),
+ tr("Mix orientation (e.g. left, right, center)"),
+ crossfaderMenu);
+ addDeckAndSamplerControl("orientation_left",
+ tr("Orient Left"),
+ tr("Set mix orientation to left"),
+ crossfaderMenu);
+ addDeckAndSamplerControl("orientation_center",
+ tr("Orient Center"),
+ tr("Set mix orientation to center"),
+ crossfaderMenu);
+ addDeckAndSamplerControl("orientation_right",
+ tr("Orient Right"),
+ tr("Set mix orientation to right"),
+ crossfaderMenu);
+ // Main Output
+ QMenu* mainOutputMenu = addSubmenu(tr("Main Output"), mixerMenu);
+ addControl("[Master]",
+ "gain",
+ tr("Main Output Gain"),
+ tr("Main Output gain"),
+ mainOutputMenu,
+ true);
+ addControl("[Master]",
+ "balance",
+ tr("Main Output Balance"),
+ tr("Main Output balance"),
+ mainOutputMenu,
+ true);
+ addControl("[Master]",
+ "delay",
+ tr("Main Output Delay"),
+ tr("Main Output delay"),
+ mainOutputMenu,
+ true);
+ // Headphone
+ QMenu* headphoneMenu = addSubmenu(tr("Headphone"), mixerMenu);
+ addControl("[Master]",
+ "headGain",
+ tr("Headphone Gain"),
+ tr("Headphone gain"),
+ headphoneMenu,
+ true);
+ addControl("[Master]",
+ "headMix",
+ tr("Headphone Mix"),
+ tr("Headphone mix (pre/main)"),
+ headphoneMenu,
+ true);
+ addControl("[Master]",
+ "headSplit",
+ tr("Headphone Split Cue"),
+ tr("Toggle headphone split cueing"),
+ headphoneMenu);
+ addControl("[Master]",
+ "headDelay",
+ tr("Headphone Delay"),
+ tr("Headphone delay"),
+ headphoneMenu,
+ true);
+ mixerMenu->addSeparator();
+ // EQs
+ QMenu* eqMenu = addSubmenu(tr("Equalizers"), mixerMenu);
+ constexpr int kNumEqRacks = 1;
+ const int iNumDecks = static_cast<int>(ControlObject::get(ConfigKey("[Master]", "num_decks")));
+ for (int iRackNumber = 0; iRackNumber < kNumEqRacks; ++iRackNumber) {
+ // TODO: Although there is a mode with 4-band EQs, it's not feasible
+ // right now to add support for learning both it and regular 3-band eqs.
+ // Since 3-band is by far the most common, stick with that.
+ const int kMaxEqs = 3;
+ QList<QString> eqNames;
+ eqNames.append(tr("Low EQ"));
+ eqNames.append(tr("Mid EQ"));
+ eqNames.append(tr("High EQ"));
+ for (int deck = 1; deck <= iNumDecks; ++deck) {
+ QMenu* deckMenu = addSubmenu(QString("Deck %1").arg(deck), eqMenu);
+ for (int effect = kMaxEqs - 1; effect >= 0; --effect) {
+ const QString group = EqualizerRack::formatEffectSlotGroupString(
+ iRackNumber, 0, QString("[Channel%1]").arg(deck));
+ QMenu* bandMenu = addSubmenu(eqNames[effect], deckMenu);
+ QString control = "parameter%1";
+ addControl(group,
+ control.arg(effect + 1),
+ tr("Adjust %1").arg(eqNames[effect]),
+ tr("Adjust %1").arg(eqNames[effect]),
+ bandMenu,
+ true,
+ tr("Deck %1").arg(deck));
+
+ control = "button_parameter%1";
+ addControl(group,
+ control.arg(effect + 1),
+ tr("Kill %1").arg(eqNames[effect]),
+ tr("Kill %1").arg(eqNames[effect]),
+ bandMenu,
+ false,
+ tr("Deck %1").arg(deck));
+ }
+ }
+ }
+ mixerMenu->addSeparator();
+ // Volume / Pfl controls
+ addDeckAndSamplerControl("volume", tr("Volume"), tr("Volume Fader"), mixerMenu, true);
+ addDeckAndSamplerControl("volume_set_one",
+ tr("Full Volume"),
+ tr("Set to full volume"),
+ mixerMenu);
+ addDeckAndSamplerControl("volume_set_zero",
+ tr("Zero Volume"),
+ tr("Set to zero volume"),
+ mixerMenu);
+ addDeckAndSamplerAndPreviewDeckControl("pregain",
+ tr("Track Gain"),
+ tr("Track Gain knob"),
+ mixerMenu,
+ true);
+ addDeckAndSamplerControl("mute", tr("Mute"), tr("Mute button"), mixerMenu);
+ mixerMenu->addSeparator();
+ addDeckAndSamplerControl("pfl",
+ tr("Headphone Listen"),
+ tr("Headphone listen (pfl) button"),
+ mixerMenu);
addSeparator();
// Transport
QMenu* transportMenu = addSubmenu(tr("Transport"));
addDeckAndSamplerAndPreviewDeckControl("play", tr("Play"), tr("Play button"), transportMenu);
- // Preview deck does not go to master so volume does not matter.
addDeckAndSamplerAndPreviewDeckControl("back", tr("Fast Rewind"), tr("Fast Rewind button"), transportMenu);
addDeckAndSamplerAndPreviewDeckControl("fwd", tr("Fast Forward"), tr("Fast Forward button"), transportMenu);
addDeckAndSamplerAndPreviewDeckControl("playposition", tr("Strip Search"),
@@ -64,13 +178,8 @@ ControlPickerMenu::ControlPickerMenu(QWidget* pParent)
addDeckAndSamplerAndPreviewDeckControl("start_stop", tr("Stop And Jump To Start"),
tr("Stop playback and jump to start of track"), transportMenu);
addDeckAndSamplerAndPreviewDeckControl("end", tr("Jump To End"), tr("Jump to end of track"), transportMenu);
- addDeckAndSamplerControl("volume", tr("Volume"), tr("Volume Fader"), transportMenu, true);
- addDeckAndSamplerControl("volume_set_one", tr("Full Volume"), tr("Set to full volume"), transportMenu);
- addDeckAndSamplerControl("volume_set_zero", tr("Zero Volume"), tr("Set to zero volume"), transportMenu);
- addDeckAndSamplerAndPreviewDeckControl("pregain", tr("Track Gain"), tr("Track Gain knob"), transportMenu, true);
- addDeckAndSamplerControl("mute", tr("Mute"), tr("Mute button"), transportMenu);
+ transportMenu->addSeparator();
addDeckAndSamplerAndPreviewDeckControl("eject", tr("Eject"), tr("Eject track"), transportMenu);
- addDeckAndSamplerControl("pfl", tr("Headphone Listen"), tr("Headphone listen (pfl) button"), transportMenu);
addDeckAndSamplerControl("repeat", tr("Repeat Mode"), tr("Toggle repeat mode"), transportMenu);
addDeckAndSamplerControl("slip_enabled", tr("Slip Mode"), tr("Toggle slip mode"), transportMenu);
@@ -156,40 +265,6 @@ ControlPickerMenu::ControlPickerMenu(QWidget* pParent)
addDeckAndSamplerControl("rate_temp_down_small", tr("Temporarily Decrease Speed (Fine)"),
tr("Temporarily decrease speed (fine)"), speedMenu);
- // EQs
- QMenu* eqMenu = addSubmenu(tr("Equalizers"));
- constexpr int kNumEqRacks = 1;
- const int iNumDecks = static_cast<int>(ControlObject::get(ConfigKey("[Master]", "num_decks")));
- for (int iRackNumber = 0; iRackNumber < kNumEqRacks; ++iRackNumber) {
- // TODO: Although there is a mode with 4-band EQs, it's not feasible
- // right now to add support for learning both it and regular 3-band eqs.
- // Since 3-band is by far the most common, stick with that.
- const int kMaxEqs = 3;
- QList<QString> eqNames;
- eqNames.append(tr("Low EQ"));
- eqNames.append(tr("Mid EQ"));
- eqNames.append(tr("High EQ"));
- for (int deck = 1; deck <= iNumDecks; ++deck) {
- QMenu* deckMenu = addSubmenu(QString("Deck %1").arg(deck), eqMenu);
- for (int effect = kMaxEqs - 1; effect >= 0; --effect) {
- const QString group = EqualizerRack::formatEffectSlotGroupString(
- iRackNumber, 0, QString("[Channel%1]").arg(deck));
- QMenu* bandMenu = addSubmenu(eqNames[effect], deckMenu);
- QString control = "parameter%1";
- addControl(group, control.arg(effect+1),
- tr("Adjust %1").arg(eqNames[effect]),
- tr("Adjust %1").arg(eqNames[effect]),
- bandMenu, true, tr("Deck %1").arg(deck));
-
- control = "button_parameter%1";
- addControl(group, control.arg(effect+1),
- tr("Kill %1").arg(eqNames[effect]),
- tr("Kill %1").arg(eqNames[effect]),
- bandMenu, false, tr("Deck %1").arg(deck));
- }
- }
- }
-
// Vinyl Control
QMenu* vinylControlMenu = addSubmenu(tr("Vinyl Control"));
addDeckControl("vinylcontrol_enabled", tr("Toggle Vinyl Control"),