5#include "AudioTools/CoreAudio/AudioBasic/Str.h"
6#include "AudioTools/CoreAudio/AudioPlayer.h"
7#include "AudioTools/Disk/AudioSource.h"
8#include "AudioPlayerProtocol.h"
10#define KA_VERSION "Release: 2.4, Revision: R0"
33 int idx = par.toInt();
46 int volume = par.toInt();
47 player.setVolume(static_cast<float>(volume) / 254.0f);
53 int volume = player.
volume() * 254.0f;
58 player.
setVolume(
static_cast<float>(volume) / 254.0f);
63 int volume = player.
volume() * 254.0f;
68 player.
setVolume(
static_cast<float>(volume) / 254.0f);
104 player.setActive(!(par.toInt() == 1));
110 result.print(
"vol: ");
111 result.println(self->volume);
112 result.print(
"num: ");
113 result.println(self->
index());
114 result.print(
"stn: ");
115 result.println(self->stationName());
116 result.print(
"tit: ");
117 result.println(self->
title());
118 result.print(
"sts: ");
124 result.print(
"version: ");
125 result.println(KA_VERSION);
132 player.setIndex(par.toInt());
134 result.println(self->stationName());
147 volume = player.
volume() * 254.0f;
157 if (p_player ==
nullptr) {
158 LOGE(
"player not set");
167 if (start < 0) start = 0;
168 int endPos = line.
length();
170 while (start >= 0 && start < endPos) {
171 int eqPos = line.
indexOf(
'=', start);
172 int toPos = getEndPos(line, start + 1);
180 LOGD(
"start=%d, eqPos=%d, toPos=%d", start, eqPos, toPos);
188 toPos = getEndPos(line, start + 1);
195 LOGI(
"command: %s (%s)", name.
c_str(), arg.
c_str());
196 assert(p_player !=
nullptr);
199 if (name.
isEmpty())
return false;
201 for (
Action& act : actions) {
202 if (name.
equals(act.cmd)) {
203 return act.callback(*p_player, name, arg, result,
this);
205 LOGD(
"-> %s vs %s: failed", name.
c_str(), act.cmd);
209 LOGE(
"Invalid command:", name.
c_str());
226 actions.push_back(act);
231 Str title_str =
"n/a";
239 int getEndPos(
StrView& line,
int start) {
240 int endPos = line.
indexOf(
'&', start);
247 const char* stationName() {
248 if (p_player !=
nullptr) {