MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / setOutputDevice

Method setOutputDevice

app/src/API/Handlers/AudioHandler.cpp:159–185  ·  view source on GitHub ↗

* @brief Set output device */

Source from the content-addressed store, hash-verified

157 * @brief Set output device
158 */
159API::CommandResponse API::Handlers::AudioHandler::setOutputDevice(const QString& id,
160 const QJsonObject& params)
161{
162 if (!params.contains(QStringLiteral("deviceIndex"))) {
163 return CommandResponse::makeError(
164 id, ErrorCode::MissingParam, QStringLiteral("Missing required parameter: deviceIndex"));
165 }
166
167 const int device_index = params.value(QStringLiteral("deviceIndex")).toInt();
168
169 const auto& devices = IO::ConnectionManager::instance().audio()->outputDeviceList();
170 if (device_index < 0 || device_index >= devices.count()) {
171 return CommandResponse::makeError(
172 id,
173 ErrorCode::InvalidParam,
174 QString(QStringLiteral("Invalid deviceIndex: %1. Valid range: 0-%2"))
175 .arg(device_index)
176 .arg(devices.count() - 1));
177 }
178
179 IO::ConnectionManager::instance().audio()->setSelectedOutputDevice(device_index);
180
181 QJsonObject result;
182 result[QStringLiteral("deviceIndex")] = device_index;
183 result[QStringLiteral("deviceName")] = devices.at(device_index);
184 return CommandResponse::makeSuccess(id, result);
185}
186
187/**
188 * @brief Set sample rate

Callers

nothing calls this directly

Calls 6

outputDeviceListMethod · 0.80
audioMethod · 0.80
containsMethod · 0.45
valueMethod · 0.45
countMethod · 0.45

Tested by

no test coverage detected