#include "controllers/controlpickermenu.h"
#include "vinylcontrol/defs_vinylcontrol.h"
#include "mixer/playermanager.h"
#include "engine/controls/cuecontrol.h"
#include "engine/controls/loopingcontrol.h"
#include "effects/effectrack.h"
#include "effects/effectchainslot.h"
#include "effects/effectslot.h"
#include "effects/effectparameterslot.h"
ControlPickerMenu::ControlPickerMenu(QWidget* pParent)
: QMenu(pParent) {
m_effectMasterOutputStr = tr("Master Output");
m_effectHeadphoneOutputStr = tr("Headphone Output");
m_deckStr = tr("Deck %1");
m_samplerStr = tr("Sampler %1");
m_previewdeckStr = tr("Preview Deck %1");
m_microphoneStr = tr("Microphone %1");
m_auxStr = tr("Auxiliary %1");
m_resetStr = tr("Reset to default");
m_effectRackStr = tr("Effect Rack %1");
m_effectUnitStr = tr("Unit %1");
m_effectStr = tr("Slot %1");
m_parameterStr = tr("Parameter %1");
m_libraryStr = tr("Library");
// Master 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);
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"),
tr("Strip-search through track"), transportMenu);
addDeckAndSamplerAndPreviewDeckControl("reverse", tr("Play Reverse"), tr("Play Reverse button"), transportMenu);
addDeckAndSamplerAndPreviewDeckControl("reverseroll", tr("Reverse Roll (Censor)"),
tr("Reverse roll (Censor) button"), transportMenu);
addDeckAndSamplerAndPreviewDeckControl("start", tr("Jump To Start"), tr("Jumps to start of track"), transportMenu);