command: add command "listpartitions"

The first step to multi-player support.  Not much, just a dummy
command.
This commit is contained in:
Max Kellermann 2017-02-17 23:07:31 +01:00
parent 47dffe66aa
commit 7dc3e73782
5 changed files with 94 additions and 0 deletions

View File

@ -91,6 +91,7 @@ libmpd_a_SOURCES = \
src/command/OutputCommands.cxx src/command/OutputCommands.hxx \
src/command/MessageCommands.cxx src/command/MessageCommands.hxx \
src/command/ClientCommands.cxx src/command/ClientCommands.hxx \
src/command/PartitionCommands.cxx src/command/PartitionCommands.hxx \
src/command/OtherCommands.cxx src/command/OtherCommands.hxx \
src/command/CommandListBuilder.cxx src/command/CommandListBuilder.hxx \
src/Idle.cxx src/Idle.hxx \

View File

@ -2350,6 +2350,35 @@ OK
</variablelist>
</section>
<section id="partition_commands">
<title>Partition commands</title>
<para>
These commands allow a client to inspect and manage
"partitions". A partition is one frontend of a multi-player
MPD process: it has separate queue, player and outputs. A
client is assigned to one partition at a time.
</para>
<variablelist>
<varlistentry id="command_listpartitions">
<term>
<cmdsynopsis>
<command>listpartitions</command>
</cmdsynopsis>
</term>
<listitem>
<para>
Print a list of partitions. Each partition starts with
a <varname>partition</varname> keyword and the
partition's name, followed by information about the
partition.
</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section id="output_commands">
<title>Audio output devices</title>

View File

@ -32,6 +32,7 @@
#include "MessageCommands.hxx"
#include "NeighborCommands.hxx"
#include "ClientCommands.hxx"
#include "PartitionCommands.hxx"
#include "OtherCommands.hxx"
#include "Permission.hxx"
#include "tag/Type.h"
@ -119,6 +120,7 @@ static constexpr struct command commands[] = {
#ifdef ENABLE_NEIGHBOR_PLUGINS
{ "listneighbors", PERMISSION_READ, 0, 0, handle_listneighbors },
#endif
{ "listpartitions", PERMISSION_READ, 0, 0, handle_listpartitions },
{ "listplaylist", PERMISSION_READ, 1, 1, handle_listplaylist },
{ "listplaylistinfo", PERMISSION_READ, 1, 1, handle_listplaylistinfo },
{ "listplaylists", PERMISSION_READ, 0, 0, handle_listplaylists },

View File

@ -0,0 +1,30 @@
/*
* Copyright 2003-2017 The Music Player Daemon Project
* http://www.musicpd.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#include "config.h"
#include "PartitionCommands.hxx"
#include "Request.hxx"
#include "client/Response.hxx"
CommandResult
handle_listpartitions(Client &, Request, Response &r)
{
r.Write("partition: default\n");
return CommandResult::OK;
}

View File

@ -0,0 +1,32 @@
/*
* Copyright 2003-2017 The Music Player Daemon Project
* http://www.musicpd.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef MPD_PARTITION_COMMANDS_HXX
#define MPD_PARTITION_COMMANDS_HXX
#include "CommandResult.hxx"
class Client;
class Request;
class Response;
CommandResult
handle_listpartitions(Client &client, Request request, Response &response);
#endif