diff --git a/plugins/samplesink/soapysdroutput/soapysdroutput.cpp b/plugins/samplesink/soapysdroutput/soapysdroutput.cpp index a40dcc6cd..ece0e6b32 100644 --- a/plugins/samplesink/soapysdroutput/soapysdroutput.cpp +++ b/plugins/samplesink/soapysdroutput/soapysdroutput.cpp @@ -720,10 +720,17 @@ void SoapySDROutput::updateGains(SoapySDR::Device *dev, int requestedChannel, So return; } - settings.m_globalGain = round(dev->getGain(SOAPY_SDR_TX, requestedChannel)); + try + { + settings.m_globalGain = round(dev->getGain(SOAPY_SDR_TX, requestedChannel)); - for (const auto &name : settings.m_individualGains.keys()) { - settings.m_individualGains[name] = dev->getGain(SOAPY_SDR_TX, requestedChannel, name.toStdString()); + for (const auto &name : settings.m_individualGains.keys()) { + settings.m_individualGains[name] = dev->getGain(SOAPY_SDR_TX, requestedChannel, name.toStdString()); + } + } + catch (const std::exception &ex) + { + qCritical("SoapySDROutput::updateGains: caught exception: %s", ex.what()); } } @@ -733,8 +740,15 @@ void SoapySDROutput::updateTunableElements(SoapySDR::Device *dev, int requestedC return; } - for (const auto &name : settings.m_tunableElements.keys()) { - settings.m_tunableElements[name] = dev->getFrequency(SOAPY_SDR_TX, requestedChannel, name.toStdString()); + try + { + for (const auto &name : settings.m_tunableElements.keys()) { + settings.m_tunableElements[name] = dev->getFrequency(SOAPY_SDR_TX, requestedChannel, name.toStdString()); + } + } + catch (const std::exception &ex) + { + qCritical("SoapySDROutput::updateTunableElements: caught exception: %s", ex.what()); } } diff --git a/plugins/samplesource/soapysdrinput/soapysdrinput.cpp b/plugins/samplesource/soapysdrinput/soapysdrinput.cpp index 9cc8294b7..66058fd9a 100644 --- a/plugins/samplesource/soapysdrinput/soapysdrinput.cpp +++ b/plugins/samplesource/soapysdrinput/soapysdrinput.cpp @@ -749,10 +749,17 @@ void SoapySDRInput::updateGains(SoapySDR::Device *dev, int requestedChannel, Soa return; } - settings.m_globalGain = round(dev->getGain(SOAPY_SDR_RX, requestedChannel)); + try + { + settings.m_globalGain = round(dev->getGain(SOAPY_SDR_RX, requestedChannel)); - for (const auto &name : settings.m_individualGains.keys()) { - settings.m_individualGains[name] = dev->getGain(SOAPY_SDR_RX, requestedChannel, name.toStdString()); + for (const auto &name : settings.m_individualGains.keys()) { + settings.m_individualGains[name] = dev->getGain(SOAPY_SDR_RX, requestedChannel, name.toStdString()); + } + } + catch (const std::exception &ex) + { + qCritical("SoapySDRInput::updateGains: caught exception: %s", ex.what()); } } @@ -762,8 +769,15 @@ void SoapySDRInput::updateTunableElements(SoapySDR::Device *dev, int requestedCh return; } - for (const auto &name : settings.m_tunableElements.keys()) { - settings.m_tunableElements[name] = dev->getFrequency(SOAPY_SDR_RX, requestedChannel, name.toStdString()); + try + { + for (const auto &name : settings.m_tunableElements.keys()) { + settings.m_tunableElements[name] = dev->getFrequency(SOAPY_SDR_RX, requestedChannel, name.toStdString()); + } + } + catch (const std::exception &ex) + { + qCritical("SoapySDRInput::updateTunableElements: caught exception: %s", ex.what()); } }