Commit 871bf3b8 authored by Max Kellermann's avatar Max Kellermann

command: add command "getvol"

parent 08360e40
ver 0.23 (not yet released)
* protocol
- new command "getvol"
ver 0.22.1 (not yet released)
* output
......
......@@ -522,6 +522,16 @@ Playback options
Sets volume to ``VOL``, the range of
volume is 0-100.
:command:`getvol`
Read the volume. The result is a ``volume:`` line like in
:ref:`status <command_status>`. If there is no mixer, MPD will
emit an empty response. Example::
getvol
volume: 42
OK
:command:`single {STATE}` [#since_0_15]_
Sets single state to ``STATE``,
``STATE`` should be ``0``, ``1`` or ``oneshot`` [#since_0_20]_.
......
......@@ -113,6 +113,7 @@ static constexpr struct command commands[] = {
#ifdef ENABLE_CHROMAPRINT
{ "getfingerprint", PERMISSION_READ, 1, 1, handle_getfingerprint },
#endif
{ "getvol", PERMISSION_READ, 0, 0, handle_getvol },
{ "idle", PERMISSION_READ, 0, -1, handle_idle },
{ "kill", PERMISSION_ADMIN, -1, -1, handle_kill },
#ifdef ENABLE_DATABASE
......
......@@ -319,6 +319,18 @@ handle_rescan(Client &client, Request args, Response &r)
}
CommandResult
handle_getvol(Client &client, Request, Response &r)
{
auto &partition = client.GetPartition();
const auto volume = volume_level_get(partition.outputs);
if (volume >= 0)
r.Format("volume: %i\n", volume);
return CommandResult::OK;
}
CommandResult
handle_setvol(Client &client, Request args, Response &r)
{
unsigned level = args.ParseUnsigned(0, 100);
......
......@@ -48,6 +48,9 @@ CommandResult
handle_rescan(Client &client, Request request, Response &response);
CommandResult
handle_getvol(Client &client, Request request, Response &response);
CommandResult
handle_setvol(Client &client, Request request, Response &response);
CommandResult
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment