diff options
author | Max Kellermann <max@musicpd.org> | 2016-12-14 12:14:57 +0100 |
---|---|---|
committer | Max Kellermann <max@musicpd.org> | 2016-12-14 20:29:15 +0100 |
commit | ccb45b6f6e6f7d5126dab9cabd651c22136a35ba (patch) | |
tree | 79dae5db62b8a9bb199b9f7b9c842e59d33bc016 /src/output/Client.hxx | |
parent | d2e47e014a2f15413b4b3c414ec92c6555cb77d8 (diff) |
output/Client: new interface to replace direct access to class PlayerControl
Diffstat (limited to 'src/output/Client.hxx')
-rw-r--r-- | src/output/Client.hxx | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/output/Client.hxx b/src/output/Client.hxx new file mode 100644 index 000000000..facace4be --- /dev/null +++ b/src/output/Client.hxx @@ -0,0 +1,47 @@ +/* + * Copyright 2003-2016 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_OUTPUT_CLIENT_HXX +#define MPD_OUTPUT_CLIENT_HXX + +#include "check.h" + +/** + * An interface between the #AudioOutput and the #Player. + */ +class AudioOutputClient { +public: + /** + * Notify the client that we have consumed a few chunks. This + * is called from within the output thread. The client may + * perform actions to refill the #MusicPipe. + */ + virtual void ChunksConsumed() = 0; + + /** + * The #AudioOutput has modified the "enabled" flag, and the + * client shall make the #AudioOutput apply this new setting. + * This is called from any thread, one which can't send an + * AudioOutput::Command to the output thread; only the client + * can do that safely. + */ + virtual void ApplyEnabled() = 0; +}; + +#endif |