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 +
+ Partition commands + + + 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. + + + + + + + listpartitions + + + + + Print a list of partitions. Each partition starts with + a partition keyword and the + partition's name, followed by information about the + partition. + + + + +
+
Audio output devices 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