MPD 0.17~git
src/player_thread.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2003-2011 The Music Player Daemon Project
00003  * http://www.musicpd.org
00004  *
00005  * This program is free software; you can redistribute it and/or modify
00006  * it under the terms of the GNU General Public License as published by
00007  * the Free Software Foundation; either version 2 of the License, or
00008  * (at your option) any later version.
00009  *
00010  * This program is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013  * GNU General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU General Public License along
00016  * with this program; if not, write to the Free Software Foundation, Inc.,
00017  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
00018  */
00019 
00020 /* \file
00021  *
00022  * The player thread controls the playback.  It acts as a bridge
00023  * between the decoder thread and the output thread(s): it receives
00024  * #music_chunk objects from the decoder, optionally mixes them
00025  * (cross-fading), applies software volume, and sends them to the
00026  * audio outputs via audio_output_all_play().
00027  *
00028  * It is controlled by the main thread (the playlist code), see
00029  * player_control.h.  The playlist enqueues new songs into the player
00030  * thread and sends it commands.
00031  *
00032  * The player thread itself does not do any I/O.  It synchronizes with
00033  * other threads via #GMutex and #GCond objects, and passes
00034  * #music_chunk instances around in #music_pipe objects.
00035  */
00036 
00037 #ifndef MPD_PLAYER_THREAD_H
00038 #define MPD_PLAYER_THREAD_H
00039 
00040 struct player_control;
00041 
00042 void
00043 player_create(struct player_control *pc);
00044 
00045 #endif