summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am1
-rw-r--r--doc/protocol.xml29
-rw-r--r--src/command/AllCommands.cxx2
-rw-r--r--src/command/PartitionCommands.cxx30
-rw-r--r--src/command/PartitionCommands.hxx32
5 files changed, 94 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index 097ee2052..5a1e7738d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -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 \
diff --git a/doc/protocol.xml b/doc/protocol.xml
index 0e1c1fb83..be156c758 100644
--- a/doc/protocol.xml
+++ b/doc/protocol.xml
@@ -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>
diff --git a/src/command/AllCommands.cxx b/src/command/AllCommands.cxx
index 45aed51ad..bcd0e368e 100644
--- a/src/command/AllCommands.cxx
+++ b/src/command/AllCommands.cxx
@@ -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 },
diff --git a/src/command/PartitionCommands.cxx b/src/command/PartitionCommands.cxx
new file mode 100644
index 000000000..78697e579
--- /dev/null
+++ b/src/command/PartitionCommands.cxx
@@ -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;
+}
diff --git a/src/command/PartitionCommands.hxx b/src/command/PartitionCommands.hxx
new file mode 100644
index 000000000..e64bcf059
--- /dev/null
+++ b/src/command/PartitionCommands.hxx
@@ -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