From d6382fbbaa2c588a00e2298a7ed43ba9bc2375d2 Mon Sep 17 00:00:00 2001 From: f4exb Date: Sun, 6 Oct 2019 09:54:07 +0200 Subject: [PATCH] Device engines: stop device before channels when going idle --- sdrbase/dsp/dspdevicemimoengine.cpp | 3 ++- sdrbase/dsp/dspdevicesinkengine.cpp | 2 +- sdrbase/dsp/dspdevicesourceengine.cpp | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/sdrbase/dsp/dspdevicemimoengine.cpp b/sdrbase/dsp/dspdevicemimoengine.cpp index 7652add2f..c52bf1da6 100644 --- a/sdrbase/dsp/dspdevicemimoengine.cpp +++ b/sdrbase/dsp/dspdevicemimoengine.cpp @@ -389,6 +389,8 @@ DSPDeviceMIMOEngine::State DSPDeviceMIMOEngine::gotoIdle() // stop everything + m_deviceSampleMIMO->stop(); + std::vector::const_iterator vbit = m_basebandSampleSinks.begin(); for (; vbit != m_basebandSampleSinks.end(); ++vbit) @@ -428,7 +430,6 @@ DSPDeviceMIMOEngine::State DSPDeviceMIMOEngine::gotoIdle() (*it)->stop(); } - m_deviceSampleMIMO->stop(); m_deviceDescription.clear(); return StIdle; diff --git a/sdrbase/dsp/dspdevicesinkengine.cpp b/sdrbase/dsp/dspdevicesinkengine.cpp index 5cfdd641b..d5dc8bf14 100644 --- a/sdrbase/dsp/dspdevicesinkengine.cpp +++ b/sdrbase/dsp/dspdevicesinkengine.cpp @@ -232,6 +232,7 @@ DSPDeviceSinkEngine::State DSPDeviceSinkEngine::gotoIdle() } // stop everything + m_deviceSampleSink->stop(); for(BasebandSampleSources::const_iterator it = m_basebandSampleSources.begin(); it != m_basebandSampleSources.end(); it++) { @@ -251,7 +252,6 @@ DSPDeviceSinkEngine::State DSPDeviceSinkEngine::gotoIdle() m_spectrumSink->stop(); } - m_deviceSampleSink->stop(); m_deviceDescription.clear(); m_sampleRate = 0; diff --git a/sdrbase/dsp/dspdevicesourceengine.cpp b/sdrbase/dsp/dspdevicesourceengine.cpp index 6f6d43d50..bfe69202a 100644 --- a/sdrbase/dsp/dspdevicesourceengine.cpp +++ b/sdrbase/dsp/dspdevicesourceengine.cpp @@ -435,6 +435,7 @@ DSPDeviceSourceEngine::State DSPDeviceSourceEngine::gotoIdle() } // stop everything + m_deviceSampleSource->stop(); for(BasebandSampleSinks::const_iterator it = m_basebandSampleSinks.begin(); it != m_basebandSampleSinks.end(); it++) { @@ -446,7 +447,6 @@ DSPDeviceSourceEngine::State DSPDeviceSourceEngine::gotoIdle() (*it)->stop(); } - m_deviceSampleSource->stop(); m_deviceDescription.clear(); m_sampleRate = 0;