1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2025-06-25 05:25:27 -04:00

Multiple audio support: Web API: implemented all interfaces to AudioDeviceManager

This commit is contained in:
f4exb 2018-03-29 01:43:31 +02:00
parent 249ea735c8
commit b7065c8c83
14 changed files with 4193 additions and 360 deletions

File diff suppressed because it is too large Load Diff

View File

@ -182,11 +182,12 @@ paths:
$ref: "#/responses/Response_500" $ref: "#/responses/Response_500"
"501": "501":
$ref: "#/responses/Response_501" $ref: "#/responses/Response_501"
/sdrangel/audio/input/set:
/sdrangel/audio/input/parameters:
x-swagger-router-controller: instance x-swagger-router-controller: instance
patch: patch:
description: Set audio input device paramaters description: Set audio input device paramaters
operationId: instanceAudioInputSetPatch operationId: instanceAudioInputPatch
tags: tags:
- Instance - Instance
consumes: consumes:
@ -211,12 +212,57 @@ paths:
$ref: "#/responses/Response_500" $ref: "#/responses/Response_500"
"501": "501":
$ref: "#/responses/Response_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 x-swagger-router-controller: instance
patch: patch:
description: Set audio output device parameters description: Set audio output device parameters
operationId: instanceAudioOutputSetPatch operationId: instanceAudioOutputPatch
tags: tags:
- Instance - Instance
consumes: consumes:
@ -241,6 +287,50 @@ paths:
$ref: "#/responses/Response_500" $ref: "#/responses/Response_500"
"501": "501":
$ref: "#/responses/Response_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: /sdrangel/location:
x-swagger-router-controller: instance x-swagger-router-controller: instance

View File

@ -23,10 +23,10 @@ QString WebAPIAdapterInterface::instanceDevicesURL = "/sdrangel/devices";
QString WebAPIAdapterInterface::instanceChannelsURL = "/sdrangel/channels"; QString WebAPIAdapterInterface::instanceChannelsURL = "/sdrangel/channels";
QString WebAPIAdapterInterface::instanceLoggingURL = "/sdrangel/logging"; QString WebAPIAdapterInterface::instanceLoggingURL = "/sdrangel/logging";
QString WebAPIAdapterInterface::instanceAudioURL = "/sdrangel/audio"; QString WebAPIAdapterInterface::instanceAudioURL = "/sdrangel/audio";
QString WebAPIAdapterInterface::instanceAudioInputSetURL = "/sdrangel/audio/input/set"; QString WebAPIAdapterInterface::instanceAudioInputParametersURL = "/sdrangel/audio/input/parameters";
QString WebAPIAdapterInterface::instanceAudioOutputSetURL = "/sdrangel/audio/output/set"; QString WebAPIAdapterInterface::instanceAudioOutputParametersURL = "/sdrangel/audio/output/parameters";
QString WebAPIAdapterInterface::instanceAudioInputUnsetURL = "/sdrangel/audio/input/unset"; QString WebAPIAdapterInterface::instanceAudioInputCleanupURL = "/sdrangel/audio/input/cleanup";
QString WebAPIAdapterInterface::instanceAudioOutputUnsetURL = "/sdrangel/audio/output/unset"; QString WebAPIAdapterInterface::instanceAudioOutputCleanupURL = "/sdrangel/audio/output/cleanup";
QString WebAPIAdapterInterface::instanceLocationURL = "/sdrangel/location"; QString WebAPIAdapterInterface::instanceLocationURL = "/sdrangel/location";
QString WebAPIAdapterInterface::instanceDVSerialURL = "/sdrangel/dvserial"; QString WebAPIAdapterInterface::instanceDVSerialURL = "/sdrangel/dvserial";
QString WebAPIAdapterInterface::instancePresetsURL = "/sdrangel/presets"; QString WebAPIAdapterInterface::instancePresetsURL = "/sdrangel/presets";

View File

@ -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) * returns the Http status code (default 501: not implemented)
*/ */
virtual int instanceAudioInputPatch( 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) * returns the Http status code (default 501: not implemented)
*/ */
virtual int instanceAudioOutputPatch( virtual int instanceAudioOutputPatch(
@ -180,6 +180,58 @@ public:
return 501; 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 * Handler of /sdrangel/location (GET) swagger/sdrangel/code/html2/index.html#api-Default-instanceChannels
* returns the Http status code (default 501: not implemented) * returns the Http status code (default 501: not implemented)
@ -568,10 +620,10 @@ public:
static QString instanceChannelsURL; static QString instanceChannelsURL;
static QString instanceLoggingURL; static QString instanceLoggingURL;
static QString instanceAudioURL; static QString instanceAudioURL;
static QString instanceAudioInputSetURL; static QString instanceAudioInputParametersURL;
static QString instanceAudioOutputSetURL; static QString instanceAudioOutputParametersURL;
static QString instanceAudioInputUnsetURL; static QString instanceAudioInputCleanupURL;
static QString instanceAudioOutputUnsetURL; static QString instanceAudioOutputCleanupURL;
static QString instanceLocationURL; static QString instanceLocationURL;
static QString instanceDVSerialURL; static QString instanceDVSerialURL;
static QString instancePresetsURL; static QString instancePresetsURL;

View File

@ -84,10 +84,14 @@ void WebAPIRequestMapper::service(qtwebapp::HttpRequest& request, qtwebapp::Http
instanceLoggingService(request, response); instanceLoggingService(request, response);
} else if (path == WebAPIAdapterInterface::instanceAudioURL) { } else if (path == WebAPIAdapterInterface::instanceAudioURL) {
instanceAudioService(request, response); instanceAudioService(request, response);
} else if (path == WebAPIAdapterInterface::instanceAudioInputSetURL) { } else if (path == WebAPIAdapterInterface::instanceAudioInputParametersURL) {
instanceAudioInputSetService(request, response); instanceAudioInputParametersService(request, response);
} else if (path == WebAPIAdapterInterface::instanceAudioOutputSetURL) { } else if (path == WebAPIAdapterInterface::instanceAudioOutputParametersURL) {
instanceAudioOutputSetService(request, response); instanceAudioOutputParametersService(request, response);
} else if (path == WebAPIAdapterInterface::instanceAudioInputCleanupURL) {
instanceAudioInputCleanupService(request, response);
} else if (path == WebAPIAdapterInterface::instanceAudioOutputCleanupURL) {
instanceAudioOutputCleanupService(request, response);
} else if (path == WebAPIAdapterInterface::instanceLocationURL) { } else if (path == WebAPIAdapterInterface::instanceLocationURL) {
instanceLocationService(request, response); instanceLocationService(request, response);
} else if (path == WebAPIAdapterInterface::instanceDVSerialURL) { } else if (path == WebAPIAdapterInterface::instanceDVSerialURL) {
@ -328,14 +332,12 @@ 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 // TODO
SWGSDRangel::SWGErrorResponse errorResponse; SWGSDRangel::SWGErrorResponse errorResponse;
response.setHeader("Content-Type", "application/json"); response.setHeader("Content-Type", "application/json");
if (request.getMethod() == "PATCH")
{
QString jsonStr = request.getBody(); QString jsonStr = request.getBody();
QJsonObject jsonObject; QJsonObject jsonObject;
@ -346,6 +348,8 @@ void WebAPIRequestMapper::instanceAudioInputSetService(qtwebapp::HttpRequest& re
QStringList audioInputDeviceKeys; QStringList audioInputDeviceKeys;
if (validateAudioInputDevice(normalResponse, jsonObject, audioInputDeviceKeys)) if (validateAudioInputDevice(normalResponse, jsonObject, audioInputDeviceKeys))
{
if (request.getMethod() == "PATCH")
{ {
int status = m_adapter->instanceAudioInputPatch( int status = m_adapter->instanceAudioInputPatch(
normalResponse, normalResponse,
@ -359,6 +363,27 @@ void WebAPIRequestMapper::instanceAudioInputSetService(qtwebapp::HttpRequest& re
response.write(errorResponse.asJson().toUtf8()); 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(405,"Invalid HTTP method");
errorResponse.init();
*errorResponse.getMessage() = "Invalid HTTP method";
response.write(errorResponse.asJson().toUtf8());
}
}
else else
{ {
response.setStatus(400,"Invalid JSON request"); response.setStatus(400,"Invalid JSON request");
@ -375,22 +400,12 @@ void WebAPIRequestMapper::instanceAudioInputSetService(qtwebapp::HttpRequest& re
response.write(errorResponse.asJson().toUtf8()); 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::instanceAudioOutputSetService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response) void WebAPIRequestMapper::instanceAudioOutputParametersService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response)
{ {
SWGSDRangel::SWGErrorResponse errorResponse; SWGSDRangel::SWGErrorResponse errorResponse;
response.setHeader("Content-Type", "application/json"); response.setHeader("Content-Type", "application/json");
if (request.getMethod() == "PATCH")
{
QString jsonStr = request.getBody(); QString jsonStr = request.getBody();
QJsonObject jsonObject; QJsonObject jsonObject;
@ -401,6 +416,8 @@ void WebAPIRequestMapper::instanceAudioOutputSetService(qtwebapp::HttpRequest& r
QStringList audioOutputDeviceKeys; QStringList audioOutputDeviceKeys;
if (validateAudioOutputDevice(normalResponse, jsonObject, audioOutputDeviceKeys)) if (validateAudioOutputDevice(normalResponse, jsonObject, audioOutputDeviceKeys))
{
if (request.getMethod() == "PATCH")
{ {
int status = m_adapter->instanceAudioOutputPatch( int status = m_adapter->instanceAudioOutputPatch(
normalResponse, normalResponse,
@ -414,6 +431,27 @@ void WebAPIRequestMapper::instanceAudioOutputSetService(qtwebapp::HttpRequest& r
response.write(errorResponse.asJson().toUtf8()); 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(405,"Invalid HTTP method");
errorResponse.init();
*errorResponse.getMessage() = "Invalid HTTP method";
response.write(errorResponse.asJson().toUtf8());
}
}
else else
{ {
response.setStatus(400,"Invalid JSON request"); response.setStatus(400,"Invalid JSON request");
@ -430,6 +468,52 @@ void WebAPIRequestMapper::instanceAudioOutputSetService(qtwebapp::HttpRequest& r
response.write(errorResponse.asJson().toUtf8()); 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());
}
}
else else
{ {
response.setStatus(405,"Invalid HTTP method"); response.setStatus(405,"Invalid HTTP method");

View File

@ -52,8 +52,10 @@ private:
void instanceChannelsService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response); void instanceChannelsService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
void instanceLoggingService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response); void instanceLoggingService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
void instanceAudioService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response); void instanceAudioService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
void instanceAudioInputSetService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response); void instanceAudioInputParametersService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
void instanceAudioOutputSetService(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 instanceLocationService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
void instanceDVSerialService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response); void instanceDVSerialService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
void instancePresetsService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response); void instancePresetsService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);

View File

@ -394,6 +394,88 @@ int WebAPIAdapterGUI::instanceAudioOutputPatch(
return 200; 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( int WebAPIAdapterGUI::instanceLocationGet(
SWGSDRangel::SWGLocationInformation& response, SWGSDRangel::SWGLocationInformation& response,
SWGSDRangel::SWGErrorResponse& error __attribute__((unused))) SWGSDRangel::SWGErrorResponse& error __attribute__((unused)))

View File

@ -73,6 +73,22 @@ public:
const QStringList& audioOutputKeys, const QStringList& audioOutputKeys,
SWGSDRangel::SWGErrorResponse& error); 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( virtual int instanceLocationGet(
SWGSDRangel::SWGLocationInformation& response, SWGSDRangel::SWGLocationInformation& response,
SWGSDRangel::SWGErrorResponse& error); SWGSDRangel::SWGErrorResponse& error);

View File

@ -395,6 +395,88 @@ int WebAPIAdapterSrv::instanceAudioOutputPatch(
return 200; 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( int WebAPIAdapterSrv::instanceLocationGet(
SWGSDRangel::SWGLocationInformation& response, SWGSDRangel::SWGLocationInformation& response,
SWGSDRangel::SWGErrorResponse& error __attribute__((unused))) SWGSDRangel::SWGErrorResponse& error __attribute__((unused)))

View File

@ -73,6 +73,22 @@ public:
const QStringList& audioOutputKeys, const QStringList& audioOutputKeys,
SWGSDRangel::SWGErrorResponse& error); 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( virtual int instanceLocationGet(
SWGSDRangel::SWGLocationInformation& response, SWGSDRangel::SWGLocationInformation& response,
SWGSDRangel::SWGErrorResponse& error); SWGSDRangel::SWGErrorResponse& error);

View File

@ -182,11 +182,12 @@ paths:
$ref: "#/responses/Response_500" $ref: "#/responses/Response_500"
"501": "501":
$ref: "#/responses/Response_501" $ref: "#/responses/Response_501"
/sdrangel/audio/input/set:
/sdrangel/audio/input/parameters:
x-swagger-router-controller: instance x-swagger-router-controller: instance
patch: patch:
description: Set audio input device paramaters description: Set audio input device paramaters
operationId: instanceAudioInputSetPatch operationId: instanceAudioInputPatch
tags: tags:
- Instance - Instance
consumes: consumes:
@ -211,12 +212,57 @@ paths:
$ref: "#/responses/Response_500" $ref: "#/responses/Response_500"
"501": "501":
$ref: "#/responses/Response_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 x-swagger-router-controller: instance
patch: patch:
description: Set audio output device parameters description: Set audio output device parameters
operationId: instanceAudioOutputSetPatch operationId: instanceAudioOutputPatch
tags: tags:
- Instance - Instance
consumes: consumes:
@ -241,6 +287,50 @@ paths:
$ref: "#/responses/Response_500" $ref: "#/responses/Response_500"
"501": "501":
$ref: "#/responses/Response_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: /sdrangel/location:
x-swagger-router-controller: instance x-swagger-router-controller: instance

File diff suppressed because it is too large Load Diff

View File

@ -81,9 +81,9 @@ SWGInstanceApi::instanceAudioGetCallback(SWGHttpRequestWorker * worker) {
} }
void void
SWGInstanceApi::instanceAudioInputSetPatch(SWGAudioInputDevice& body) { SWGInstanceApi::instanceAudioInputCleanupPatch() {
QString fullPath; 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");
@ -92,6 +92,58 @@ SWGInstanceApi::instanceAudioInputSetPatch(SWGAudioInputDevice& body) {
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(); QString output = body.asJson();
input.request_body.append(output); input.request_body.append(output);
@ -104,13 +156,13 @@ SWGInstanceApi::instanceAudioInputSetPatch(SWGAudioInputDevice& body) {
connect(worker, connect(worker,
&SWGHttpRequestWorker::on_execution_finished, &SWGHttpRequestWorker::on_execution_finished,
this, this,
&SWGInstanceApi::instanceAudioInputSetPatchCallback); &SWGInstanceApi::instanceAudioInputDeleteCallback);
worker->execute(&input); worker->execute(&input);
} }
void void
SWGInstanceApi::instanceAudioInputSetPatchCallback(SWGHttpRequestWorker * worker) { SWGInstanceApi::instanceAudioInputDeleteCallback(SWGHttpRequestWorker * worker) {
QString msg; QString msg;
QString error_str = worker->error_str; QString error_str = worker->error_str;
QNetworkReply::NetworkError error_type = worker->error_type; QNetworkReply::NetworkError error_type = worker->error_type;
@ -128,17 +180,17 @@ SWGInstanceApi::instanceAudioInputSetPatchCallback(SWGHttpRequestWorker * worker
worker->deleteLater(); worker->deleteLater();
if (worker->error_type == QNetworkReply::NoError) { if (worker->error_type == QNetworkReply::NoError) {
emit instanceAudioInputSetPatchSignal(output); emit instanceAudioInputDeleteSignal(output);
} else { } else {
emit instanceAudioInputSetPatchSignalE(output, error_type, error_str); emit instanceAudioInputDeleteSignalE(output, error_type, error_str);
emit instanceAudioInputSetPatchSignalEFull(worker, error_type, error_str); emit instanceAudioInputDeleteSignalEFull(worker, error_type, error_str);
} }
} }
void void
SWGInstanceApi::instanceAudioOutputSetPatch(SWGAudioOutputDevice& body) { SWGInstanceApi::instanceAudioInputPatch(SWGAudioInputDevice& body) {
QString fullPath; 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, connect(worker,
&SWGHttpRequestWorker::on_execution_finished, &SWGHttpRequestWorker::on_execution_finished,
this, this,
&SWGInstanceApi::instanceAudioOutputSetPatchCallback); &SWGInstanceApi::instanceAudioInputPatchCallback);
worker->execute(&input); worker->execute(&input);
} }
void 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 msg;
QString error_str = worker->error_str; QString error_str = worker->error_str;
QNetworkReply::NetworkError error_type = worker->error_type; QNetworkReply::NetworkError error_type = worker->error_type;
@ -183,10 +342,65 @@ SWGInstanceApi::instanceAudioOutputSetPatchCallback(SWGHttpRequestWorker * worke
worker->deleteLater(); worker->deleteLater();
if (worker->error_type == QNetworkReply::NoError) { if (worker->error_type == QNetworkReply::NoError) {
emit instanceAudioOutputSetPatchSignal(output); emit instanceAudioOutputDeleteSignal(output);
} else { } else {
emit instanceAudioOutputSetPatchSignalE(output, error_type, error_str); emit instanceAudioOutputDeleteSignalE(output, error_type, error_str);
emit instanceAudioOutputSetPatchSignalEFull(worker, 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);
} }
} }

View File

@ -31,6 +31,7 @@
#include "SWGPresetImport.h" #include "SWGPresetImport.h"
#include "SWGPresetTransfer.h" #include "SWGPresetTransfer.h"
#include "SWGPresets.h" #include "SWGPresets.h"
#include "SWGSuccessResponse.h"
#include <QObject> #include <QObject>
@ -49,8 +50,12 @@ public:
QMap<QString, QString> defaultHeaders; QMap<QString, QString> defaultHeaders;
void instanceAudioGet(); void instanceAudioGet();
void instanceAudioInputSetPatch(SWGAudioInputDevice& body); void instanceAudioInputCleanupPatch();
void instanceAudioOutputSetPatch(SWGAudioOutputDevice& body); void instanceAudioInputDelete(SWGAudioInputDevice& body);
void instanceAudioInputPatch(SWGAudioInputDevice& body);
void instanceAudioOutputCleanupPatch();
void instanceAudioOutputDelete(SWGAudioOutputDevice& body);
void instanceAudioOutputPatch(SWGAudioOutputDevice& body);
void instanceChannels(qint32 tx); void instanceChannels(qint32 tx);
void instanceDVSerialPatch(qint32 dvserial); void instanceDVSerialPatch(qint32 dvserial);
void instanceDelete(); void instanceDelete();
@ -71,8 +76,12 @@ public:
private: private:
void instanceAudioGetCallback (SWGHttpRequestWorker * worker); void instanceAudioGetCallback (SWGHttpRequestWorker * worker);
void instanceAudioInputSetPatchCallback (SWGHttpRequestWorker * worker); void instanceAudioInputCleanupPatchCallback (SWGHttpRequestWorker * worker);
void instanceAudioOutputSetPatchCallback (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 instanceChannelsCallback (SWGHttpRequestWorker * worker);
void instanceDVSerialPatchCallback (SWGHttpRequestWorker * worker); void instanceDVSerialPatchCallback (SWGHttpRequestWorker * worker);
void instanceDeleteCallback (SWGHttpRequestWorker * worker); void instanceDeleteCallback (SWGHttpRequestWorker * worker);
@ -93,8 +102,12 @@ private:
signals: signals:
void instanceAudioGetSignal(SWGAudioDevices* summary); void instanceAudioGetSignal(SWGAudioDevices* summary);
void instanceAudioInputSetPatchSignal(SWGAudioInputDevice* summary); void instanceAudioInputCleanupPatchSignal(SWGSuccessResponse* summary);
void instanceAudioOutputSetPatchSignal(SWGAudioOutputDevice* 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 instanceChannelsSignal(SWGInstanceChannelsResponse* summary);
void instanceDVSerialPatchSignal(SWGDVSeralDevices* summary); void instanceDVSerialPatchSignal(SWGDVSeralDevices* summary);
void instanceDeleteSignal(SWGInstanceSummaryResponse* summary); void instanceDeleteSignal(SWGInstanceSummaryResponse* summary);
@ -114,8 +127,12 @@ signals:
void instanceSummarySignal(SWGInstanceSummaryResponse* summary); void instanceSummarySignal(SWGInstanceSummaryResponse* summary);
void instanceAudioGetSignalE(SWGAudioDevices* summary, QNetworkReply::NetworkError error_type, QString& error_str); void instanceAudioGetSignalE(SWGAudioDevices* summary, QNetworkReply::NetworkError error_type, QString& error_str);
void instanceAudioInputSetPatchSignalE(SWGAudioInputDevice* summary, QNetworkReply::NetworkError error_type, QString& error_str); void instanceAudioInputCleanupPatchSignalE(SWGSuccessResponse* summary, QNetworkReply::NetworkError error_type, QString& error_str);
void instanceAudioOutputSetPatchSignalE(SWGAudioOutputDevice* 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 instanceChannelsSignalE(SWGInstanceChannelsResponse* summary, QNetworkReply::NetworkError error_type, QString& error_str);
void instanceDVSerialPatchSignalE(SWGDVSeralDevices* 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); 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 instanceSummarySignalE(SWGInstanceSummaryResponse* summary, QNetworkReply::NetworkError error_type, QString& error_str);
void instanceAudioGetSignalEFull(SWGHttpRequestWorker* worker, 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 instanceAudioInputCleanupPatchSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
void instanceAudioOutputSetPatchSignalEFull(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 instanceChannelsSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
void instanceDVSerialPatchSignalEFull(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); void instanceDeleteSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);