protocol/ArgParser: add overload with max_value parameter
This commit is contained in:
@@ -309,14 +309,9 @@ CommandResult
|
||||
handle_setvol(Client &client, Request args)
|
||||
{
|
||||
unsigned level;
|
||||
if (!ParseCommandArg(client, level, args.front()))
|
||||
if (!ParseCommandArg(client, level, args.front(), 100))
|
||||
return CommandResult::ERROR;
|
||||
|
||||
if (level > 100) {
|
||||
command_error(client, ACK_ERROR_ARG, "Invalid volume value");
|
||||
return CommandResult::ERROR;
|
||||
}
|
||||
|
||||
if (!volume_level_change(client.partition.outputs, level)) {
|
||||
command_error(client, ACK_ERROR_SYSTEM,
|
||||
"problems setting volume");
|
||||
@@ -330,14 +325,9 @@ CommandResult
|
||||
handle_volume(Client &client, Request args)
|
||||
{
|
||||
int relative;
|
||||
if (!ParseCommandArg(client, relative, args.front()))
|
||||
if (!ParseCommandArg(client, relative, args.front(), -100, 100))
|
||||
return CommandResult::ERROR;
|
||||
|
||||
if (relative < -100 || relative > 100) {
|
||||
command_error(client, ACK_ERROR_ARG, "Invalid volume value");
|
||||
return CommandResult::ERROR;
|
||||
}
|
||||
|
||||
const int old_volume = volume_level_get(client.partition.outputs);
|
||||
if (old_volume < 0) {
|
||||
command_error(client, ACK_ERROR_SYSTEM, "No mixer");
|
||||
|
@@ -314,15 +314,9 @@ handle_prio(Client &client, Request args)
|
||||
{
|
||||
const char *const priority_string = args.shift();
|
||||
unsigned priority;
|
||||
if (!ParseCommandArg(client, priority, priority_string))
|
||||
if (!ParseCommandArg(client, priority, priority_string, 0xff))
|
||||
return CommandResult::ERROR;
|
||||
|
||||
if (priority > 0xff) {
|
||||
command_error(client, ACK_ERROR_ARG,
|
||||
"Priority out of range: %s", priority_string);
|
||||
return CommandResult::ERROR;
|
||||
}
|
||||
|
||||
for (const char *i : args) {
|
||||
RangeArg range;
|
||||
if (!ParseCommandArg(client, range, i))
|
||||
@@ -344,15 +338,9 @@ handle_prioid(Client &client, Request args)
|
||||
{
|
||||
const char *const priority_string = args.shift();
|
||||
unsigned priority;
|
||||
if (!ParseCommandArg(client, priority, priority_string))
|
||||
if (!ParseCommandArg(client, priority, priority_string, 0xff))
|
||||
return CommandResult::ERROR;
|
||||
|
||||
if (priority > 0xff) {
|
||||
command_error(client, ACK_ERROR_ARG,
|
||||
"Priority out of range: %s", priority_string);
|
||||
return CommandResult::ERROR;
|
||||
}
|
||||
|
||||
for (const char *i : args) {
|
||||
unsigned song_id;
|
||||
if (!ParseCommandArg(client, song_id, i))
|
||||
|
Reference in New Issue
Block a user