diff options
-rw-r--r-- | res/controllers/Hercules DJ Console RMX 2.midi.xml | 8 | ||||
-rw-r--r-- | src/controlindicator.h | 2 | ||||
-rw-r--r-- | src/engine/cuecontrol.cpp | 13 | ||||
-rw-r--r-- | src/engine/cuecontrol.h | 2 | ||||
-rw-r--r-- | src/engine/enginebuffer.cpp | 1 |
5 files changed, 21 insertions, 5 deletions
diff --git a/res/controllers/Hercules DJ Console RMX 2.midi.xml b/res/controllers/Hercules DJ Console RMX 2.midi.xml index 19f118fae7..8358aba5bd 100644 --- a/res/controllers/Hercules DJ Console RMX 2.midi.xml +++ b/res/controllers/Hercules DJ Console RMX 2.midi.xml @@ -1157,7 +1157,7 @@ </output> <output> <group>[Channel1]</group> - <key>play</key> + <key>play_indicator</key> <description></description> <minimum>0.5</minimum> <maximum>1</maximum> @@ -1168,7 +1168,7 @@ </output> <output> <group>[Channel1]</group> - <key>cue_default</key> + <key>cue_indicator</key> <description></description> <minimum>0.5</minimum> <maximum>1</maximum> @@ -1234,7 +1234,7 @@ </output> <output> <group>[Channel2]</group> - <key>play</key> + <key>play_indicator</key> <description></description> <minimum>0.5</minimum> <maximum>1</maximum> @@ -1245,7 +1245,7 @@ </output> <output> <group>[Channel2]</group> - <key>cue_default</key> + <key>cue_indicator</key> <description></description> <minimum>0.5</minimum> <maximum>1</maximum> diff --git a/src/controlindicator.h b/src/controlindicator.h index f262ab4f37..313785c345 100644 --- a/src/controlindicator.h +++ b/src/controlindicator.h @@ -25,6 +25,8 @@ class ControlIndicator : public ControlObject { private: void toggle(); + // set() is private, use setBlinkValue instead + void set(double value) { ControlObject::set(value); }; enum BlinkValue m_blinkValue; double m_nextSwitchTime; diff --git a/src/engine/cuecontrol.cpp b/src/engine/cuecontrol.cpp index 09caab4b32..3ac7a1530b 100644 --- a/src/engine/cuecontrol.cpp +++ b/src/engine/cuecontrol.cpp @@ -7,6 +7,7 @@ #include "controlobject.h" #include "controlpushbutton.h" +#include "controlindicator.h" #include "trackinfoobject.h" #include "library/dao/cue.h" #include "cachingreader.h" @@ -77,6 +78,8 @@ CueControl::CueControl(const char * _group, connect(m_pCueDefault, SIGNAL(valueChanged(double)), this, SLOT(cueDefault(double)), Qt::DirectConnection); + + m_pCueIndicator = new ControlIndicator(ConfigKey(_group, "cue_indicator")); } CueControl::~CueControl() { @@ -90,6 +93,7 @@ CueControl::~CueControl() { delete m_pCuePreview; delete m_pCueCDJ; delete m_pCueDefault; + delete m_pCueIndicator; while (m_hotcueControl.size() > 0) { HotcueControl* pControl = m_hotcueControl.takeLast(); delete pControl; @@ -194,6 +198,10 @@ void CueControl::trackLoaded(TrackPointer pTrack) { } else { m_pCuePoint->set(0.0f); } + if (m_pCueMode->get() == 0.0f) { + // in CDJ mode Cue Button is lit if a cue point is set + m_pCueIndicator->setBlinkValue(ControlIndicator::ON); + } int cueRecall = getConfig()->getValueString( ConfigKey("[Controls]","CueRecall")).toInt(); @@ -236,7 +244,10 @@ void CueControl::trackUnloaded(TrackPointer pTrack) { } loadCue->setPosition(cuePoint); } - + if (m_pCueMode->get() == 0.0f) { + // in CDJ mode Cue Button is off if no track loaded + m_pCueIndicator->setBlinkValue(ControlIndicator::OFF); + } m_pLoadedTrack.clear(); } diff --git a/src/engine/cuecontrol.h b/src/engine/cuecontrol.h index 5802769d15..d8ffd0b85a 100644 --- a/src/engine/cuecontrol.h +++ b/src/engine/cuecontrol.h @@ -16,6 +16,7 @@ class ControlObject; class ControlPushButton; class Cue; +class ControlIndicator; class HotcueControl : public QObject { Q_OBJECT @@ -140,6 +141,7 @@ class CueControl : public EngineControl { ControlPushButton* m_pCueSimple; ControlPushButton* m_pCueCDJ; ControlPushButton* m_pCueDefault; + ControlIndicator* m_pCueIndicator; ControlPushButton* m_pCueGoto; ControlPushButton* m_pCueGotoAndPlay; ControlPushButton* m_pCueGotoAndStop; diff --git a/src/engine/enginebuffer.cpp b/src/engine/enginebuffer.cpp index 48dd353292..dac9481b4a 100644 --- a/src/engine/enginebuffer.cpp +++ b/src/engine/enginebuffer.cpp @@ -260,6 +260,7 @@ EngineBuffer::~EngineBuffer() delete m_pReader; delete m_playButton; + delete m_playIndicator; delete m_playStartButton; delete m_stopStartButton; |