mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-03-23 20:58:42 -04:00
Multiple audio support: Web API: implemented all interfaces to AudioDeviceManager
This commit is contained in:
parent
249ea735c8
commit
b7065c8c83
sdrbase
resources/webapi/doc
webapi
sdrgui/webapi
sdrsrv/webapi
swagger/sdrangel
File diff suppressed because it is too large
Load Diff
@ -182,11 +182,12 @@ paths:
|
||||
$ref: "#/responses/Response_500"
|
||||
"501":
|
||||
$ref: "#/responses/Response_501"
|
||||
/sdrangel/audio/input/set:
|
||||
|
||||
/sdrangel/audio/input/parameters:
|
||||
x-swagger-router-controller: instance
|
||||
patch:
|
||||
description: Set audio input device paramaters
|
||||
operationId: instanceAudioInputSetPatch
|
||||
operationId: instanceAudioInputPatch
|
||||
tags:
|
||||
- Instance
|
||||
consumes:
|
||||
@ -211,12 +212,57 @@ paths:
|
||||
$ref: "#/responses/Response_500"
|
||||
"501":
|
||||
$ref: "#/responses/Response_501"
|
||||
delete:
|
||||
description: Delete audio input device paramaters and return to defaults
|
||||
operationId: instanceAudioInputDelete
|
||||
tags:
|
||||
- Instance
|
||||
consumes:
|
||||
- application/json
|
||||
parameters:
|
||||
- name: body
|
||||
in: body
|
||||
description: Audio input parameters. Index is used to identify the device.
|
||||
required: true
|
||||
schema:
|
||||
$ref: "#/definitions/AudioInputDevice"
|
||||
responses:
|
||||
"200":
|
||||
description: Success. Returns default parameters.
|
||||
schema:
|
||||
$ref: "#/definitions/AudioInputDevice"
|
||||
"404":
|
||||
description: Audio input device not found
|
||||
schema:
|
||||
$ref: "#/definitions/ErrorResponse"
|
||||
"500":
|
||||
$ref: "#/responses/Response_500"
|
||||
"501":
|
||||
$ref: "#/responses/Response_501"
|
||||
|
||||
/sdrangel/audio/output/set:
|
||||
|
||||
/sdrangel/audio/input/cleanup:
|
||||
x-swagger-router-controller: instance
|
||||
patch:
|
||||
description: Remove registered parameters for devices not in list of available input devices for this instance
|
||||
operationId: instanceAudioInputCleanupPatch
|
||||
tags:
|
||||
- Instance
|
||||
responses:
|
||||
"200":
|
||||
description: Success.
|
||||
schema:
|
||||
$ref: "#/definitions/SuccessResponse"
|
||||
"500":
|
||||
$ref: "#/responses/Response_500"
|
||||
"501":
|
||||
$ref: "#/responses/Response_501"
|
||||
|
||||
/sdrangel/audio/output/parameters:
|
||||
x-swagger-router-controller: instance
|
||||
patch:
|
||||
description: Set audio output device parameters
|
||||
operationId: instanceAudioOutputSetPatch
|
||||
operationId: instanceAudioOutputPatch
|
||||
tags:
|
||||
- Instance
|
||||
consumes:
|
||||
@ -241,6 +287,50 @@ paths:
|
||||
$ref: "#/responses/Response_500"
|
||||
"501":
|
||||
$ref: "#/responses/Response_501"
|
||||
delete:
|
||||
description: Delete audio output device paramaters and return to defaults
|
||||
operationId: instanceAudioOutputDelete
|
||||
tags:
|
||||
- Instance
|
||||
consumes:
|
||||
- application/json
|
||||
parameters:
|
||||
- name: body
|
||||
in: body
|
||||
description: Audio output parameters. Index is used to identify the device.
|
||||
required: true
|
||||
schema:
|
||||
$ref: "#/definitions/AudioOutputDevice"
|
||||
responses:
|
||||
"200":
|
||||
description: Success. Returns actual data in particular the actual sample rate.
|
||||
schema:
|
||||
$ref: "#/definitions/AudioOutputDevice"
|
||||
"404":
|
||||
description: Audio output device not found
|
||||
schema:
|
||||
$ref: "#/definitions/ErrorResponse"
|
||||
"500":
|
||||
$ref: "#/responses/Response_500"
|
||||
"501":
|
||||
$ref: "#/responses/Response_501"
|
||||
|
||||
/sdrangel/audio/output/cleanup:
|
||||
x-swagger-router-controller: instance
|
||||
patch:
|
||||
description: Remove registered parameters for devices not in list of available output devices for this instance
|
||||
operationId: instanceAudioOutputCleanupPatch
|
||||
tags:
|
||||
- Instance
|
||||
responses:
|
||||
"200":
|
||||
description: Success.
|
||||
schema:
|
||||
$ref: "#/definitions/SuccessResponse"
|
||||
"500":
|
||||
$ref: "#/responses/Response_500"
|
||||
"501":
|
||||
$ref: "#/responses/Response_501"
|
||||
|
||||
/sdrangel/location:
|
||||
x-swagger-router-controller: instance
|
||||
|
@ -23,10 +23,10 @@ QString WebAPIAdapterInterface::instanceDevicesURL = "/sdrangel/devices";
|
||||
QString WebAPIAdapterInterface::instanceChannelsURL = "/sdrangel/channels";
|
||||
QString WebAPIAdapterInterface::instanceLoggingURL = "/sdrangel/logging";
|
||||
QString WebAPIAdapterInterface::instanceAudioURL = "/sdrangel/audio";
|
||||
QString WebAPIAdapterInterface::instanceAudioInputSetURL = "/sdrangel/audio/input/set";
|
||||
QString WebAPIAdapterInterface::instanceAudioOutputSetURL = "/sdrangel/audio/output/set";
|
||||
QString WebAPIAdapterInterface::instanceAudioInputUnsetURL = "/sdrangel/audio/input/unset";
|
||||
QString WebAPIAdapterInterface::instanceAudioOutputUnsetURL = "/sdrangel/audio/output/unset";
|
||||
QString WebAPIAdapterInterface::instanceAudioInputParametersURL = "/sdrangel/audio/input/parameters";
|
||||
QString WebAPIAdapterInterface::instanceAudioOutputParametersURL = "/sdrangel/audio/output/parameters";
|
||||
QString WebAPIAdapterInterface::instanceAudioInputCleanupURL = "/sdrangel/audio/input/cleanup";
|
||||
QString WebAPIAdapterInterface::instanceAudioOutputCleanupURL = "/sdrangel/audio/output/cleanup";
|
||||
QString WebAPIAdapterInterface::instanceLocationURL = "/sdrangel/location";
|
||||
QString WebAPIAdapterInterface::instanceDVSerialURL = "/sdrangel/dvserial";
|
||||
QString WebAPIAdapterInterface::instancePresetsURL = "/sdrangel/presets";
|
||||
|
@ -153,7 +153,7 @@ public:
|
||||
}
|
||||
|
||||
/**
|
||||
* Handler of /sdrangel/audio/input (PATCH) swagger/sdrangel/code/html2/index.html#api-Default-instanceChannels
|
||||
* Handler of /sdrangel/audio/input/parameters (PATCH) swagger/sdrangel/code/html2/index.html#api-Default-instanceChannels
|
||||
* returns the Http status code (default 501: not implemented)
|
||||
*/
|
||||
virtual int instanceAudioInputPatch(
|
||||
@ -167,7 +167,7 @@ public:
|
||||
}
|
||||
|
||||
/**
|
||||
* Handler of /sdrangel/audio/output (PATCH) swagger/sdrangel/code/html2/index.html#api-Default-instanceChannels
|
||||
* Handler of /sdrangel/audio/output/parameters (PATCH) swagger/sdrangel/code/html2/index.html#api-Default-instanceChannels
|
||||
* returns the Http status code (default 501: not implemented)
|
||||
*/
|
||||
virtual int instanceAudioOutputPatch(
|
||||
@ -180,6 +180,58 @@ public:
|
||||
return 501;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handler of /sdrangel/audio/input/parameters (DELETE) swagger/sdrangel/code/html2/index.html#api-Default-instanceChannels
|
||||
* returns the Http status code (default 501: not implemented)
|
||||
*/
|
||||
virtual int instanceAudioInputDelete(
|
||||
SWGSDRangel::SWGAudioInputDevice& response __attribute__((unused)),
|
||||
SWGSDRangel::SWGErrorResponse& error)
|
||||
{
|
||||
error.init();
|
||||
*error.getMessage() = QString("Function not implemented");
|
||||
return 501;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handler of /sdrangel/audio/output/paramaters (DELETE) swagger/sdrangel/code/html2/index.html#api-Default-instanceChannels
|
||||
* returns the Http status code (default 501: not implemented)
|
||||
*/
|
||||
virtual int instanceAudioOutputDelete(
|
||||
SWGSDRangel::SWGAudioOutputDevice& response __attribute__((unused)),
|
||||
SWGSDRangel::SWGErrorResponse& error)
|
||||
{
|
||||
error.init();
|
||||
*error.getMessage() = QString("Function not implemented");
|
||||
return 501;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handler of /sdrangel/audio/input/cleanup (PATCH) swagger/sdrangel/code/html2/index.html#api-Default-instanceChannels
|
||||
* returns the Http status code (default 501: not implemented)
|
||||
*/
|
||||
virtual int instanceAudioInputCleanupPatch(
|
||||
SWGSDRangel::SWGSuccessResponse& response __attribute__((unused)),
|
||||
SWGSDRangel::SWGErrorResponse& error)
|
||||
{
|
||||
error.init();
|
||||
*error.getMessage() = QString("Function not implemented");
|
||||
return 501;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handler of /sdrangel/audio/output/cleanup (PATCH) swagger/sdrangel/code/html2/index.html#api-Default-instanceChannels
|
||||
* returns the Http status code (default 501: not implemented)
|
||||
*/
|
||||
virtual int instanceAudioOutputCleanupPatch(
|
||||
SWGSDRangel::SWGSuccessResponse& response __attribute__((unused)),
|
||||
SWGSDRangel::SWGErrorResponse& error)
|
||||
{
|
||||
error.init();
|
||||
*error.getMessage() = QString("Function not implemented");
|
||||
return 501;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handler of /sdrangel/location (GET) swagger/sdrangel/code/html2/index.html#api-Default-instanceChannels
|
||||
* returns the Http status code (default 501: not implemented)
|
||||
@ -568,10 +620,10 @@ public:
|
||||
static QString instanceChannelsURL;
|
||||
static QString instanceLoggingURL;
|
||||
static QString instanceAudioURL;
|
||||
static QString instanceAudioInputSetURL;
|
||||
static QString instanceAudioOutputSetURL;
|
||||
static QString instanceAudioInputUnsetURL;
|
||||
static QString instanceAudioOutputUnsetURL;
|
||||
static QString instanceAudioInputParametersURL;
|
||||
static QString instanceAudioOutputParametersURL;
|
||||
static QString instanceAudioInputCleanupURL;
|
||||
static QString instanceAudioOutputCleanupURL;
|
||||
static QString instanceLocationURL;
|
||||
static QString instanceDVSerialURL;
|
||||
static QString instancePresetsURL;
|
||||
|
@ -84,10 +84,14 @@ void WebAPIRequestMapper::service(qtwebapp::HttpRequest& request, qtwebapp::Http
|
||||
instanceLoggingService(request, response);
|
||||
} else if (path == WebAPIAdapterInterface::instanceAudioURL) {
|
||||
instanceAudioService(request, response);
|
||||
} else if (path == WebAPIAdapterInterface::instanceAudioInputSetURL) {
|
||||
instanceAudioInputSetService(request, response);
|
||||
} else if (path == WebAPIAdapterInterface::instanceAudioOutputSetURL) {
|
||||
instanceAudioOutputSetService(request, response);
|
||||
} else if (path == WebAPIAdapterInterface::instanceAudioInputParametersURL) {
|
||||
instanceAudioInputParametersService(request, response);
|
||||
} else if (path == WebAPIAdapterInterface::instanceAudioOutputParametersURL) {
|
||||
instanceAudioOutputParametersService(request, response);
|
||||
} else if (path == WebAPIAdapterInterface::instanceAudioInputCleanupURL) {
|
||||
instanceAudioInputCleanupService(request, response);
|
||||
} else if (path == WebAPIAdapterInterface::instanceAudioOutputCleanupURL) {
|
||||
instanceAudioOutputCleanupService(request, response);
|
||||
} else if (path == WebAPIAdapterInterface::instanceLocationURL) {
|
||||
instanceLocationService(request, response);
|
||||
} else if (path == WebAPIAdapterInterface::instanceDVSerialURL) {
|
||||
@ -328,24 +332,24 @@ void WebAPIRequestMapper::instanceAudioService(qtwebapp::HttpRequest& request, q
|
||||
}
|
||||
}
|
||||
|
||||
void WebAPIRequestMapper::instanceAudioInputSetService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response)
|
||||
void WebAPIRequestMapper::instanceAudioInputParametersService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response)
|
||||
{
|
||||
// TODO
|
||||
SWGSDRangel::SWGErrorResponse errorResponse;
|
||||
response.setHeader("Content-Type", "application/json");
|
||||
|
||||
if (request.getMethod() == "PATCH")
|
||||
QString jsonStr = request.getBody();
|
||||
QJsonObject jsonObject;
|
||||
|
||||
if (parseJsonBody(jsonStr, jsonObject, response))
|
||||
{
|
||||
QString jsonStr = request.getBody();
|
||||
QJsonObject jsonObject;
|
||||
SWGSDRangel::SWGAudioInputDevice normalResponse;
|
||||
resetAudioInputDevice(normalResponse);
|
||||
QStringList audioInputDeviceKeys;
|
||||
|
||||
if (parseJsonBody(jsonStr, jsonObject, response))
|
||||
if (validateAudioInputDevice(normalResponse, jsonObject, audioInputDeviceKeys))
|
||||
{
|
||||
SWGSDRangel::SWGAudioInputDevice normalResponse;
|
||||
resetAudioInputDevice(normalResponse);
|
||||
QStringList audioInputDeviceKeys;
|
||||
|
||||
if (validateAudioInputDevice(normalResponse, jsonObject, audioInputDeviceKeys))
|
||||
if (request.getMethod() == "PATCH")
|
||||
{
|
||||
int status = m_adapter->instanceAudioInputPatch(
|
||||
normalResponse,
|
||||
@ -359,48 +363,61 @@ void WebAPIRequestMapper::instanceAudioInputSetService(qtwebapp::HttpRequest& re
|
||||
response.write(errorResponse.asJson().toUtf8());
|
||||
}
|
||||
}
|
||||
else if (request.getMethod() == "DELETE")
|
||||
{
|
||||
int status = m_adapter->instanceAudioInputDelete(
|
||||
normalResponse,
|
||||
errorResponse);
|
||||
response.setStatus(status);
|
||||
|
||||
if (status/100 == 2) {
|
||||
response.write(normalResponse.asJson().toUtf8());
|
||||
} else {
|
||||
response.write(errorResponse.asJson().toUtf8());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
response.setStatus(400,"Invalid JSON request");
|
||||
response.setStatus(405,"Invalid HTTP method");
|
||||
errorResponse.init();
|
||||
*errorResponse.getMessage() = "Invalid JSON request";
|
||||
*errorResponse.getMessage() = "Invalid HTTP method";
|
||||
response.write(errorResponse.asJson().toUtf8());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
response.setStatus(400,"Invalid JSON format");
|
||||
response.setStatus(400,"Invalid JSON request");
|
||||
errorResponse.init();
|
||||
*errorResponse.getMessage() = "Invalid JSON format";
|
||||
*errorResponse.getMessage() = "Invalid JSON request";
|
||||
response.write(errorResponse.asJson().toUtf8());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
response.setStatus(405,"Invalid HTTP method");
|
||||
response.setStatus(400,"Invalid JSON format");
|
||||
errorResponse.init();
|
||||
*errorResponse.getMessage() = "Invalid HTTP method";
|
||||
*errorResponse.getMessage() = "Invalid JSON format";
|
||||
response.write(errorResponse.asJson().toUtf8());
|
||||
}
|
||||
}
|
||||
|
||||
void WebAPIRequestMapper::instanceAudioOutputSetService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response)
|
||||
void WebAPIRequestMapper::instanceAudioOutputParametersService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response)
|
||||
{
|
||||
SWGSDRangel::SWGErrorResponse errorResponse;
|
||||
response.setHeader("Content-Type", "application/json");
|
||||
|
||||
if (request.getMethod() == "PATCH")
|
||||
QString jsonStr = request.getBody();
|
||||
QJsonObject jsonObject;
|
||||
|
||||
if (parseJsonBody(jsonStr, jsonObject, response))
|
||||
{
|
||||
QString jsonStr = request.getBody();
|
||||
QJsonObject jsonObject;
|
||||
SWGSDRangel::SWGAudioOutputDevice normalResponse;
|
||||
resetAudioOutputDevice(normalResponse);
|
||||
QStringList audioOutputDeviceKeys;
|
||||
|
||||
if (parseJsonBody(jsonStr, jsonObject, response))
|
||||
if (validateAudioOutputDevice(normalResponse, jsonObject, audioOutputDeviceKeys))
|
||||
{
|
||||
SWGSDRangel::SWGAudioOutputDevice normalResponse;
|
||||
resetAudioOutputDevice(normalResponse);
|
||||
QStringList audioOutputDeviceKeys;
|
||||
|
||||
if (validateAudioOutputDevice(normalResponse, jsonObject, audioOutputDeviceKeys))
|
||||
if (request.getMethod() == "PATCH")
|
||||
{
|
||||
int status = m_adapter->instanceAudioOutputPatch(
|
||||
normalResponse,
|
||||
@ -414,19 +431,86 @@ void WebAPIRequestMapper::instanceAudioOutputSetService(qtwebapp::HttpRequest& r
|
||||
response.write(errorResponse.asJson().toUtf8());
|
||||
}
|
||||
}
|
||||
else if (request.getMethod() == "DELETE")
|
||||
{
|
||||
int status = m_adapter->instanceAudioOutputDelete(
|
||||
normalResponse,
|
||||
errorResponse);
|
||||
response.setStatus(status);
|
||||
|
||||
if (status/100 == 2) {
|
||||
response.write(normalResponse.asJson().toUtf8());
|
||||
} else {
|
||||
response.write(errorResponse.asJson().toUtf8());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
response.setStatus(400,"Invalid JSON request");
|
||||
response.setStatus(405,"Invalid HTTP method");
|
||||
errorResponse.init();
|
||||
*errorResponse.getMessage() = "Invalid JSON request";
|
||||
*errorResponse.getMessage() = "Invalid HTTP method";
|
||||
response.write(errorResponse.asJson().toUtf8());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
response.setStatus(400,"Invalid JSON format");
|
||||
response.setStatus(400,"Invalid JSON request");
|
||||
errorResponse.init();
|
||||
*errorResponse.getMessage() = "Invalid JSON format";
|
||||
*errorResponse.getMessage() = "Invalid JSON request";
|
||||
response.write(errorResponse.asJson().toUtf8());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
response.setStatus(400,"Invalid JSON format");
|
||||
errorResponse.init();
|
||||
*errorResponse.getMessage() = "Invalid JSON format";
|
||||
response.write(errorResponse.asJson().toUtf8());
|
||||
}
|
||||
}
|
||||
|
||||
void WebAPIRequestMapper::instanceAudioInputCleanupService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response)
|
||||
{
|
||||
SWGSDRangel::SWGErrorResponse errorResponse;
|
||||
response.setHeader("Content-Type", "application/json");
|
||||
|
||||
if (request.getMethod() == "PATCH")
|
||||
{
|
||||
SWGSDRangel::SWGSuccessResponse normalResponse;
|
||||
|
||||
int status = m_adapter->instanceAudioInputCleanupPatch(normalResponse, errorResponse);
|
||||
response.setStatus(status);
|
||||
|
||||
if (status/100 == 2) {
|
||||
response.write(normalResponse.asJson().toUtf8());
|
||||
} else {
|
||||
response.write(errorResponse.asJson().toUtf8());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
response.setStatus(405,"Invalid HTTP method");
|
||||
errorResponse.init();
|
||||
*errorResponse.getMessage() = "Invalid HTTP method";
|
||||
response.write(errorResponse.asJson().toUtf8());
|
||||
}
|
||||
}
|
||||
|
||||
void WebAPIRequestMapper::instanceAudioOutputCleanupService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response)
|
||||
{
|
||||
SWGSDRangel::SWGErrorResponse errorResponse;
|
||||
response.setHeader("Content-Type", "application/json");
|
||||
|
||||
if (request.getMethod() == "PATCH")
|
||||
{
|
||||
SWGSDRangel::SWGSuccessResponse normalResponse;
|
||||
|
||||
int status = m_adapter->instanceAudioOutputCleanupPatch(normalResponse, errorResponse);
|
||||
response.setStatus(status);
|
||||
|
||||
if (status/100 == 2) {
|
||||
response.write(normalResponse.asJson().toUtf8());
|
||||
} else {
|
||||
response.write(errorResponse.asJson().toUtf8());
|
||||
}
|
||||
}
|
||||
|
@ -52,8 +52,10 @@ private:
|
||||
void instanceChannelsService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
|
||||
void instanceLoggingService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
|
||||
void instanceAudioService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
|
||||
void instanceAudioInputSetService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
|
||||
void instanceAudioOutputSetService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
|
||||
void instanceAudioInputParametersService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
|
||||
void instanceAudioOutputParametersService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
|
||||
void instanceAudioInputCleanupService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
|
||||
void instanceAudioOutputCleanupService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
|
||||
void instanceLocationService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
|
||||
void instanceDVSerialService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
|
||||
void instancePresetsService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
|
||||
|
@ -394,6 +394,88 @@ int WebAPIAdapterGUI::instanceAudioOutputPatch(
|
||||
return 200;
|
||||
}
|
||||
|
||||
int WebAPIAdapterGUI::instanceAudioInputDelete(
|
||||
SWGSDRangel::SWGAudioInputDevice& response,
|
||||
SWGSDRangel::SWGErrorResponse& error)
|
||||
{
|
||||
AudioDeviceManager::InputDeviceInfo inputDeviceInfo;
|
||||
QString deviceName;
|
||||
int deviceIndex = response.getIndex();
|
||||
|
||||
if (!m_mainWindow.m_dspEngine->getAudioDeviceManager()->getInputDeviceName(deviceIndex, deviceName))
|
||||
{
|
||||
error.init();
|
||||
*error.getMessage() = QString("There is no audio input device at index %1").arg(deviceIndex);
|
||||
return 404;
|
||||
}
|
||||
|
||||
m_mainWindow.m_dspEngine->getAudioDeviceManager()->unsetInputDeviceInfo(deviceIndex);
|
||||
m_mainWindow.m_dspEngine->getAudioDeviceManager()->getInputDeviceInfo(deviceName, inputDeviceInfo);
|
||||
|
||||
response.setSampleRate(inputDeviceInfo.sampleRate);
|
||||
response.setVolume(inputDeviceInfo.volume);
|
||||
|
||||
return 200;
|
||||
}
|
||||
|
||||
int WebAPIAdapterGUI::instanceAudioOutputDelete(
|
||||
SWGSDRangel::SWGAudioOutputDevice& response,
|
||||
SWGSDRangel::SWGErrorResponse& error)
|
||||
{
|
||||
AudioDeviceManager::OutputDeviceInfo outputDeviceInfo;
|
||||
QString deviceName;
|
||||
int deviceIndex = response.getIndex();
|
||||
|
||||
if (!m_mainWindow.m_dspEngine->getAudioDeviceManager()->getOutputDeviceName(deviceIndex, deviceName))
|
||||
{
|
||||
error.init();
|
||||
*error.getMessage() = QString("There is no audio output device at index %1").arg(deviceIndex);
|
||||
return 404;
|
||||
}
|
||||
|
||||
m_mainWindow.m_dspEngine->getAudioDeviceManager()->unsetInputDeviceInfo(deviceIndex);
|
||||
m_mainWindow.m_dspEngine->getAudioDeviceManager()->getOutputDeviceInfo(deviceName, outputDeviceInfo);
|
||||
|
||||
response.setSampleRate(outputDeviceInfo.sampleRate);
|
||||
response.setCopyToUdp(outputDeviceInfo.copyToUDP == 0 ? 0 : 1);
|
||||
response.setUdpUsesRtp(outputDeviceInfo.udpUseRTP == 0 ? 0 : 1);
|
||||
response.setUdpChannelMode(outputDeviceInfo.udpChannelMode % 4);
|
||||
|
||||
if (response.getUdpAddress()) {
|
||||
*response.getUdpAddress() = outputDeviceInfo.udpAddress;
|
||||
} else {
|
||||
response.setUdpAddress(new QString(outputDeviceInfo.udpAddress));
|
||||
}
|
||||
|
||||
response.setUdpPort(outputDeviceInfo.udpPort % (1<<16));
|
||||
|
||||
return 200;
|
||||
}
|
||||
|
||||
int WebAPIAdapterGUI::instanceAudioInputCleanupPatch(
|
||||
SWGSDRangel::SWGSuccessResponse& response,
|
||||
SWGSDRangel::SWGErrorResponse& error __attribute__((unused)))
|
||||
{
|
||||
m_mainWindow.m_dspEngine->getAudioDeviceManager()->inputInfosCleanup();
|
||||
|
||||
response.init();
|
||||
*response.getMessage() = QString("Unregistered parameters for devices not in list of available input devices for this instance");
|
||||
|
||||
return 200;
|
||||
}
|
||||
|
||||
int WebAPIAdapterGUI::instanceAudioOutputCleanupPatch(
|
||||
SWGSDRangel::SWGSuccessResponse& response,
|
||||
SWGSDRangel::SWGErrorResponse& error __attribute__((unused)))
|
||||
{
|
||||
m_mainWindow.m_dspEngine->getAudioDeviceManager()->outputInfosCleanup();
|
||||
|
||||
response.init();
|
||||
*response.getMessage() = QString("Unregistered parameters for devices not in list of available output devices for this instance");
|
||||
|
||||
return 200;
|
||||
}
|
||||
|
||||
int WebAPIAdapterGUI::instanceLocationGet(
|
||||
SWGSDRangel::SWGLocationInformation& response,
|
||||
SWGSDRangel::SWGErrorResponse& error __attribute__((unused)))
|
||||
|
@ -73,6 +73,22 @@ public:
|
||||
const QStringList& audioOutputKeys,
|
||||
SWGSDRangel::SWGErrorResponse& error);
|
||||
|
||||
virtual int instanceAudioInputDelete(
|
||||
SWGSDRangel::SWGAudioInputDevice& response,
|
||||
SWGSDRangel::SWGErrorResponse& error);
|
||||
|
||||
virtual int instanceAudioOutputDelete(
|
||||
SWGSDRangel::SWGAudioOutputDevice& response,
|
||||
SWGSDRangel::SWGErrorResponse& error);
|
||||
|
||||
virtual int instanceAudioInputCleanupPatch(
|
||||
SWGSDRangel::SWGSuccessResponse& response,
|
||||
SWGSDRangel::SWGErrorResponse& error);
|
||||
|
||||
virtual int instanceAudioOutputCleanupPatch(
|
||||
SWGSDRangel::SWGSuccessResponse& response,
|
||||
SWGSDRangel::SWGErrorResponse& error);
|
||||
|
||||
virtual int instanceLocationGet(
|
||||
SWGSDRangel::SWGLocationInformation& response,
|
||||
SWGSDRangel::SWGErrorResponse& error);
|
||||
|
@ -395,6 +395,88 @@ int WebAPIAdapterSrv::instanceAudioOutputPatch(
|
||||
return 200;
|
||||
}
|
||||
|
||||
int WebAPIAdapterSrv::instanceAudioInputDelete(
|
||||
SWGSDRangel::SWGAudioInputDevice& response,
|
||||
SWGSDRangel::SWGErrorResponse& error)
|
||||
{
|
||||
AudioDeviceManager::InputDeviceInfo inputDeviceInfo;
|
||||
QString deviceName;
|
||||
int deviceIndex = response.getIndex();
|
||||
|
||||
if (!m_mainCore.m_dspEngine->getAudioDeviceManager()->getInputDeviceName(deviceIndex, deviceName))
|
||||
{
|
||||
error.init();
|
||||
*error.getMessage() = QString("There is no audio input device at index %1").arg(deviceIndex);
|
||||
return 404;
|
||||
}
|
||||
|
||||
m_mainCore.m_dspEngine->getAudioDeviceManager()->unsetInputDeviceInfo(deviceIndex);
|
||||
m_mainCore.m_dspEngine->getAudioDeviceManager()->getInputDeviceInfo(deviceName, inputDeviceInfo);
|
||||
|
||||
response.setSampleRate(inputDeviceInfo.sampleRate);
|
||||
response.setVolume(inputDeviceInfo.volume);
|
||||
|
||||
return 200;
|
||||
}
|
||||
|
||||
int WebAPIAdapterSrv::instanceAudioOutputDelete(
|
||||
SWGSDRangel::SWGAudioOutputDevice& response,
|
||||
SWGSDRangel::SWGErrorResponse& error)
|
||||
{
|
||||
AudioDeviceManager::OutputDeviceInfo outputDeviceInfo;
|
||||
QString deviceName;
|
||||
int deviceIndex = response.getIndex();
|
||||
|
||||
if (!m_mainCore.m_dspEngine->getAudioDeviceManager()->getOutputDeviceName(deviceIndex, deviceName))
|
||||
{
|
||||
error.init();
|
||||
*error.getMessage() = QString("There is no audio output device at index %1").arg(deviceIndex);
|
||||
return 404;
|
||||
}
|
||||
|
||||
m_mainCore.m_dspEngine->getAudioDeviceManager()->unsetInputDeviceInfo(deviceIndex);
|
||||
m_mainCore.m_dspEngine->getAudioDeviceManager()->getOutputDeviceInfo(deviceName, outputDeviceInfo);
|
||||
|
||||
response.setSampleRate(outputDeviceInfo.sampleRate);
|
||||
response.setCopyToUdp(outputDeviceInfo.copyToUDP == 0 ? 0 : 1);
|
||||
response.setUdpUsesRtp(outputDeviceInfo.udpUseRTP == 0 ? 0 : 1);
|
||||
response.setUdpChannelMode(outputDeviceInfo.udpChannelMode % 4);
|
||||
|
||||
if (response.getUdpAddress()) {
|
||||
*response.getUdpAddress() = outputDeviceInfo.udpAddress;
|
||||
} else {
|
||||
response.setUdpAddress(new QString(outputDeviceInfo.udpAddress));
|
||||
}
|
||||
|
||||
response.setUdpPort(outputDeviceInfo.udpPort % (1<<16));
|
||||
|
||||
return 200;
|
||||
}
|
||||
|
||||
int WebAPIAdapterSrv::instanceAudioInputCleanupPatch(
|
||||
SWGSDRangel::SWGSuccessResponse& response,
|
||||
SWGSDRangel::SWGErrorResponse& error __attribute__((unused)))
|
||||
{
|
||||
m_mainCore.m_dspEngine->getAudioDeviceManager()->inputInfosCleanup();
|
||||
|
||||
response.init();
|
||||
*response.getMessage() = QString("Unregistered parameters for devices not in list of available input devices for this instance");
|
||||
|
||||
return 200;
|
||||
}
|
||||
|
||||
int WebAPIAdapterSrv::instanceAudioOutputCleanupPatch(
|
||||
SWGSDRangel::SWGSuccessResponse& response,
|
||||
SWGSDRangel::SWGErrorResponse& error __attribute__((unused)))
|
||||
{
|
||||
m_mainCore.m_dspEngine->getAudioDeviceManager()->outputInfosCleanup();
|
||||
|
||||
response.init();
|
||||
*response.getMessage() = QString("Unregistered parameters for devices not in list of available output devices for this instance");
|
||||
|
||||
return 200;
|
||||
}
|
||||
|
||||
int WebAPIAdapterSrv::instanceLocationGet(
|
||||
SWGSDRangel::SWGLocationInformation& response,
|
||||
SWGSDRangel::SWGErrorResponse& error __attribute__((unused)))
|
||||
|
@ -73,6 +73,22 @@ public:
|
||||
const QStringList& audioOutputKeys,
|
||||
SWGSDRangel::SWGErrorResponse& error);
|
||||
|
||||
virtual int instanceAudioInputDelete(
|
||||
SWGSDRangel::SWGAudioInputDevice& response,
|
||||
SWGSDRangel::SWGErrorResponse& error);
|
||||
|
||||
virtual int instanceAudioOutputDelete(
|
||||
SWGSDRangel::SWGAudioOutputDevice& response,
|
||||
SWGSDRangel::SWGErrorResponse& error);
|
||||
|
||||
virtual int instanceAudioInputCleanupPatch(
|
||||
SWGSDRangel::SWGSuccessResponse& response,
|
||||
SWGSDRangel::SWGErrorResponse& error);
|
||||
|
||||
virtual int instanceAudioOutputCleanupPatch(
|
||||
SWGSDRangel::SWGSuccessResponse& response,
|
||||
SWGSDRangel::SWGErrorResponse& error);
|
||||
|
||||
virtual int instanceLocationGet(
|
||||
SWGSDRangel::SWGLocationInformation& response,
|
||||
SWGSDRangel::SWGErrorResponse& error);
|
||||
|
@ -182,11 +182,12 @@ paths:
|
||||
$ref: "#/responses/Response_500"
|
||||
"501":
|
||||
$ref: "#/responses/Response_501"
|
||||
/sdrangel/audio/input/set:
|
||||
|
||||
/sdrangel/audio/input/parameters:
|
||||
x-swagger-router-controller: instance
|
||||
patch:
|
||||
description: Set audio input device paramaters
|
||||
operationId: instanceAudioInputSetPatch
|
||||
operationId: instanceAudioInputPatch
|
||||
tags:
|
||||
- Instance
|
||||
consumes:
|
||||
@ -211,12 +212,57 @@ paths:
|
||||
$ref: "#/responses/Response_500"
|
||||
"501":
|
||||
$ref: "#/responses/Response_501"
|
||||
delete:
|
||||
description: Delete audio input device paramaters and return to defaults
|
||||
operationId: instanceAudioInputDelete
|
||||
tags:
|
||||
- Instance
|
||||
consumes:
|
||||
- application/json
|
||||
parameters:
|
||||
- name: body
|
||||
in: body
|
||||
description: Audio input parameters. Index is used to identify the device.
|
||||
required: true
|
||||
schema:
|
||||
$ref: "#/definitions/AudioInputDevice"
|
||||
responses:
|
||||
"200":
|
||||
description: Success. Returns default parameters.
|
||||
schema:
|
||||
$ref: "#/definitions/AudioInputDevice"
|
||||
"404":
|
||||
description: Audio input device not found
|
||||
schema:
|
||||
$ref: "#/definitions/ErrorResponse"
|
||||
"500":
|
||||
$ref: "#/responses/Response_500"
|
||||
"501":
|
||||
$ref: "#/responses/Response_501"
|
||||
|
||||
/sdrangel/audio/output/set:
|
||||
|
||||
/sdrangel/audio/input/cleanup:
|
||||
x-swagger-router-controller: instance
|
||||
patch:
|
||||
description: Remove registered parameters for devices not in list of available input devices for this instance
|
||||
operationId: instanceAudioInputCleanupPatch
|
||||
tags:
|
||||
- Instance
|
||||
responses:
|
||||
"200":
|
||||
description: Success.
|
||||
schema:
|
||||
$ref: "#/definitions/SuccessResponse"
|
||||
"500":
|
||||
$ref: "#/responses/Response_500"
|
||||
"501":
|
||||
$ref: "#/responses/Response_501"
|
||||
|
||||
/sdrangel/audio/output/parameters:
|
||||
x-swagger-router-controller: instance
|
||||
patch:
|
||||
description: Set audio output device parameters
|
||||
operationId: instanceAudioOutputSetPatch
|
||||
operationId: instanceAudioOutputPatch
|
||||
tags:
|
||||
- Instance
|
||||
consumes:
|
||||
@ -241,6 +287,50 @@ paths:
|
||||
$ref: "#/responses/Response_500"
|
||||
"501":
|
||||
$ref: "#/responses/Response_501"
|
||||
delete:
|
||||
description: Delete audio output device paramaters and return to defaults
|
||||
operationId: instanceAudioOutputDelete
|
||||
tags:
|
||||
- Instance
|
||||
consumes:
|
||||
- application/json
|
||||
parameters:
|
||||
- name: body
|
||||
in: body
|
||||
description: Audio output parameters. Index is used to identify the device.
|
||||
required: true
|
||||
schema:
|
||||
$ref: "#/definitions/AudioOutputDevice"
|
||||
responses:
|
||||
"200":
|
||||
description: Success. Returns actual data in particular the actual sample rate.
|
||||
schema:
|
||||
$ref: "#/definitions/AudioOutputDevice"
|
||||
"404":
|
||||
description: Audio output device not found
|
||||
schema:
|
||||
$ref: "#/definitions/ErrorResponse"
|
||||
"500":
|
||||
$ref: "#/responses/Response_500"
|
||||
"501":
|
||||
$ref: "#/responses/Response_501"
|
||||
|
||||
/sdrangel/audio/output/cleanup:
|
||||
x-swagger-router-controller: instance
|
||||
patch:
|
||||
description: Remove registered parameters for devices not in list of available output devices for this instance
|
||||
operationId: instanceAudioOutputCleanupPatch
|
||||
tags:
|
||||
- Instance
|
||||
responses:
|
||||
"200":
|
||||
description: Success.
|
||||
schema:
|
||||
$ref: "#/definitions/SuccessResponse"
|
||||
"500":
|
||||
$ref: "#/responses/Response_500"
|
||||
"501":
|
||||
$ref: "#/responses/Response_501"
|
||||
|
||||
/sdrangel/location:
|
||||
x-swagger-router-controller: instance
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -81,9 +81,9 @@ SWGInstanceApi::instanceAudioGetCallback(SWGHttpRequestWorker * worker) {
|
||||
}
|
||||
|
||||
void
|
||||
SWGInstanceApi::instanceAudioInputSetPatch(SWGAudioInputDevice& body) {
|
||||
SWGInstanceApi::instanceAudioInputCleanupPatch() {
|
||||
QString fullPath;
|
||||
fullPath.append(this->host).append(this->basePath).append("/sdrangel/audio/input/set");
|
||||
fullPath.append(this->host).append(this->basePath).append("/sdrangel/audio/input/cleanup");
|
||||
|
||||
|
||||
|
||||
@ -91,6 +91,58 @@ SWGInstanceApi::instanceAudioInputSetPatch(SWGAudioInputDevice& body) {
|
||||
SWGHttpRequestInput input(fullPath, "PATCH");
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
foreach(QString key, this->defaultHeaders.keys()) {
|
||||
input.headers.insert(key, this->defaultHeaders.value(key));
|
||||
}
|
||||
|
||||
connect(worker,
|
||||
&SWGHttpRequestWorker::on_execution_finished,
|
||||
this,
|
||||
&SWGInstanceApi::instanceAudioInputCleanupPatchCallback);
|
||||
|
||||
worker->execute(&input);
|
||||
}
|
||||
|
||||
void
|
||||
SWGInstanceApi::instanceAudioInputCleanupPatchCallback(SWGHttpRequestWorker * worker) {
|
||||
QString msg;
|
||||
QString error_str = worker->error_str;
|
||||
QNetworkReply::NetworkError error_type = worker->error_type;
|
||||
|
||||
if (worker->error_type == QNetworkReply::NoError) {
|
||||
msg = QString("Success! %1 bytes").arg(worker->response.length());
|
||||
}
|
||||
else {
|
||||
msg = "Error: " + worker->error_str;
|
||||
}
|
||||
|
||||
|
||||
QString json(worker->response);
|
||||
SWGSuccessResponse* output = static_cast<SWGSuccessResponse*>(create(json, QString("SWGSuccessResponse")));
|
||||
worker->deleteLater();
|
||||
|
||||
if (worker->error_type == QNetworkReply::NoError) {
|
||||
emit instanceAudioInputCleanupPatchSignal(output);
|
||||
} else {
|
||||
emit instanceAudioInputCleanupPatchSignalE(output, error_type, error_str);
|
||||
emit instanceAudioInputCleanupPatchSignalEFull(worker, error_type, error_str);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
SWGInstanceApi::instanceAudioInputDelete(SWGAudioInputDevice& body) {
|
||||
QString fullPath;
|
||||
fullPath.append(this->host).append(this->basePath).append("/sdrangel/audio/input/parameters");
|
||||
|
||||
|
||||
|
||||
SWGHttpRequestWorker *worker = new SWGHttpRequestWorker();
|
||||
SWGHttpRequestInput input(fullPath, "DELETE");
|
||||
|
||||
|
||||
|
||||
QString output = body.asJson();
|
||||
input.request_body.append(output);
|
||||
@ -104,13 +156,13 @@ SWGInstanceApi::instanceAudioInputSetPatch(SWGAudioInputDevice& body) {
|
||||
connect(worker,
|
||||
&SWGHttpRequestWorker::on_execution_finished,
|
||||
this,
|
||||
&SWGInstanceApi::instanceAudioInputSetPatchCallback);
|
||||
&SWGInstanceApi::instanceAudioInputDeleteCallback);
|
||||
|
||||
worker->execute(&input);
|
||||
}
|
||||
|
||||
void
|
||||
SWGInstanceApi::instanceAudioInputSetPatchCallback(SWGHttpRequestWorker * worker) {
|
||||
SWGInstanceApi::instanceAudioInputDeleteCallback(SWGHttpRequestWorker * worker) {
|
||||
QString msg;
|
||||
QString error_str = worker->error_str;
|
||||
QNetworkReply::NetworkError error_type = worker->error_type;
|
||||
@ -128,17 +180,17 @@ SWGInstanceApi::instanceAudioInputSetPatchCallback(SWGHttpRequestWorker * worker
|
||||
worker->deleteLater();
|
||||
|
||||
if (worker->error_type == QNetworkReply::NoError) {
|
||||
emit instanceAudioInputSetPatchSignal(output);
|
||||
emit instanceAudioInputDeleteSignal(output);
|
||||
} else {
|
||||
emit instanceAudioInputSetPatchSignalE(output, error_type, error_str);
|
||||
emit instanceAudioInputSetPatchSignalEFull(worker, error_type, error_str);
|
||||
emit instanceAudioInputDeleteSignalE(output, error_type, error_str);
|
||||
emit instanceAudioInputDeleteSignalEFull(worker, error_type, error_str);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
SWGInstanceApi::instanceAudioOutputSetPatch(SWGAudioOutputDevice& body) {
|
||||
SWGInstanceApi::instanceAudioInputPatch(SWGAudioInputDevice& body) {
|
||||
QString fullPath;
|
||||
fullPath.append(this->host).append(this->basePath).append("/sdrangel/audio/output/set");
|
||||
fullPath.append(this->host).append(this->basePath).append("/sdrangel/audio/input/parameters");
|
||||
|
||||
|
||||
|
||||
@ -159,13 +211,120 @@ SWGInstanceApi::instanceAudioOutputSetPatch(SWGAudioOutputDevice& body) {
|
||||
connect(worker,
|
||||
&SWGHttpRequestWorker::on_execution_finished,
|
||||
this,
|
||||
&SWGInstanceApi::instanceAudioOutputSetPatchCallback);
|
||||
&SWGInstanceApi::instanceAudioInputPatchCallback);
|
||||
|
||||
worker->execute(&input);
|
||||
}
|
||||
|
||||
void
|
||||
SWGInstanceApi::instanceAudioOutputSetPatchCallback(SWGHttpRequestWorker * worker) {
|
||||
SWGInstanceApi::instanceAudioInputPatchCallback(SWGHttpRequestWorker * worker) {
|
||||
QString msg;
|
||||
QString error_str = worker->error_str;
|
||||
QNetworkReply::NetworkError error_type = worker->error_type;
|
||||
|
||||
if (worker->error_type == QNetworkReply::NoError) {
|
||||
msg = QString("Success! %1 bytes").arg(worker->response.length());
|
||||
}
|
||||
else {
|
||||
msg = "Error: " + worker->error_str;
|
||||
}
|
||||
|
||||
|
||||
QString json(worker->response);
|
||||
SWGAudioInputDevice* output = static_cast<SWGAudioInputDevice*>(create(json, QString("SWGAudioInputDevice")));
|
||||
worker->deleteLater();
|
||||
|
||||
if (worker->error_type == QNetworkReply::NoError) {
|
||||
emit instanceAudioInputPatchSignal(output);
|
||||
} else {
|
||||
emit instanceAudioInputPatchSignalE(output, error_type, error_str);
|
||||
emit instanceAudioInputPatchSignalEFull(worker, error_type, error_str);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
SWGInstanceApi::instanceAudioOutputCleanupPatch() {
|
||||
QString fullPath;
|
||||
fullPath.append(this->host).append(this->basePath).append("/sdrangel/audio/output/cleanup");
|
||||
|
||||
|
||||
|
||||
SWGHttpRequestWorker *worker = new SWGHttpRequestWorker();
|
||||
SWGHttpRequestInput input(fullPath, "PATCH");
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
foreach(QString key, this->defaultHeaders.keys()) {
|
||||
input.headers.insert(key, this->defaultHeaders.value(key));
|
||||
}
|
||||
|
||||
connect(worker,
|
||||
&SWGHttpRequestWorker::on_execution_finished,
|
||||
this,
|
||||
&SWGInstanceApi::instanceAudioOutputCleanupPatchCallback);
|
||||
|
||||
worker->execute(&input);
|
||||
}
|
||||
|
||||
void
|
||||
SWGInstanceApi::instanceAudioOutputCleanupPatchCallback(SWGHttpRequestWorker * worker) {
|
||||
QString msg;
|
||||
QString error_str = worker->error_str;
|
||||
QNetworkReply::NetworkError error_type = worker->error_type;
|
||||
|
||||
if (worker->error_type == QNetworkReply::NoError) {
|
||||
msg = QString("Success! %1 bytes").arg(worker->response.length());
|
||||
}
|
||||
else {
|
||||
msg = "Error: " + worker->error_str;
|
||||
}
|
||||
|
||||
|
||||
QString json(worker->response);
|
||||
SWGSuccessResponse* output = static_cast<SWGSuccessResponse*>(create(json, QString("SWGSuccessResponse")));
|
||||
worker->deleteLater();
|
||||
|
||||
if (worker->error_type == QNetworkReply::NoError) {
|
||||
emit instanceAudioOutputCleanupPatchSignal(output);
|
||||
} else {
|
||||
emit instanceAudioOutputCleanupPatchSignalE(output, error_type, error_str);
|
||||
emit instanceAudioOutputCleanupPatchSignalEFull(worker, error_type, error_str);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
SWGInstanceApi::instanceAudioOutputDelete(SWGAudioOutputDevice& body) {
|
||||
QString fullPath;
|
||||
fullPath.append(this->host).append(this->basePath).append("/sdrangel/audio/output/parameters");
|
||||
|
||||
|
||||
|
||||
SWGHttpRequestWorker *worker = new SWGHttpRequestWorker();
|
||||
SWGHttpRequestInput input(fullPath, "DELETE");
|
||||
|
||||
|
||||
|
||||
QString output = body.asJson();
|
||||
input.request_body.append(output);
|
||||
|
||||
|
||||
|
||||
foreach(QString key, this->defaultHeaders.keys()) {
|
||||
input.headers.insert(key, this->defaultHeaders.value(key));
|
||||
}
|
||||
|
||||
connect(worker,
|
||||
&SWGHttpRequestWorker::on_execution_finished,
|
||||
this,
|
||||
&SWGInstanceApi::instanceAudioOutputDeleteCallback);
|
||||
|
||||
worker->execute(&input);
|
||||
}
|
||||
|
||||
void
|
||||
SWGInstanceApi::instanceAudioOutputDeleteCallback(SWGHttpRequestWorker * worker) {
|
||||
QString msg;
|
||||
QString error_str = worker->error_str;
|
||||
QNetworkReply::NetworkError error_type = worker->error_type;
|
||||
@ -183,10 +342,65 @@ SWGInstanceApi::instanceAudioOutputSetPatchCallback(SWGHttpRequestWorker * worke
|
||||
worker->deleteLater();
|
||||
|
||||
if (worker->error_type == QNetworkReply::NoError) {
|
||||
emit instanceAudioOutputSetPatchSignal(output);
|
||||
emit instanceAudioOutputDeleteSignal(output);
|
||||
} else {
|
||||
emit instanceAudioOutputSetPatchSignalE(output, error_type, error_str);
|
||||
emit instanceAudioOutputSetPatchSignalEFull(worker, error_type, error_str);
|
||||
emit instanceAudioOutputDeleteSignalE(output, error_type, error_str);
|
||||
emit instanceAudioOutputDeleteSignalEFull(worker, error_type, error_str);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
SWGInstanceApi::instanceAudioOutputPatch(SWGAudioOutputDevice& body) {
|
||||
QString fullPath;
|
||||
fullPath.append(this->host).append(this->basePath).append("/sdrangel/audio/output/parameters");
|
||||
|
||||
|
||||
|
||||
SWGHttpRequestWorker *worker = new SWGHttpRequestWorker();
|
||||
SWGHttpRequestInput input(fullPath, "PATCH");
|
||||
|
||||
|
||||
|
||||
QString output = body.asJson();
|
||||
input.request_body.append(output);
|
||||
|
||||
|
||||
|
||||
foreach(QString key, this->defaultHeaders.keys()) {
|
||||
input.headers.insert(key, this->defaultHeaders.value(key));
|
||||
}
|
||||
|
||||
connect(worker,
|
||||
&SWGHttpRequestWorker::on_execution_finished,
|
||||
this,
|
||||
&SWGInstanceApi::instanceAudioOutputPatchCallback);
|
||||
|
||||
worker->execute(&input);
|
||||
}
|
||||
|
||||
void
|
||||
SWGInstanceApi::instanceAudioOutputPatchCallback(SWGHttpRequestWorker * worker) {
|
||||
QString msg;
|
||||
QString error_str = worker->error_str;
|
||||
QNetworkReply::NetworkError error_type = worker->error_type;
|
||||
|
||||
if (worker->error_type == QNetworkReply::NoError) {
|
||||
msg = QString("Success! %1 bytes").arg(worker->response.length());
|
||||
}
|
||||
else {
|
||||
msg = "Error: " + worker->error_str;
|
||||
}
|
||||
|
||||
|
||||
QString json(worker->response);
|
||||
SWGAudioOutputDevice* output = static_cast<SWGAudioOutputDevice*>(create(json, QString("SWGAudioOutputDevice")));
|
||||
worker->deleteLater();
|
||||
|
||||
if (worker->error_type == QNetworkReply::NoError) {
|
||||
emit instanceAudioOutputPatchSignal(output);
|
||||
} else {
|
||||
emit instanceAudioOutputPatchSignalE(output, error_type, error_str);
|
||||
emit instanceAudioOutputPatchSignalEFull(worker, error_type, error_str);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -31,6 +31,7 @@
|
||||
#include "SWGPresetImport.h"
|
||||
#include "SWGPresetTransfer.h"
|
||||
#include "SWGPresets.h"
|
||||
#include "SWGSuccessResponse.h"
|
||||
|
||||
#include <QObject>
|
||||
|
||||
@ -49,8 +50,12 @@ public:
|
||||
QMap<QString, QString> defaultHeaders;
|
||||
|
||||
void instanceAudioGet();
|
||||
void instanceAudioInputSetPatch(SWGAudioInputDevice& body);
|
||||
void instanceAudioOutputSetPatch(SWGAudioOutputDevice& body);
|
||||
void instanceAudioInputCleanupPatch();
|
||||
void instanceAudioInputDelete(SWGAudioInputDevice& body);
|
||||
void instanceAudioInputPatch(SWGAudioInputDevice& body);
|
||||
void instanceAudioOutputCleanupPatch();
|
||||
void instanceAudioOutputDelete(SWGAudioOutputDevice& body);
|
||||
void instanceAudioOutputPatch(SWGAudioOutputDevice& body);
|
||||
void instanceChannels(qint32 tx);
|
||||
void instanceDVSerialPatch(qint32 dvserial);
|
||||
void instanceDelete();
|
||||
@ -71,8 +76,12 @@ public:
|
||||
|
||||
private:
|
||||
void instanceAudioGetCallback (SWGHttpRequestWorker * worker);
|
||||
void instanceAudioInputSetPatchCallback (SWGHttpRequestWorker * worker);
|
||||
void instanceAudioOutputSetPatchCallback (SWGHttpRequestWorker * worker);
|
||||
void instanceAudioInputCleanupPatchCallback (SWGHttpRequestWorker * worker);
|
||||
void instanceAudioInputDeleteCallback (SWGHttpRequestWorker * worker);
|
||||
void instanceAudioInputPatchCallback (SWGHttpRequestWorker * worker);
|
||||
void instanceAudioOutputCleanupPatchCallback (SWGHttpRequestWorker * worker);
|
||||
void instanceAudioOutputDeleteCallback (SWGHttpRequestWorker * worker);
|
||||
void instanceAudioOutputPatchCallback (SWGHttpRequestWorker * worker);
|
||||
void instanceChannelsCallback (SWGHttpRequestWorker * worker);
|
||||
void instanceDVSerialPatchCallback (SWGHttpRequestWorker * worker);
|
||||
void instanceDeleteCallback (SWGHttpRequestWorker * worker);
|
||||
@ -93,8 +102,12 @@ private:
|
||||
|
||||
signals:
|
||||
void instanceAudioGetSignal(SWGAudioDevices* summary);
|
||||
void instanceAudioInputSetPatchSignal(SWGAudioInputDevice* summary);
|
||||
void instanceAudioOutputSetPatchSignal(SWGAudioOutputDevice* summary);
|
||||
void instanceAudioInputCleanupPatchSignal(SWGSuccessResponse* summary);
|
||||
void instanceAudioInputDeleteSignal(SWGAudioInputDevice* summary);
|
||||
void instanceAudioInputPatchSignal(SWGAudioInputDevice* summary);
|
||||
void instanceAudioOutputCleanupPatchSignal(SWGSuccessResponse* summary);
|
||||
void instanceAudioOutputDeleteSignal(SWGAudioOutputDevice* summary);
|
||||
void instanceAudioOutputPatchSignal(SWGAudioOutputDevice* summary);
|
||||
void instanceChannelsSignal(SWGInstanceChannelsResponse* summary);
|
||||
void instanceDVSerialPatchSignal(SWGDVSeralDevices* summary);
|
||||
void instanceDeleteSignal(SWGInstanceSummaryResponse* summary);
|
||||
@ -114,8 +127,12 @@ signals:
|
||||
void instanceSummarySignal(SWGInstanceSummaryResponse* summary);
|
||||
|
||||
void instanceAudioGetSignalE(SWGAudioDevices* summary, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
void instanceAudioInputSetPatchSignalE(SWGAudioInputDevice* summary, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
void instanceAudioOutputSetPatchSignalE(SWGAudioOutputDevice* summary, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
void instanceAudioInputCleanupPatchSignalE(SWGSuccessResponse* summary, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
void instanceAudioInputDeleteSignalE(SWGAudioInputDevice* summary, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
void instanceAudioInputPatchSignalE(SWGAudioInputDevice* summary, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
void instanceAudioOutputCleanupPatchSignalE(SWGSuccessResponse* summary, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
void instanceAudioOutputDeleteSignalE(SWGAudioOutputDevice* summary, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
void instanceAudioOutputPatchSignalE(SWGAudioOutputDevice* summary, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
void instanceChannelsSignalE(SWGInstanceChannelsResponse* summary, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
void instanceDVSerialPatchSignalE(SWGDVSeralDevices* summary, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
void instanceDeleteSignalE(SWGInstanceSummaryResponse* summary, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
@ -135,8 +152,12 @@ signals:
|
||||
void instanceSummarySignalE(SWGInstanceSummaryResponse* summary, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
|
||||
void instanceAudioGetSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
void instanceAudioInputSetPatchSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
void instanceAudioOutputSetPatchSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
void instanceAudioInputCleanupPatchSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
void instanceAudioInputDeleteSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
void instanceAudioInputPatchSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
void instanceAudioOutputCleanupPatchSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
void instanceAudioOutputDeleteSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
void instanceAudioOutputPatchSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
void instanceChannelsSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
void instanceDVSerialPatchSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
void instanceDeleteSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
|
||||
|
Loading…
Reference in New Issue
Block a user