diff --git a/Source/Processors/DataThreads/RHD2000Thread.cpp b/Source/Processors/DataThreads/RHD2000Thread.cpp index dec31657a3806ce26967394738e9f9291da5f4fe..7e176bd97771af06e6a6ef5bd039160bf0a7d492 100644 --- a/Source/Processors/DataThreads/RHD2000Thread.cpp +++ b/Source/Processors/DataThreads/RHD2000Thread.cpp @@ -82,7 +82,7 @@ RHD2000Thread::RHD2000Thread(SourceNode* sn) : DataThread(sn), savedSampleRateIndex(16), cableLengthPortA(0.914f), cableLengthPortB(0.914f), cableLengthPortC(0.914f), cableLengthPortD(0.914f), // default is 3 feet (0.914 m), audioOutputL(-1), audioOutputR(-1) ,numberingScheme(1), - newScan(true) + newScan(true), ledsEnabled(true) { impedanceThread = new RHDImpedanceMeasure(this); @@ -1451,6 +1451,7 @@ bool RHD2000Thread::stopAcquisition() } isTransmitting = false; + dacOutputShouldChange = false; return true; } @@ -1596,6 +1597,7 @@ bool RHD2000Thread::updateBuffer() evalBoard->setExternalFastSettleChannel(fastSettleTTLChannel); evalBoard->setDacHighpassFilter(desiredDAChpf); evalBoard->enableDacHighpassFilter(desiredDAChpfState); + evalBoard->enableBoardLeds(ledsEnabled); dacOutputShouldChange = false; } @@ -1701,7 +1703,11 @@ int RHD2000Thread::getHeadstageChannel(int& hs, int ch) void RHD2000Thread::enableBoardLeds(bool enable) { - evalBoard->enableBoardLeds(enable); + ledsEnabled = enable; + if (isAcquisitionActive()) + dacOutputShouldChange = true; + else + evalBoard->enableBoardLeds(enable); } void RHD2000Thread::runImpedanceTest(ImpedanceData* data) diff --git a/Source/Processors/DataThreads/RHD2000Thread.h b/Source/Processors/DataThreads/RHD2000Thread.h index e42445faa4abf51f6894abb8ce184e226f9569bb..0b33c440cdaec70504a1d0d516c5164b7e2b36c7 100644 --- a/Source/Processors/DataThreads/RHD2000Thread.h +++ b/Source/Processors/DataThreads/RHD2000Thread.h @@ -201,6 +201,7 @@ private: Array<float> adcBitVolts; bool newScan; ScopedPointer<RHDImpedanceMeasure> impedanceThread; + bool ledsEnabled; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(RHD2000Thread); };