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")) {
settings.m_bandpassEnable = response.getAmDemodSettings()->getBandpassEnable() != 0;
}
if (channelSettingsKeys.contains("audioDeviceName")) {
settings.m_audioDeviceName = *response.getAmDemodSettings()->getAudioDeviceName();
}
if (frequencyOffsetChanged)
{
@ -419,6 +422,12 @@ void AMDemod::webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings& respo
} else {
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)

View File

@ -605,6 +605,9 @@ int NFMDemod::webapiSettingsPutPatch(
if (channelSettingsKeys.contains("volume")) {
settings.m_volume = response.getNfmDemodSettings()->getVolume();
}
if (channelSettingsKeys.contains("audioDeviceName")) {
settings.m_audioDeviceName = *response.getNfmDemodSettings()->getAudioDeviceName();
}
if (frequencyOffsetChanged)
{
@ -657,6 +660,12 @@ void NFMDemod::webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings& resp
} else {
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)

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -66,6 +66,9 @@ public:
QString* getTitle();
void setTitle(QString* title);
QString* getAudioDeviceName();
void setAudioDeviceName(QString* audio_device_name);
virtual bool isSet() override;
@ -94,6 +97,9 @@ private:
QString* title;
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;
title = nullptr;
m_title_isSet = false;
audio_device_name = nullptr;
m_audio_device_name_isSet = false;
}
SWGNFMDemodSettings::~SWGNFMDemodSettings() {
@ -88,6 +90,8 @@ SWGNFMDemodSettings::init() {
m_rgb_color_isSet = false;
title = new QString("");
m_title_isSet = false;
audio_device_name = new QString("");
m_audio_device_name_isSet = false;
}
void
@ -107,6 +111,9 @@ SWGNFMDemodSettings::cleanup() {
if(title != nullptr) {
delete title;
}
if(audio_device_name != nullptr) {
delete audio_device_name;
}
}
SWGNFMDemodSettings*
@ -146,6 +153,8 @@ SWGNFMDemodSettings::fromJsonObject(QJsonObject &pJson) {
::SWGSDRangel::setValue(&title, pJson["title"], "QString", "QString");
::SWGSDRangel::setValue(&audio_device_name, pJson["audioDeviceName"], "QString", "QString");
}
QString
@ -201,6 +210,9 @@ SWGNFMDemodSettings::asJsonObject() {
if(title != nullptr && *title != 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;
}
@ -335,6 +347,16 @@ SWGNFMDemodSettings::setTitle(QString* title) {
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
SWGNFMDemodSettings::isSet(){
@ -353,6 +375,7 @@ SWGNFMDemodSettings::isSet(){
if(m_ctcss_index_isSet){ isObjectUpdated = true; break;}
if(m_rgb_color_isSet){ 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);
return isObjectUpdated;
}

View File

@ -81,6 +81,9 @@ public:
QString* getTitle();
void setTitle(QString* title);
QString* getAudioDeviceName();
void setAudioDeviceName(QString* audio_device_name);
virtual bool isSet() override;
@ -124,6 +127,9 @@ private:
QString* title;
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
commands = [
["/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/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"],