MPD  0.20.6
Thread.hxx
Go to the documentation of this file.
1 /*
2  * Copyright 2003-2017 The Music Player Daemon Project
3  * http://www.musicpd.org
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  */
19 
20 /* \file
21  *
22  * The player thread controls the playback. It acts as a bridge
23  * between the decoder thread and the output thread(s): it receives
24  * #MusicChunk objects from the decoder, optionally mixes them
25  * (cross-fading), applies software volume, and sends them to the
26  * audio outputs via audio_output_all_play().
27  *
28  * It is controlled by the main thread (the playlist code), see
29  * Control.hxx. The playlist enqueues new songs into the player
30  * thread and sends it commands.
31  *
32  * The player thread itself does not do any I/O. It synchronizes with
33  * other threads via #GMutex and #GCond objects, and passes
34  * #MusicChunk instances around in #MusicPipe objects.
35  */
36 
37 #ifndef MPD_PLAYER_THREAD_HXX
38 #define MPD_PLAYER_THREAD_HXX
39 
40 struct PlayerControl;
41 
42 void
44 
45 #endif
void StartPlayerThread(PlayerControl &pc)