Multiple audio support: Web API: AMDemod and NFMDemod: implemented audio device name in settings

This commit is contained in:
f4exb 2018-03-29 07:55:51 +02:00
parent b7065c8c83
commit acb96acd85
13 changed files with 99 additions and 3 deletions

View File

@ -371,6 +371,9 @@ int AMDemod::webapiSettingsPutPatch(
if (channelSettingsKeys.contains("bandpassEnable")) { if (channelSettingsKeys.contains("bandpassEnable")) {
settings.m_bandpassEnable = response.getAmDemodSettings()->getBandpassEnable() != 0; settings.m_bandpassEnable = response.getAmDemodSettings()->getBandpassEnable() != 0;
} }
if (channelSettingsKeys.contains("audioDeviceName")) {
settings.m_audioDeviceName = *response.getAmDemodSettings()->getAudioDeviceName();
}
if (frequencyOffsetChanged) if (frequencyOffsetChanged)
{ {
@ -419,6 +422,12 @@ void AMDemod::webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings& respo
} else { } else {
response.getAmDemodSettings()->setTitle(new QString(settings.m_title)); response.getAmDemodSettings()->setTitle(new QString(settings.m_title));
} }
if (response.getAmDemodSettings()->getAudioDeviceName()) {
*response.getAmDemodSettings()->getAudioDeviceName() = settings.m_audioDeviceName;
} else {
response.getAmDemodSettings()->setAudioDeviceName(new QString(settings.m_audioDeviceName));
}
} }
void AMDemod::webapiFormatChannelReport(SWGSDRangel::SWGChannelReport& response) void AMDemod::webapiFormatChannelReport(SWGSDRangel::SWGChannelReport& response)

View File

@ -605,6 +605,9 @@ int NFMDemod::webapiSettingsPutPatch(
if (channelSettingsKeys.contains("volume")) { if (channelSettingsKeys.contains("volume")) {
settings.m_volume = response.getNfmDemodSettings()->getVolume(); settings.m_volume = response.getNfmDemodSettings()->getVolume();
} }
if (channelSettingsKeys.contains("audioDeviceName")) {
settings.m_audioDeviceName = *response.getNfmDemodSettings()->getAudioDeviceName();
}
if (frequencyOffsetChanged) if (frequencyOffsetChanged)
{ {
@ -657,6 +660,12 @@ void NFMDemod::webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings& resp
} else { } else {
response.getNfmDemodSettings()->setTitle(new QString(settings.m_title)); response.getNfmDemodSettings()->setTitle(new QString(settings.m_title));
} }
if (response.getNfmDemodSettings()->getAudioDeviceName()) {
*response.getNfmDemodSettings()->getAudioDeviceName() = settings.m_audioDeviceName;
} else {
response.getNfmDemodSettings()->setAudioDeviceName(new QString(settings.m_audioDeviceName));
}
} }
void NFMDemod::webapiFormatChannelReport(SWGSDRangel::SWGChannelReport& response) void NFMDemod::webapiFormatChannelReport(SWGSDRangel::SWGChannelReport& response)

View File

@ -749,6 +749,9 @@ margin-bottom: 20px;
}, },
"title" : { "title" : {
"type" : "string" "type" : "string"
},
"audioDeviceName" : {
"type" : "string"
} }
}, },
"description" : "AMDemod" "description" : "AMDemod"
@ -1569,6 +1572,9 @@ margin-bottom: 20px;
}, },
"title" : { "title" : {
"type" : "string" "type" : "string"
},
"audioDeviceName" : {
"type" : "string"
} }
}, },
"description" : "NFMDemod" "description" : "NFMDemod"
@ -20097,7 +20103,7 @@ except ApiException as e:
</div> </div>
<div id="generator"> <div id="generator">
<div class="content"> <div class="content">
Generated 2018-03-29T01:40:29.446+02:00 Generated 2018-03-29T07:44:35.585+02:00
</div> </div>
</div> </div>
</div> </div>

View File

@ -25,6 +25,8 @@ AMDemodSettings:
type: integer type: integer
title: title:
type: string type: string
audioDeviceName:
type: string
AMDemodReport: AMDemodReport:
description: AMDemod description: AMDemod

View File

@ -37,6 +37,8 @@ NFMDemodSettings:
type: integer type: integer
title: title:
type: string type: string
audioDeviceName:
type: string
NFMDemodReport: NFMDemodReport:
description: NFMDemod description: NFMDemod

View File

@ -25,6 +25,8 @@ AMDemodSettings:
type: integer type: integer
title: title:
type: string type: string
audioDeviceName:
type: string
AMDemodReport: AMDemodReport:
description: AMDemod description: AMDemod

View File

@ -37,6 +37,8 @@ NFMDemodSettings:
type: integer type: integer
title: title:
type: string type: string
audioDeviceName:
type: string
NFMDemodReport: NFMDemodReport:
description: NFMDemod description: NFMDemod

View File

@ -749,6 +749,9 @@ margin-bottom: 20px;
}, },
"title" : { "title" : {
"type" : "string" "type" : "string"
},
"audioDeviceName" : {
"type" : "string"
} }
}, },
"description" : "AMDemod" "description" : "AMDemod"
@ -1569,6 +1572,9 @@ margin-bottom: 20px;
}, },
"title" : { "title" : {
"type" : "string" "type" : "string"
},
"audioDeviceName" : {
"type" : "string"
} }
}, },
"description" : "NFMDemod" "description" : "NFMDemod"
@ -20097,7 +20103,7 @@ except ApiException as e:
</div> </div>
<div id="generator"> <div id="generator">
<div class="content"> <div class="content">
Generated 2018-03-29T01:40:29.446+02:00 Generated 2018-03-29T07:44:35.585+02:00
</div> </div>
</div> </div>
</div> </div>

View File

@ -44,6 +44,8 @@ SWGAMDemodSettings::SWGAMDemodSettings() {
m_rgb_color_isSet = false; m_rgb_color_isSet = false;
title = nullptr; title = nullptr;
m_title_isSet = false; m_title_isSet = false;
audio_device_name = nullptr;
m_audio_device_name_isSet = false;
} }
SWGAMDemodSettings::~SWGAMDemodSettings() { SWGAMDemodSettings::~SWGAMDemodSettings() {
@ -68,6 +70,8 @@ SWGAMDemodSettings::init() {
m_rgb_color_isSet = false; m_rgb_color_isSet = false;
title = new QString(""); title = new QString("");
m_title_isSet = false; m_title_isSet = false;
audio_device_name = new QString("");
m_audio_device_name_isSet = false;
} }
void void
@ -82,6 +86,9 @@ SWGAMDemodSettings::cleanup() {
if(title != nullptr) { if(title != nullptr) {
delete title; delete title;
} }
if(audio_device_name != nullptr) {
delete audio_device_name;
}
} }
SWGAMDemodSettings* SWGAMDemodSettings*
@ -111,6 +118,8 @@ SWGAMDemodSettings::fromJsonObject(QJsonObject &pJson) {
::SWGSDRangel::setValue(&title, pJson["title"], "QString", "QString"); ::SWGSDRangel::setValue(&title, pJson["title"], "QString", "QString");
::SWGSDRangel::setValue(&audio_device_name, pJson["audioDeviceName"], "QString", "QString");
} }
QString QString
@ -151,6 +160,9 @@ SWGAMDemodSettings::asJsonObject() {
if(title != nullptr && *title != QString("")){ if(title != nullptr && *title != QString("")){
toJsonValue(QString("title"), title, obj, QString("QString")); toJsonValue(QString("title"), title, obj, QString("QString"));
} }
if(audio_device_name != nullptr && *audio_device_name != QString("")){
toJsonValue(QString("audioDeviceName"), audio_device_name, obj, QString("QString"));
}
return obj; return obj;
} }
@ -235,6 +247,16 @@ SWGAMDemodSettings::setTitle(QString* title) {
this->m_title_isSet = true; this->m_title_isSet = true;
} }
QString*
SWGAMDemodSettings::getAudioDeviceName() {
return audio_device_name;
}
void
SWGAMDemodSettings::setAudioDeviceName(QString* audio_device_name) {
this->audio_device_name = audio_device_name;
this->m_audio_device_name_isSet = true;
}
bool bool
SWGAMDemodSettings::isSet(){ SWGAMDemodSettings::isSet(){
@ -248,6 +270,7 @@ SWGAMDemodSettings::isSet(){
if(m_bandpass_enable_isSet){ isObjectUpdated = true; break;} if(m_bandpass_enable_isSet){ isObjectUpdated = true; break;}
if(m_rgb_color_isSet){ isObjectUpdated = true; break;} if(m_rgb_color_isSet){ isObjectUpdated = true; break;}
if(title != nullptr && *title != QString("")){ isObjectUpdated = true; break;} if(title != nullptr && *title != QString("")){ isObjectUpdated = true; break;}
if(audio_device_name != nullptr && *audio_device_name != QString("")){ isObjectUpdated = true; break;}
}while(false); }while(false);
return isObjectUpdated; return isObjectUpdated;
} }

View File

@ -66,6 +66,9 @@ public:
QString* getTitle(); QString* getTitle();
void setTitle(QString* title); void setTitle(QString* title);
QString* getAudioDeviceName();
void setAudioDeviceName(QString* audio_device_name);
virtual bool isSet() override; virtual bool isSet() override;
@ -94,6 +97,9 @@ private:
QString* title; QString* title;
bool m_title_isSet; bool m_title_isSet;
QString* audio_device_name;
bool m_audio_device_name_isSet;
}; };
} }

View File

@ -54,6 +54,8 @@ SWGNFMDemodSettings::SWGNFMDemodSettings() {
m_rgb_color_isSet = false; m_rgb_color_isSet = false;
title = nullptr; title = nullptr;
m_title_isSet = false; m_title_isSet = false;
audio_device_name = nullptr;
m_audio_device_name_isSet = false;
} }
SWGNFMDemodSettings::~SWGNFMDemodSettings() { SWGNFMDemodSettings::~SWGNFMDemodSettings() {
@ -88,6 +90,8 @@ SWGNFMDemodSettings::init() {
m_rgb_color_isSet = false; m_rgb_color_isSet = false;
title = new QString(""); title = new QString("");
m_title_isSet = false; m_title_isSet = false;
audio_device_name = new QString("");
m_audio_device_name_isSet = false;
} }
void void
@ -107,6 +111,9 @@ SWGNFMDemodSettings::cleanup() {
if(title != nullptr) { if(title != nullptr) {
delete title; delete title;
} }
if(audio_device_name != nullptr) {
delete audio_device_name;
}
} }
SWGNFMDemodSettings* SWGNFMDemodSettings*
@ -146,6 +153,8 @@ SWGNFMDemodSettings::fromJsonObject(QJsonObject &pJson) {
::SWGSDRangel::setValue(&title, pJson["title"], "QString", "QString"); ::SWGSDRangel::setValue(&title, pJson["title"], "QString", "QString");
::SWGSDRangel::setValue(&audio_device_name, pJson["audioDeviceName"], "QString", "QString");
} }
QString QString
@ -201,6 +210,9 @@ SWGNFMDemodSettings::asJsonObject() {
if(title != nullptr && *title != QString("")){ if(title != nullptr && *title != QString("")){
toJsonValue(QString("title"), title, obj, QString("QString")); toJsonValue(QString("title"), title, obj, QString("QString"));
} }
if(audio_device_name != nullptr && *audio_device_name != QString("")){
toJsonValue(QString("audioDeviceName"), audio_device_name, obj, QString("QString"));
}
return obj; return obj;
} }
@ -335,6 +347,16 @@ SWGNFMDemodSettings::setTitle(QString* title) {
this->m_title_isSet = true; this->m_title_isSet = true;
} }
QString*
SWGNFMDemodSettings::getAudioDeviceName() {
return audio_device_name;
}
void
SWGNFMDemodSettings::setAudioDeviceName(QString* audio_device_name) {
this->audio_device_name = audio_device_name;
this->m_audio_device_name_isSet = true;
}
bool bool
SWGNFMDemodSettings::isSet(){ SWGNFMDemodSettings::isSet(){
@ -353,6 +375,7 @@ SWGNFMDemodSettings::isSet(){
if(m_ctcss_index_isSet){ isObjectUpdated = true; break;} if(m_ctcss_index_isSet){ isObjectUpdated = true; break;}
if(m_rgb_color_isSet){ isObjectUpdated = true; break;} if(m_rgb_color_isSet){ isObjectUpdated = true; break;}
if(title != nullptr && *title != QString("")){ isObjectUpdated = true; break;} if(title != nullptr && *title != QString("")){ isObjectUpdated = true; break;}
if(audio_device_name != nullptr && *audio_device_name != QString("")){ isObjectUpdated = true; break;}
}while(false); }while(false);
return isObjectUpdated; return isObjectUpdated;
} }

View File

@ -81,6 +81,9 @@ public:
QString* getTitle(); QString* getTitle();
void setTitle(QString* title); void setTitle(QString* title);
QString* getAudioDeviceName();
void setAudioDeviceName(QString* audio_device_name);
virtual bool isSet() override; virtual bool isSet() override;
@ -124,6 +127,9 @@ private:
QString* title; QString* title;
bool m_title_isSet; bool m_title_isSet;
QString* audio_device_name;
bool m_audio_device_name_isSet;
}; };
} }

View File

@ -13,7 +13,7 @@ base_url = "http://127.0.0.1:8091/sdrangel"
# - Descriptive message fragment # - Descriptive message fragment
commands = [ commands = [
["/deviceset/0/device", "PUT", None, {"hwType": "BladeRF"}, "setup BladeRF on Rx 0"], ["/deviceset/0/device", "PUT", None, {"hwType": "BladeRF"}, "setup BladeRF on Rx 0"],
["/preset", "PATCH", None, {"deviceSetIndex": 0, "preset": {"groupName": "OM144", "centerFrequency": 145640000, "type": "R", "name": "Repeaters extended"}}, "load preset on Rx 0"], ["/preset", "PATCH", None, {"deviceSetIndex": 0, "preset": {"groupName": "OM144", "centerFrequency": 145480000, "type": "R", "name": "Rept + Simplex + DV"}}, "load preset on Rx 0"],
["/deviceset", "POST", None, None, "add Rx 1 device set"], ["/deviceset", "POST", None, None, "add Rx 1 device set"],
["/deviceset/1/device", "PUT", None, {"hwType": "SDRdaemonSource"}, "setup SDRdaemonSource on Rx 1"], ["/deviceset/1/device", "PUT", None, {"hwType": "SDRdaemonSource"}, "setup SDRdaemonSource on Rx 1"],
["/preset", "PATCH", None, {"deviceSetIndex": 1, "preset": {"groupName": "OM430", "centerFrequency": 439550000, "type": "R", "name": "F5ZKP Daemon RPi3 SUSE"}}, "load preset on Rx 1"], ["/preset", "PATCH", None, {"deviceSetIndex": 1, "preset": {"groupName": "OM430", "centerFrequency": 439550000, "type": "R", "name": "F5ZKP Daemon RPi3 SUSE"}}, "load preset on Rx 1"],