1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-01 21:54:55 -04:00

SoapySDR support: stream ArgInfo SoapySDR interface

This commit is contained in:
f4exb
2018-11-11 19:44:48 +01:00
parent ad8026c6a2
commit c382913fb4
4 changed files with 56 additions and 2 deletions
@@ -42,6 +42,7 @@ SoapySDRInput::SoapySDRInput(DeviceSourceAPI *deviceAPI) :
{
openDevice();
initGainSettings(m_settings);
initStreamArgSettings(m_settings);
m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID()));
m_deviceAPI->addSink(m_fileSink);
@@ -1046,6 +1047,32 @@ bool SoapySDRInput::applySettings(const SoapySDRInputSettings& settings, bool fo
}
}
for (const auto &oname : m_settings.m_streamArgSettings.keys())
{
auto nvalue = settings.m_streamArgSettings.find(oname);
if (nvalue != settings.m_streamArgSettings.end() && ((m_settings.m_streamArgSettings[oname] != *nvalue) || force))
{
if (dev != 0)
{
try
{
dev->writeSetting(SOAPY_SDR_RX, requestedChannel, oname.toStdString(), nvalue->toString().toStdString());
qDebug("SoapySDRInput::applySettings: stream argument %s set to %s",
oname.toStdString().c_str(), nvalue->toString().toStdString().c_str());
individualGainsChanged = true;
}
catch (const std::exception &ex)
{
qCritical("SoapySDRInput::applySettings: cannot set stream argument %s to %s: %s",
oname.toStdString().c_str(), nvalue->toString().toStdString().c_str(), ex.what());
}
}
m_settings.m_streamArgSettings[oname] = *nvalue;
}
}
if (forwardChangeOwnDSP)
{
int sampleRate = settings.m_devSampleRate/(1<<settings.m_log2Decim);