DemodAnalyzer: record audio: API updates. Part of #1330

This commit is contained in:
f4exb 2022-11-13 22:24:03 +01:00
parent 2c02a9bcf1
commit 4fc19719eb
8 changed files with 167 additions and 3 deletions

View File

@ -765,7 +765,7 @@ void FileSink::webapiFormatChannelSettings(
swgFileSinkSettings->setInputFrequencyOffset(settings.m_inputFrequencyOffset);
}
if (channelSettingsKeys.contains("fileRecordName")) {
swgFileSinkSettings->setTitle(new QString(settings.m_fileRecordName));
swgFileSinkSettings->setFileRecordName(new QString(settings.m_fileRecordName));
}
if (channelSettingsKeys.contains("rgbColor") || force) {
swgFileSinkSettings->setRgbColor(settings.m_rgbColor);

View File

@ -509,6 +509,15 @@ void DemodAnalyzer::webapiFormatFeatureSettings(
response.getDemodAnalyzerSettings()->setReverseApiFeatureSetIndex(settings.m_reverseAPIFeatureSetIndex);
response.getDemodAnalyzerSettings()->setReverseApiFeatureIndex(settings.m_reverseAPIFeatureIndex);
if (response.getDemodAnalyzerSettings()->getFileRecordName()) {
*response.getDemodAnalyzerSettings()->getFileRecordName() = settings.m_fileRecordName;
} else {
response.getDemodAnalyzerSettings()->setFileRecordName(new QString(settings.m_fileRecordName));
}
response.getDemodAnalyzerSettings()->setRecordToFile(settings.m_recordToFile ? 1 : 0);
response.getDemodAnalyzerSettings()->setRecordSilenceTime(settings.m_recordSilenceTime);
if (settings.m_spectrumGUI)
{
if (response.getDemodAnalyzerSettings()->getSpectrumConfig())
@ -590,6 +599,15 @@ void DemodAnalyzer::webapiUpdateFeatureSettings(
if (settings.m_rollupState && featureSettingsKeys.contains("rollupState")) {
settings.m_rollupState->updateFrom(featureSettingsKeys, response.getDemodAnalyzerSettings()->getRollupState());
}
if (featureSettingsKeys.contains("fileRecordName")) {
settings.m_fileRecordName = *response.getDemodAnalyzerSettings()->getFileRecordName();
}
if (featureSettingsKeys.contains("recordToFile")) {
settings.m_recordToFile = response.getDemodAnalyzerSettings()->getRecordToFile() != 0;
}
if (featureSettingsKeys.contains("recordSilenceTime")) {
settings.m_recordSilenceTime = response.getDemodAnalyzerSettings()->getRecordSilenceTime();
}
}
void DemodAnalyzer::webapiReverseSendSettings(QList<QString>& featureSettingsKeys, const DemodAnalyzerSettings& settings, bool force)
@ -612,6 +630,15 @@ void DemodAnalyzer::webapiReverseSendSettings(QList<QString>& featureSettingsKey
if (featureSettingsKeys.contains("rgbColor") || force) {
swgDemodAnalyzerSettings->setRgbColor(settings.m_rgbColor);
}
if (featureSettingsKeys.contains("fileRecordName")) {
swgDemodAnalyzerSettings->setFileRecordName(new QString(settings.m_fileRecordName));
}
if (featureSettingsKeys.contains("recordToFile")) {
swgDemodAnalyzerSettings->setRecordToFile(settings.m_recordToFile ? 1 : 0);
}
if (featureSettingsKeys.contains("recordSilenceTime") || force) {
swgDemodAnalyzerSettings->setRecordSilenceTime(settings.m_recordSilenceTime);
}
QString channelSettingsURL = QString("http://%1:%2/sdrangel/featureset/%3/feature/%4/settings")
.arg(settings.m_reverseAPIAddress)

View File

@ -4858,6 +4858,18 @@ margin-bottom: 20px;
"rgbColor" : {
"type" : "integer"
},
"fileRecordName" : {
"type" : "string",
"description" : "Output wave file name"
},
"recordToFile" : {
"type" : "integer",
"description" : "Recording status\n * 1 - recording\n * 0 - not recording\n"
},
"recordSilenceTime" : {
"type" : "integer",
"description" : "Record silence time before stopping recording in 10ths of seconds"
},
"useReverseAPI" : {
"type" : "integer",
"description" : "Synchronize with reverse API\n * 1 - yes\n * 0 - no\n"
@ -56617,7 +56629,7 @@ except ApiException as e:
</div>
<div id="generator">
<div class="content">
Generated 2022-11-12T10:56:38.135+01:00
Generated 2022-11-13T19:59:19.161+01:00
</div>
</div>
</div>

View File

@ -7,6 +7,18 @@ DemodAnalyzerSettings:
type: string
rgbColor:
type: integer
fileRecordName:
type: string
description: Output wave file name
recordToFile:
type: integer
description: >
Recording status
* 1 - recording
* 0 - not recording
recordSilenceTime:
type: integer
description: Record silence time before stopping recording in 10ths of seconds
useReverseAPI:
type: integer
description: >

View File

@ -7,6 +7,18 @@ DemodAnalyzerSettings:
type: string
rgbColor:
type: integer
fileRecordName:
type: string
description: Output wave file name
recordToFile:
type: integer
description: >
Recording status
* 1 - recording
* 0 - not recording
recordSilenceTime:
type: integer
description: Record silence time before stopping recording in 10ths of seconds
useReverseAPI:
type: integer
description: >

View File

@ -4858,6 +4858,18 @@ margin-bottom: 20px;
"rgbColor" : {
"type" : "integer"
},
"fileRecordName" : {
"type" : "string",
"description" : "Output wave file name"
},
"recordToFile" : {
"type" : "integer",
"description" : "Recording status\n * 1 - recording\n * 0 - not recording\n"
},
"recordSilenceTime" : {
"type" : "integer",
"description" : "Record silence time before stopping recording in 10ths of seconds"
},
"useReverseAPI" : {
"type" : "integer",
"description" : "Synchronize with reverse API\n * 1 - yes\n * 0 - no\n"
@ -56617,7 +56629,7 @@ except ApiException as e:
</div>
<div id="generator">
<div class="content">
Generated 2022-11-12T10:56:38.135+01:00
Generated 2022-11-13T19:59:19.161+01:00
</div>
</div>
</div>

View File

@ -34,6 +34,12 @@ SWGDemodAnalyzerSettings::SWGDemodAnalyzerSettings() {
m_title_isSet = false;
rgb_color = 0;
m_rgb_color_isSet = false;
file_record_name = nullptr;
m_file_record_name_isSet = false;
record_to_file = 0;
m_record_to_file_isSet = false;
record_silence_time = 0;
m_record_silence_time_isSet = false;
use_reverse_api = 0;
m_use_reverse_api_isSet = false;
reverse_api_address = nullptr;
@ -64,6 +70,12 @@ SWGDemodAnalyzerSettings::init() {
m_title_isSet = false;
rgb_color = 0;
m_rgb_color_isSet = false;
file_record_name = new QString("");
m_file_record_name_isSet = false;
record_to_file = 0;
m_record_to_file_isSet = false;
record_silence_time = 0;
m_record_silence_time_isSet = false;
use_reverse_api = 0;
m_use_reverse_api_isSet = false;
reverse_api_address = new QString("");
@ -89,6 +101,11 @@ SWGDemodAnalyzerSettings::cleanup() {
delete title;
}
if(file_record_name != nullptr) {
delete file_record_name;
}
if(reverse_api_address != nullptr) {
delete reverse_api_address;
@ -124,6 +141,12 @@ SWGDemodAnalyzerSettings::fromJsonObject(QJsonObject &pJson) {
::SWGSDRangel::setValue(&rgb_color, pJson["rgbColor"], "qint32", "");
::SWGSDRangel::setValue(&file_record_name, pJson["fileRecordName"], "QString", "QString");
::SWGSDRangel::setValue(&record_to_file, pJson["recordToFile"], "qint32", "");
::SWGSDRangel::setValue(&record_silence_time, pJson["recordSilenceTime"], "qint32", "");
::SWGSDRangel::setValue(&use_reverse_api, pJson["useReverseAPI"], "qint32", "");
::SWGSDRangel::setValue(&reverse_api_address, pJson["reverseAPIAddress"], "QString", "QString");
@ -165,6 +188,15 @@ SWGDemodAnalyzerSettings::asJsonObject() {
if(m_rgb_color_isSet){
obj->insert("rgbColor", QJsonValue(rgb_color));
}
if(file_record_name != nullptr && *file_record_name != QString("")){
toJsonValue(QString("fileRecordName"), file_record_name, obj, QString("QString"));
}
if(m_record_to_file_isSet){
obj->insert("recordToFile", QJsonValue(record_to_file));
}
if(m_record_silence_time_isSet){
obj->insert("recordSilenceTime", QJsonValue(record_silence_time));
}
if(m_use_reverse_api_isSet){
obj->insert("useReverseAPI", QJsonValue(use_reverse_api));
}
@ -223,6 +255,36 @@ SWGDemodAnalyzerSettings::setRgbColor(qint32 rgb_color) {
this->m_rgb_color_isSet = true;
}
QString*
SWGDemodAnalyzerSettings::getFileRecordName() {
return file_record_name;
}
void
SWGDemodAnalyzerSettings::setFileRecordName(QString* file_record_name) {
this->file_record_name = file_record_name;
this->m_file_record_name_isSet = true;
}
qint32
SWGDemodAnalyzerSettings::getRecordToFile() {
return record_to_file;
}
void
SWGDemodAnalyzerSettings::setRecordToFile(qint32 record_to_file) {
this->record_to_file = record_to_file;
this->m_record_to_file_isSet = true;
}
qint32
SWGDemodAnalyzerSettings::getRecordSilenceTime() {
return record_silence_time;
}
void
SWGDemodAnalyzerSettings::setRecordSilenceTime(qint32 record_silence_time) {
this->record_silence_time = record_silence_time;
this->m_record_silence_time_isSet = true;
}
qint32
SWGDemodAnalyzerSettings::getUseReverseApi() {
return use_reverse_api;
@ -317,6 +379,15 @@ SWGDemodAnalyzerSettings::isSet(){
if(m_rgb_color_isSet){
isObjectUpdated = true; break;
}
if(file_record_name && *file_record_name != QString("")){
isObjectUpdated = true; break;
}
if(m_record_to_file_isSet){
isObjectUpdated = true; break;
}
if(m_record_silence_time_isSet){
isObjectUpdated = true; break;
}
if(m_use_reverse_api_isSet){
isObjectUpdated = true; break;
}

View File

@ -54,6 +54,15 @@ public:
qint32 getRgbColor();
void setRgbColor(qint32 rgb_color);
QString* getFileRecordName();
void setFileRecordName(QString* file_record_name);
qint32 getRecordToFile();
void setRecordToFile(qint32 record_to_file);
qint32 getRecordSilenceTime();
void setRecordSilenceTime(qint32 record_silence_time);
qint32 getUseReverseApi();
void setUseReverseApi(qint32 use_reverse_api);
@ -91,6 +100,15 @@ private:
qint32 rgb_color;
bool m_rgb_color_isSet;
QString* file_record_name;
bool m_file_record_name_isSet;
qint32 record_to_file;
bool m_record_to_file_isSet;
qint32 record_silence_time;
bool m_record_silence_time_isSet;
qint32 use_reverse_api;
bool m_use_reverse_api_isSet;