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

Method setSampleRate

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

* @brief Set sample rate */

Source from the content-addressed store, hash-verified

188 * @brief Set sample rate
189 */
190API::CommandResponse API::Handlers::AudioHandler::setSampleRate(const QString& id,
191 const QJsonObject& params)
192{
193 if (!params.contains(QStringLiteral("rateIndex"))) {
194 return CommandResponse::makeError(
195 id, ErrorCode::MissingParam, QStringLiteral("Missing required parameter: rateIndex"));
196 }
197
198 const int rate_index = params.value(QStringLiteral("rateIndex")).toInt();
199
200 const auto& rates = IO::ConnectionManager::instance().audio()->sampleRates();
201 if (rate_index < 0 || rate_index >= rates.count()) {
202 return CommandResponse::makeError(
203 id,
204 ErrorCode::InvalidParam,
205 QString(QStringLiteral("Invalid rateIndex: %1. Valid range: 0-%2"))
206 .arg(rate_index)
207 .arg(rates.count() - 1));
208 }
209
210 IO::ConnectionManager::instance().audio()->setSelectedSampleRate(rate_index);
211
212 QJsonObject result;
213 result[QStringLiteral("rateIndex")] = rate_index;
214 result[QStringLiteral("rateName")] = rates.at(rate_index);
215 return CommandResponse::makeSuccess(id, result);
216}
217
218/**
219 * @brief Set input sample format

Callers

nothing calls this directly

Calls 6

sampleRatesMethod · 0.80
audioMethod · 0.80
setSelectedSampleRateMethod · 0.80
containsMethod · 0.45
valueMethod · 0.45
countMethod · 0.45

Tested by

no test coverage detected