Bugfix: make sure device is not open when attempting to closing it

This commit is contained in:
f4exb 2017-04-17 12:00:13 +02:00
parent d9b6dde304
commit 0013ab89ea
5 changed files with 20 additions and 0 deletions

View File

@ -142,6 +142,10 @@ void BladerfOutput::closeDevice()
{ {
int res; int res;
if (m_dev == 0) { // was never open
return;
}
if ((res = bladerf_enable_module(m_dev, BLADERF_MODULE_TX, false)) < 0) if ((res = bladerf_enable_module(m_dev, BLADERF_MODULE_TX, false)) < 0)
{ {
qCritical("BladerfOutput::closeDevice: bladerf_enable_module with return code %d", res); qCritical("BladerfOutput::closeDevice: bladerf_enable_module with return code %d", res);

View File

@ -146,6 +146,10 @@ void BladerfInput::closeDevice()
{ {
int res; int res;
if (m_dev == 0) { // was never open
return;
}
if ((res = bladerf_enable_module(m_dev, BLADERF_MODULE_RX, false)) < 0) if ((res = bladerf_enable_module(m_dev, BLADERF_MODULE_RX, false)) < 0)
{ {
qCritical("BladerfInput::stop: bladerf_enable_module with return code %d", res); qCritical("BladerfInput::stop: bladerf_enable_module with return code %d", res);

View File

@ -117,6 +117,10 @@ bool FCDProInput::start()
void FCDProInput::closeDevice() void FCDProInput::closeDevice()
{ {
if (m_dev == 0) { // was never open
return;
}
fcdClose(m_dev); fcdClose(m_dev);
m_dev = 0; m_dev = 0;
} }

View File

@ -111,6 +111,10 @@ bool FCDProPlusInput::start()
void FCDProPlusInput::closeDevice() void FCDProPlusInput::closeDevice()
{ {
if (m_dev == 0) { // was never open
return;
}
fcdClose(m_dev); fcdClose(m_dev);
m_dev = 0; m_dev = 0;
} }

View File

@ -133,6 +133,10 @@ bool LimeSDRInput::openDevice()
void LimeSDRInput::closeDevice() void LimeSDRInput::closeDevice()
{ {
if (m_deviceShared.m_deviceParams->getDevice() == 0) { // was never open
return;
}
// release the channel // release the channel
if (LMS_EnableChannel(m_deviceShared.m_deviceParams->getDevice(), LMS_CH_RX, m_deviceShared.m_channel, false) != 0) if (LMS_EnableChannel(m_deviceShared.m_deviceParams->getDevice(), LMS_CH_RX, m_deviceShared.m_channel, false) != 0)