diff --git a/src/engine/enginebuffer.cpp b/src/engine/enginebuffer.cpp index 6732b785fc91..fd37e21c923c 100644 --- a/src/engine/enginebuffer.cpp +++ b/src/engine/enginebuffer.cpp @@ -185,6 +185,9 @@ EngineBuffer::EngineBuffer(QString group, UserSettingsPointer pConfig, this, SLOT(slotEjectTrack(double)), Qt::DirectConnection); + m_pTrackLoaded = new ControlObject(ConfigKey(m_group, "track_loaded")); + m_pTrackLoaded->connectValueChangeRequest(this, SLOT(slotTrackLoadedCO(double))); + // Quantization Controller for enabling and disabling the // quantization (alignment) of loop in/out positions and (hot)cues with // beats. @@ -292,6 +295,7 @@ EngineBuffer::~EngineBuffer() { delete m_pRepeat; delete m_pSampleRate; + delete m_pTrackLoaded; delete m_pTrackSamples; delete m_pTrackSampleRate; @@ -485,6 +489,12 @@ void EngineBuffer::slotTrackLoading() { m_pTrackSamples->set(0); // Stop renderer } +void EngineBuffer::slotTrackLoadedCO(double v) { + Q_UNUSED(v); + qWarning() << "WARNING:" << m_group << "\"track_loaded\"" + << "is a read-only control, ignoring."; +} + TrackPointer EngineBuffer::loadFakeTrack(double filebpm) { TrackPointer pTrack(Track::newTemporary()); pTrack->setSampleRate(44100); @@ -521,6 +531,7 @@ void EngineBuffer::slotTrackLoaded(TrackPointer pTrack, m_bSlipEnabledProcessing = false; m_dSlipPosition = 0.; m_dSlipRate = 0; + m_pTrackLoaded->setAndConfirm(1); // Reset the pitch value for the new track. m_pause.unlock(); @@ -550,6 +561,7 @@ void EngineBuffer::ejectTrack() { //qDebug() << "EngineBuffer::ejectTrack()"; m_pause.lock(); m_iTrackLoading = 0; + m_pTrackLoaded->setAndConfirm(0); m_pTrackSamples->set(0); m_pTrackSampleRate->set(0); TrackPointer pTrack = m_pCurrentTrack; diff --git a/src/engine/enginebuffer.h b/src/engine/enginebuffer.h index 89fd0e17e37d..5bf56a6f46c5 100644 --- a/src/engine/enginebuffer.h +++ b/src/engine/enginebuffer.h @@ -186,6 +186,7 @@ class EngineBuffer : public EngineObject { private slots: void slotTrackLoading(); + void slotTrackLoadedCO(double v); void slotTrackLoaded(TrackPointer pTrack, int iSampleRate, int iNumSamples); void slotTrackLoadFailed(TrackPointer pTrack, @@ -332,6 +333,7 @@ class EngineBuffer : public EngineObject { ControlProxy* m_pPassthroughEnabled; ControlPushButton* m_pEject; + ControlObject* m_pTrackLoaded; // Whether or not to repeat the track when at the end ControlPushButton* m_pRepeat;