diff --git a/plugins/samplesink/bladerfoutput/bladerfoutput.cpp b/plugins/samplesink/bladerfoutput/bladerfoutput.cpp index 3fe3fb421..100a1e0e4 100644 --- a/plugins/samplesink/bladerfoutput/bladerfoutput.cpp +++ b/plugins/samplesink/bladerfoutput/bladerfoutput.cpp @@ -142,6 +142,10 @@ void BladerfOutput::closeDevice() { int res; + if (m_dev == 0) { // was never open + return; + } + if ((res = bladerf_enable_module(m_dev, BLADERF_MODULE_TX, false)) < 0) { qCritical("BladerfOutput::closeDevice: bladerf_enable_module with return code %d", res); diff --git a/plugins/samplesource/bladerfinput/bladerfinput.cpp b/plugins/samplesource/bladerfinput/bladerfinput.cpp index 83360eb03..c6b2c033e 100644 --- a/plugins/samplesource/bladerfinput/bladerfinput.cpp +++ b/plugins/samplesource/bladerfinput/bladerfinput.cpp @@ -146,6 +146,10 @@ void BladerfInput::closeDevice() { int res; + if (m_dev == 0) { // was never open + return; + } + if ((res = bladerf_enable_module(m_dev, BLADERF_MODULE_RX, false)) < 0) { qCritical("BladerfInput::stop: bladerf_enable_module with return code %d", res); diff --git a/plugins/samplesource/fcdpro/fcdproinput.cpp b/plugins/samplesource/fcdpro/fcdproinput.cpp index a585e92d2..e3b2f96e5 100644 --- a/plugins/samplesource/fcdpro/fcdproinput.cpp +++ b/plugins/samplesource/fcdpro/fcdproinput.cpp @@ -117,6 +117,10 @@ bool FCDProInput::start() void FCDProInput::closeDevice() { + if (m_dev == 0) { // was never open + return; + } + fcdClose(m_dev); m_dev = 0; } diff --git a/plugins/samplesource/fcdproplus/fcdproplusinput.cpp b/plugins/samplesource/fcdproplus/fcdproplusinput.cpp index 7d63c2be8..20657679e 100644 --- a/plugins/samplesource/fcdproplus/fcdproplusinput.cpp +++ b/plugins/samplesource/fcdproplus/fcdproplusinput.cpp @@ -111,6 +111,10 @@ bool FCDProPlusInput::start() void FCDProPlusInput::closeDevice() { + if (m_dev == 0) { // was never open + return; + } + fcdClose(m_dev); m_dev = 0; } diff --git a/plugins/samplesource/limesdrinput/limesdrinput.cpp b/plugins/samplesource/limesdrinput/limesdrinput.cpp index f06d0d137..49127d370 100644 --- a/plugins/samplesource/limesdrinput/limesdrinput.cpp +++ b/plugins/samplesource/limesdrinput/limesdrinput.cpp @@ -133,6 +133,10 @@ bool LimeSDRInput::openDevice() void LimeSDRInput::closeDevice() { + if (m_deviceShared.m_deviceParams->getDevice() == 0) { // was never open + return; + } + // release the channel if (LMS_EnableChannel(m_deviceShared.m_deviceParams->getDevice(), LMS_CH_RX, m_deviceShared.m_channel, false) != 0)