summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/controllers/Hercules DJ Console RMX 2.midi.xml8
-rw-r--r--src/controlindicator.h2
-rw-r--r--src/engine/cuecontrol.cpp13
-rw-r--r--src/engine/cuecontrol.h2
-rw-r--r--src/engine/enginebuffer.cpp1
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;