mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-02-03 09:44:01 -05:00
SoapySDR support: REST API: input and output: corrected mapped elements setting
This commit is contained in:
parent
dbbabd4b57
commit
6ad678e059
@ -1281,8 +1281,8 @@ int SoapySDROutput::webapiSettingsPutPatch(
|
||||
{
|
||||
auto ovalue = settings.m_tunableElements.find(*itArg->getKey());
|
||||
|
||||
if ((ovalue != settings.m_tunableElements.end()) && (m_settings.m_tunableElements[*itArg->getKey()] != *ovalue)) {
|
||||
m_settings.m_tunableElements[*itArg->getKey()] = *ovalue;
|
||||
if ((ovalue != settings.m_tunableElements.end()) && (atof(itArg->getValueString()->toStdString().c_str()) != *ovalue)) {
|
||||
m_settings.m_tunableElements[*itArg->getKey()] = atof(itArg->getValueString()->toStdString().c_str());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1299,8 +1299,8 @@ int SoapySDROutput::webapiSettingsPutPatch(
|
||||
{
|
||||
auto ovalue = settings.m_individualGains.find(*itArg->getKey());
|
||||
|
||||
if ((ovalue != settings.m_individualGains.end()) && (m_settings.m_individualGains[*itArg->getKey()] != *ovalue)) {
|
||||
m_settings.m_individualGains[*itArg->getKey()] = *ovalue;
|
||||
if ((ovalue != settings.m_individualGains.end()) && (atof(itArg->getValueString()->toStdString().c_str()) != *ovalue)) {
|
||||
m_settings.m_individualGains[*itArg->getKey()] = atof(itArg->getValueString()->toStdString().c_str());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1331,10 +1331,10 @@ int SoapySDROutput::webapiSettingsPutPatch(
|
||||
|
||||
for (const auto itArg : *streamArgSettings)
|
||||
{
|
||||
auto ovalue = settings.m_streamArgSettings.find(*itArg->getKey());
|
||||
QMap<QString, QVariant>::iterator itSettings = settings.m_streamArgSettings.find(*itArg->getKey());
|
||||
|
||||
if ((ovalue != settings.m_streamArgSettings.end()) && (m_settings.m_streamArgSettings[*itArg->getKey()] != *ovalue)) {
|
||||
m_settings.m_streamArgSettings[*itArg->getKey()] = *ovalue;
|
||||
if (itSettings != settings.m_streamArgSettings.end()) {
|
||||
itSettings.value() = webapiVariantFromArgValue(itArg);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1345,10 +1345,10 @@ int SoapySDROutput::webapiSettingsPutPatch(
|
||||
|
||||
for (const auto itArg : *deviceArgSettings)
|
||||
{
|
||||
auto ovalue = settings.m_deviceArgSettings.find(*itArg->getKey());
|
||||
QMap<QString, QVariant>::iterator itSettings = settings.m_deviceArgSettings.find(*itArg->getKey());
|
||||
|
||||
if ((ovalue != settings.m_deviceArgSettings.end()) && (m_settings.m_deviceArgSettings[*itArg->getKey()] != *ovalue)) {
|
||||
m_settings.m_deviceArgSettings[*itArg->getKey()] = *ovalue;
|
||||
if (itSettings != settings.m_deviceArgSettings.end()) {
|
||||
itSettings.value() = webapiVariantFromArgValue(itArg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -191,6 +191,7 @@ private:
|
||||
void updateGains(SoapySDR::Device *dev, int requestedChannel, SoapySDROutputSettings& settings);
|
||||
void webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& response, const SoapySDROutputSettings& settings);
|
||||
void webapiFormatDeviceReport(SWGSDRangel::SWGDeviceReport& response);
|
||||
QVariant webapiVariantFromArgValue(SWGSDRangel::SWGArgValue *argValue);
|
||||
void webapiFormatArgValue(const QVariant& v, SWGSDRangel::SWGArgValue *argValue);
|
||||
void webapiFormatArgInfo(const SoapySDR::ArgInfo& arg, SWGSDRangel::SWGArgInfo *argInfo);
|
||||
};
|
||||
|
@ -1345,8 +1345,8 @@ int SoapySDRInput::webapiSettingsPutPatch(
|
||||
{
|
||||
auto ovalue = settings.m_tunableElements.find(*itArg->getKey());
|
||||
|
||||
if ((ovalue != settings.m_tunableElements.end()) && (m_settings.m_tunableElements[*itArg->getKey()] != *ovalue)) {
|
||||
m_settings.m_tunableElements[*itArg->getKey()] = *ovalue;
|
||||
if ((ovalue != settings.m_tunableElements.end()) && (atof(itArg->getValueString()->toStdString().c_str()) != *ovalue)) {
|
||||
m_settings.m_tunableElements[*itArg->getKey()] = atof(itArg->getValueString()->toStdString().c_str());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1363,8 +1363,8 @@ int SoapySDRInput::webapiSettingsPutPatch(
|
||||
{
|
||||
auto ovalue = settings.m_individualGains.find(*itArg->getKey());
|
||||
|
||||
if ((ovalue != settings.m_individualGains.end()) && (m_settings.m_individualGains[*itArg->getKey()] != *ovalue)) {
|
||||
m_settings.m_individualGains[*itArg->getKey()] = *ovalue;
|
||||
if ((ovalue != settings.m_individualGains.end()) && (atof(itArg->getValueString()->toStdString().c_str()) != *ovalue)) {
|
||||
m_settings.m_individualGains[*itArg->getKey()] = atof(itArg->getValueString()->toStdString().c_str());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1395,10 +1395,10 @@ int SoapySDRInput::webapiSettingsPutPatch(
|
||||
|
||||
for (const auto itArg : *streamArgSettings)
|
||||
{
|
||||
auto ovalue = settings.m_streamArgSettings.find(*itArg->getKey());
|
||||
QMap<QString, QVariant>::iterator itSettings = settings.m_streamArgSettings.find(*itArg->getKey());
|
||||
|
||||
if ((ovalue != settings.m_streamArgSettings.end()) && (m_settings.m_streamArgSettings[*itArg->getKey()] != *ovalue)) {
|
||||
m_settings.m_streamArgSettings[*itArg->getKey()] = *ovalue;
|
||||
if (itSettings != settings.m_streamArgSettings.end()) {
|
||||
itSettings.value() = webapiVariantFromArgValue(itArg);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1409,10 +1409,10 @@ int SoapySDRInput::webapiSettingsPutPatch(
|
||||
|
||||
for (const auto itArg : *deviceArgSettings)
|
||||
{
|
||||
auto ovalue = settings.m_deviceArgSettings.find(*itArg->getKey());
|
||||
QMap<QString, QVariant>::iterator itSettings = settings.m_deviceArgSettings.find(*itArg->getKey());
|
||||
|
||||
if ((ovalue != settings.m_deviceArgSettings.end()) && (m_settings.m_deviceArgSettings[*itArg->getKey()] != *ovalue)) {
|
||||
m_settings.m_deviceArgSettings[*itArg->getKey()] = *ovalue;
|
||||
if (itSettings != settings.m_deviceArgSettings.end()) {
|
||||
itSettings.value() = webapiVariantFromArgValue(itArg);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1680,6 +1680,19 @@ void SoapySDRInput::webapiFormatDeviceReport(SWGSDRangel::SWGDeviceReport& respo
|
||||
}
|
||||
}
|
||||
|
||||
QVariant SoapySDRInput::webapiVariantFromArgValue(SWGSDRangel::SWGArgValue *argValue)
|
||||
{
|
||||
if (*argValue->getValueType() == "bool") {
|
||||
return QVariant((bool) (*argValue->getValueString() == "1"));
|
||||
} else if (*argValue->getValueType() == "int") {
|
||||
return QVariant((int) (atoi(argValue->getValueString()->toStdString().c_str())));
|
||||
} else if (*argValue->getValueType() == "float") {
|
||||
return QVariant((double) (atof(argValue->getValueString()->toStdString().c_str())));
|
||||
} else {
|
||||
return QVariant(QString(*argValue->getValueString()));
|
||||
}
|
||||
}
|
||||
|
||||
void SoapySDRInput::webapiFormatArgValue(const QVariant& v, SWGSDRangel::SWGArgValue *argValue)
|
||||
{
|
||||
if (v.type() == QVariant::Bool)
|
||||
|
@ -214,6 +214,7 @@ private:
|
||||
void updateGains(SoapySDR::Device *dev, int requestedChannel, SoapySDRInputSettings& settings);
|
||||
void webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& response, const SoapySDRInputSettings& settings);
|
||||
void webapiFormatDeviceReport(SWGSDRangel::SWGDeviceReport& response);
|
||||
QVariant webapiVariantFromArgValue(SWGSDRangel::SWGArgValue *argValue);
|
||||
void webapiFormatArgValue(const QVariant& v, SWGSDRangel::SWGArgValue *argValue);
|
||||
void webapiFormatArgInfo(const SoapySDR::ArgInfo& arg, SWGSDRangel::SWGArgInfo *argInfo);
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user