From 5e51fa020dcf634d2c5442ed6c5de108420c7574 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 26 Aug 2008 08:44:38 +0200 Subject: renamed player.c to player_control.c Give player.c a better name, meaning that the code is used to control the player thread. --- src/Makefile.am | 5 +- src/command.c | 2 +- src/decoder_api.c | 2 +- src/decoder_thread.c | 2 +- src/main.c | 2 +- src/player.c | 259 --------------------------------------------------- src/player.h | 162 -------------------------------- src/playerData.c | 2 +- src/player_control.c | 242 ++++++++++++++++++++++++++++++++++++++++++++++- src/player_control.h | 162 ++++++++++++++++++++++++++++++++ src/player_thread.c | 2 +- src/playlist.c | 2 +- src/stats.c | 2 +- src/volume.c | 2 +- 14 files changed, 414 insertions(+), 434 deletions(-) delete mode 100644 src/player.c delete mode 100644 src/player.h create mode 100644 src/player_control.h (limited to 'src') diff --git a/src/Makefile.am b/src/Makefile.am index 612a039f4..f4fd080d7 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -68,8 +68,8 @@ mpd_headers = \ path.h \ pcm_utils.h \ permission.h \ - player.h \ player_thread.h \ + player_control.h \ playerData.h \ playlist.h \ replayGain.h \ @@ -130,9 +130,8 @@ mpd_SOURCES = \ path.c \ pcm_utils.c \ permission.c \ - player.c \ - player_control.c \ player_thread.c \ + player_control.c \ playerData.c \ playlist.c \ replayGain.c \ diff --git a/src/command.c b/src/command.c index d77b16b42..e95299ab3 100644 --- a/src/command.c +++ b/src/command.c @@ -17,7 +17,7 @@ */ #include "command.h" -#include "player.h" +#include "player_control.h" #include "playlist.h" #include "ls.h" #include "directory.h" diff --git a/src/decoder_api.c b/src/decoder_api.c index 016c27400..bf36886ba 100644 --- a/src/decoder_api.c +++ b/src/decoder_api.c @@ -20,7 +20,7 @@ #include "decoder_internal.h" #include "decoder_list.h" #include "decoder_control.h" -#include "player.h" +#include "player_control.h" #include "audio.h" #include "utils.h" diff --git a/src/decoder_thread.c b/src/decoder_thread.c index 98b0025ec..60381b1f6 100644 --- a/src/decoder_thread.c +++ b/src/decoder_thread.c @@ -20,7 +20,7 @@ #include "decoder_thread.h" #include "decoder_control.h" #include "decoder_internal.h" -#include "player.h" +#include "player_control.h" #include "path.h" #include "log.h" diff --git a/src/main.c b/src/main.c index ebd850abd..4e0079a85 100644 --- a/src/main.c +++ b/src/main.c @@ -26,7 +26,7 @@ #include "path.h" #include "playerData.h" #include "decoder_thread.h" -#include "player.h" +#include "player_control.h" #include "stats.h" #include "sig_handlers.h" #include "audio.h" diff --git a/src/player.c b/src/player.c deleted file mode 100644 index 8687e5409..000000000 --- a/src/player.c +++ /dev/null @@ -1,259 +0,0 @@ -/* the Music Player Daemon (MPD) - * Copyright (C) 2003-2007 by Warren Dukes (warren.dukes@gmail.com) - * This project's homepage is: 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include "player.h" -#include "player_thread.h" -#include "path.h" -#include "ack.h" -#include "os_compat.h" -#include "main_notify.h" - -static void set_current_song(Song *song) -{ - assert(song != NULL); - assert(song->url != NULL); - - pc.fileTime = song->tag ? song->tag->time : 0; - pc.next_song = song; -} - -static void player_command(enum player_command cmd) -{ - pc.command = cmd; - while (pc.command != PLAYER_COMMAND_NONE) { - notify_signal(&pc.notify); - wait_main_task(); - } -} - -void player_command_finished() -{ - assert(pc.command != PLAYER_COMMAND_NONE); - - pc.command = PLAYER_COMMAND_NONE; - wakeup_main_task(); -} - -void playerPlay(Song * song) -{ - assert(pc.queueLockState == PLAYER_QUEUE_UNLOCKED); - - if (pc.state != PLAYER_STATE_STOP) - player_command(PLAYER_COMMAND_STOP); - - pc.queueState = PLAYER_QUEUE_BLANK; - - set_current_song(song); - player_command(PLAYER_COMMAND_PLAY); -} - -void playerWait(void) -{ - player_command(PLAYER_COMMAND_CLOSE_AUDIO); - - assert(pc.queueLockState == PLAYER_QUEUE_UNLOCKED); - - player_command(PLAYER_COMMAND_CLOSE_AUDIO); - - pc.queueState = PLAYER_QUEUE_BLANK; -} - -void playerKill(void) -{ - player_command(PLAYER_COMMAND_EXIT); -} - -void playerPause(void) -{ - if (pc.state != PLAYER_STATE_STOP) - player_command(PLAYER_COMMAND_PAUSE); -} - -void playerSetPause(int pause_flag) -{ - switch (pc.state) { - case PLAYER_STATE_STOP: - break; - - case PLAYER_STATE_PLAY: - if (pause_flag) - playerPause(); - break; - case PLAYER_STATE_PAUSE: - if (!pause_flag) - playerPause(); - break; - } -} - -int getPlayerElapsedTime(void) -{ - return (int)(pc.elapsedTime + 0.5); -} - -unsigned long getPlayerBitRate(void) -{ - return pc.bitRate; -} - -int getPlayerTotalTime(void) -{ - return (int)(pc.totalTime + 0.5); -} - -enum player_state getPlayerState(void) -{ - return pc.state; -} - -void clearPlayerError(void) -{ - pc.error = 0; -} - -int getPlayerError(void) -{ - return pc.error; -} - -char *getPlayerErrorStr(void) -{ - /* static OK here, only one user in main task */ - static char error[MPD_PATH_MAX + 64]; /* still too much */ - static const size_t errorlen = sizeof(error); - char path_max_tmp[MPD_PATH_MAX]; - *error = '\0'; /* likely */ - - switch (pc.error) { - case PLAYER_ERROR_FILENOTFOUND: - snprintf(error, errorlen, - "file \"%s\" does not exist or is inaccessible", - get_song_url(path_max_tmp, pc.errored_song)); - break; - case PLAYER_ERROR_FILE: - snprintf(error, errorlen, "problems decoding \"%s\"", - get_song_url(path_max_tmp, pc.errored_song)); - break; - case PLAYER_ERROR_AUDIO: - strcpy(error, "problems opening audio device"); - break; - case PLAYER_ERROR_SYSTEM: - strcpy(error, "system error occured"); - break; - case PLAYER_ERROR_UNKTYPE: - snprintf(error, errorlen, "file type of \"%s\" is unknown", - get_song_url(path_max_tmp, pc.errored_song)); - } - return *error ? error : NULL; -} - -void queueSong(Song * song) -{ - assert(pc.queueState == PLAYER_QUEUE_BLANK); - - set_current_song(song); - pc.queueState = PLAYER_QUEUE_FULL; -} - -enum player_queue_state getPlayerQueueState(void) -{ - return pc.queueState; -} - -void setQueueState(enum player_queue_state queueState) -{ - pc.queueState = queueState; - notify_signal(&pc.notify); -} - -void playerQueueLock(void) -{ - assert(pc.queueLockState == PLAYER_QUEUE_UNLOCKED); - player_command(PLAYER_COMMAND_LOCK_QUEUE); - assert(pc.queueLockState == PLAYER_QUEUE_LOCKED); -} - -void playerQueueUnlock(void) -{ - if (pc.queueLockState == PLAYER_QUEUE_LOCKED) - player_command(PLAYER_COMMAND_UNLOCK_QUEUE); - - assert(pc.queueLockState == PLAYER_QUEUE_UNLOCKED); -} - -int playerSeek(Song * song, float seek_time) -{ - assert(song != NULL); - - if (pc.state == PLAYER_STATE_STOP) - return -1; - - if (pc.next_song != song) - set_current_song(song); - - if (pc.error == PLAYER_ERROR_NOERROR) { - pc.seekWhere = seek_time; - player_command(PLAYER_COMMAND_SEEK); - } - - return 0; -} - -float getPlayerCrossFade(void) -{ - return pc.crossFade; -} - -void setPlayerCrossFade(float crossFadeInSeconds) -{ - if (crossFadeInSeconds < 0) - crossFadeInSeconds = 0; - pc.crossFade = crossFadeInSeconds; -} - -void setPlayerSoftwareVolume(int volume) -{ - volume = (volume > 1000) ? 1000 : (volume < 0 ? 0 : volume); - pc.softwareVolume = volume; -} - -double getPlayerTotalPlayTime(void) -{ - return pc.totalPlayTime; -} - -unsigned int getPlayerSampleRate(void) -{ - return pc.sampleRate; -} - -int getPlayerBits(void) -{ - return pc.bits; -} - -int getPlayerChannels(void) -{ - return pc.channels; -} - -/* this actually creates a dupe of the current metadata */ -Song *playerCurrentDecodeSong(void) -{ - return NULL; -} diff --git a/src/player.h b/src/player.h deleted file mode 100644 index fcdbb000f..000000000 --- a/src/player.h +++ /dev/null @@ -1,162 +0,0 @@ -/* the Music Player Daemon (MPD) - * Copyright (C) 2003-2007 by Warren Dukes (warren.dukes@gmail.com) - * This project's homepage is: 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef PLAYER_H -#define PLAYER_H - -#include "notify.h" -#include "mpd_types.h" -#include "song.h" -#include "os_compat.h" - -enum player_state { - PLAYER_STATE_STOP = 0, - PLAYER_STATE_PAUSE, - PLAYER_STATE_PLAY -}; - -enum player_command { - PLAYER_COMMAND_NONE = 0, - PLAYER_COMMAND_EXIT, - PLAYER_COMMAND_STOP, - PLAYER_COMMAND_PLAY, - PLAYER_COMMAND_PAUSE, - PLAYER_COMMAND_SEEK, - PLAYER_COMMAND_CLOSE_AUDIO, - PLAYER_COMMAND_LOCK_QUEUE, - PLAYER_COMMAND_UNLOCK_QUEUE -}; - -#define PLAYER_ERROR_NOERROR 0 -#define PLAYER_ERROR_FILE 1 -#define PLAYER_ERROR_AUDIO 2 -#define PLAYER_ERROR_SYSTEM 3 -#define PLAYER_ERROR_UNKTYPE 4 -#define PLAYER_ERROR_FILENOTFOUND 5 - -/* 0->1->2->3->5 regular playback - * ->4->0 don't play queued song - */ -enum player_queue_state { - /** there is no queued song */ - PLAYER_QUEUE_BLANK = 0, - - /** there is a queued song */ - PLAYER_QUEUE_FULL = 1, - - /** the player thread has forwarded the queued song to the - decoder; it waits for PLAY or STOP */ - PLAYER_QUEUE_DECODE = 2, - - /** tells the player thread to start playing the queued song; - this is a response to DECODE */ - PLAYER_QUEUE_PLAY = 3, - - /** tells the player thread to stop before playing the queued - song; this is a response to DECODE */ - PLAYER_QUEUE_STOP = 4, - - /** the player thread has begun playing the queued song, and - thus its queue is empty */ - PLAYER_QUEUE_EMPTY = 5 -}; - -#define PLAYER_QUEUE_UNLOCKED 0 -#define PLAYER_QUEUE_LOCKED 1 - -struct player_control { - Notify notify; - volatile enum player_command command; - volatile enum player_state state; - volatile mpd_sint8 error; - volatile mpd_uint16 bitRate; - volatile mpd_sint8 bits; - volatile mpd_sint8 channels; - volatile mpd_uint32 sampleRate; - volatile float totalTime; - volatile float elapsedTime; - volatile float fileTime; - Song *volatile next_song; - Song *errored_song; - volatile enum player_queue_state queueState; - volatile mpd_sint8 queueLockState; - volatile double seekWhere; - volatile float crossFade; - volatile mpd_uint16 softwareVolume; - volatile double totalPlayTime; -}; - -extern struct player_control pc; - -void player_command_finished(void); - -void playerPlay(Song * song); - -void playerSetPause(int pause_flag); - -void playerPause(void); - -void playerKill(void); - -int getPlayerTotalTime(void); - -int getPlayerElapsedTime(void); - -unsigned long getPlayerBitRate(void); - -enum player_state getPlayerState(void); - -void clearPlayerError(void); - -char *getPlayerErrorStr(void); - -int getPlayerError(void); - -void playerWait(void); - -void queueSong(Song * song); - -enum player_queue_state getPlayerQueueState(void); - -void setQueueState(enum player_queue_state queueState); - -void playerQueueLock(void); - -void playerQueueUnlock(void); - -int playerSeek(Song * song, float seek_time); - -void setPlayerCrossFade(float crossFadeInSeconds); - -float getPlayerCrossFade(void); - -void setPlayerSoftwareVolume(int volume); - -double getPlayerTotalPlayTime(void); - -unsigned int getPlayerSampleRate(void); - -int getPlayerBits(void); - -int getPlayerChannels(void); - -Song *playerCurrentDecodeSong(void); - -void playerInit(void); - -#endif diff --git a/src/playerData.c b/src/playerData.c index 019c8a906..593a1dbd1 100644 --- a/src/playerData.c +++ b/src/playerData.c @@ -17,7 +17,7 @@ */ #include "playerData.h" -#include "player.h" +#include "player_control.h" #include "decoder_control.h" #include "outputBuffer.h" #include "conf.h" diff --git a/src/player_control.c b/src/player_control.c index 1f6aecd97..93dd407e8 100644 --- a/src/player_control.c +++ b/src/player_control.c @@ -16,6 +16,246 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "player.h" +#include "player_control.h" +#include "path.h" +#include "log.h" +#include "ack.h" +#include "os_compat.h" +#include "main_notify.h" struct player_control pc; + +static void set_current_song(Song *song) +{ + assert(song != NULL); + assert(song->url != NULL); + + pc.fileTime = song->tag ? song->tag->time : 0; + pc.next_song = song; +} + +static void player_command(enum player_command cmd) +{ + pc.command = cmd; + while (pc.command != PLAYER_COMMAND_NONE) { + notify_signal(&pc.notify); + wait_main_task(); + } +} + +void player_command_finished() +{ + assert(pc.command != PLAYER_COMMAND_NONE); + + pc.command = PLAYER_COMMAND_NONE; + wakeup_main_task(); +} + +void playerPlay(Song * song) +{ + assert(pc.queueLockState == PLAYER_QUEUE_UNLOCKED); + + if (pc.state != PLAYER_STATE_STOP) + player_command(PLAYER_COMMAND_STOP); + + pc.queueState = PLAYER_QUEUE_BLANK; + + set_current_song(song); + player_command(PLAYER_COMMAND_PLAY); +} + +void playerWait(void) +{ + player_command(PLAYER_COMMAND_CLOSE_AUDIO); + + assert(pc.queueLockState == PLAYER_QUEUE_UNLOCKED); + + player_command(PLAYER_COMMAND_CLOSE_AUDIO); + + pc.queueState = PLAYER_QUEUE_BLANK; +} + +void playerKill(void) +{ + player_command(PLAYER_COMMAND_EXIT); +} + +void playerPause(void) +{ + if (pc.state != PLAYER_STATE_STOP) + player_command(PLAYER_COMMAND_PAUSE); +} + +void playerSetPause(int pause_flag) +{ + switch (pc.state) { + case PLAYER_STATE_STOP: + break; + + case PLAYER_STATE_PLAY: + if (pause_flag) + playerPause(); + break; + case PLAYER_STATE_PAUSE: + if (!pause_flag) + playerPause(); + break; + } +} + +int getPlayerElapsedTime(void) +{ + return (int)(pc.elapsedTime + 0.5); +} + +unsigned long getPlayerBitRate(void) +{ + return pc.bitRate; +} + +int getPlayerTotalTime(void) +{ + return (int)(pc.totalTime + 0.5); +} + +enum player_state getPlayerState(void) +{ + return pc.state; +} + +void clearPlayerError(void) +{ + pc.error = 0; +} + +int getPlayerError(void) +{ + return pc.error; +} + +char *getPlayerErrorStr(void) +{ + /* static OK here, only one user in main task */ + static char error[MPD_PATH_MAX + 64]; /* still too much */ + static const size_t errorlen = sizeof(error); + char path_max_tmp[MPD_PATH_MAX]; + *error = '\0'; /* likely */ + + switch (pc.error) { + case PLAYER_ERROR_FILENOTFOUND: + snprintf(error, errorlen, + "file \"%s\" does not exist or is inaccessible", + get_song_url(path_max_tmp, pc.errored_song)); + break; + case PLAYER_ERROR_FILE: + snprintf(error, errorlen, "problems decoding \"%s\"", + get_song_url(path_max_tmp, pc.errored_song)); + break; + case PLAYER_ERROR_AUDIO: + strcpy(error, "problems opening audio device"); + break; + case PLAYER_ERROR_SYSTEM: + strcpy(error, "system error occured"); + break; + case PLAYER_ERROR_UNKTYPE: + snprintf(error, errorlen, "file type of \"%s\" is unknown", + get_song_url(path_max_tmp, pc.errored_song)); + } + return *error ? error : NULL; +} + +void queueSong(Song * song) +{ + assert(pc.queueState == PLAYER_QUEUE_BLANK); + + set_current_song(song); + pc.queueState = PLAYER_QUEUE_FULL; +} + +enum player_queue_state getPlayerQueueState(void) +{ + return pc.queueState; +} + +void setQueueState(enum player_queue_state queueState) +{ + pc.queueState = queueState; + notify_signal(&pc.notify); +} + +void playerQueueLock(void) +{ + assert(pc.queueLockState == PLAYER_QUEUE_UNLOCKED); + player_command(PLAYER_COMMAND_LOCK_QUEUE); + assert(pc.queueLockState == PLAYER_QUEUE_LOCKED); +} + +void playerQueueUnlock(void) +{ + if (pc.queueLockState == PLAYER_QUEUE_LOCKED) + player_command(PLAYER_COMMAND_UNLOCK_QUEUE); + + assert(pc.queueLockState == PLAYER_QUEUE_UNLOCKED); +} + +int playerSeek(Song * song, float seek_time) +{ + assert(song != NULL); + + if (pc.state == PLAYER_STATE_STOP) + return -1; + + if (pc.next_song != song) + set_current_song(song); + + if (pc.error == PLAYER_ERROR_NOERROR) { + pc.seekWhere = seek_time; + player_command(PLAYER_COMMAND_SEEK); + } + + return 0; +} + +float getPlayerCrossFade(void) +{ + return pc.crossFade; +} + +void setPlayerCrossFade(float crossFadeInSeconds) +{ + if (crossFadeInSeconds < 0) + crossFadeInSeconds = 0; + pc.crossFade = crossFadeInSeconds; +} + +void setPlayerSoftwareVolume(int volume) +{ + volume = (volume > 1000) ? 1000 : (volume < 0 ? 0 : volume); + pc.softwareVolume = volume; +} + +double getPlayerTotalPlayTime(void) +{ + return pc.totalPlayTime; +} + +unsigned int getPlayerSampleRate(void) +{ + return pc.sampleRate; +} + +int getPlayerBits(void) +{ + return pc.bits; +} + +int getPlayerChannels(void) +{ + return pc.channels; +} + +/* this actually creates a dupe of the current metadata */ +Song *playerCurrentDecodeSong(void) +{ + return NULL; +} diff --git a/src/player_control.h b/src/player_control.h new file mode 100644 index 000000000..fcdbb000f --- /dev/null +++ b/src/player_control.h @@ -0,0 +1,162 @@ +/* the Music Player Daemon (MPD) + * Copyright (C) 2003-2007 by Warren Dukes (warren.dukes@gmail.com) + * This project's homepage is: 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef PLAYER_H +#define PLAYER_H + +#include "notify.h" +#include "mpd_types.h" +#include "song.h" +#include "os_compat.h" + +enum player_state { + PLAYER_STATE_STOP = 0, + PLAYER_STATE_PAUSE, + PLAYER_STATE_PLAY +}; + +enum player_command { + PLAYER_COMMAND_NONE = 0, + PLAYER_COMMAND_EXIT, + PLAYER_COMMAND_STOP, + PLAYER_COMMAND_PLAY, + PLAYER_COMMAND_PAUSE, + PLAYER_COMMAND_SEEK, + PLAYER_COMMAND_CLOSE_AUDIO, + PLAYER_COMMAND_LOCK_QUEUE, + PLAYER_COMMAND_UNLOCK_QUEUE +}; + +#define PLAYER_ERROR_NOERROR 0 +#define PLAYER_ERROR_FILE 1 +#define PLAYER_ERROR_AUDIO 2 +#define PLAYER_ERROR_SYSTEM 3 +#define PLAYER_ERROR_UNKTYPE 4 +#define PLAYER_ERROR_FILENOTFOUND 5 + +/* 0->1->2->3->5 regular playback + * ->4->0 don't play queued song + */ +enum player_queue_state { + /** there is no queued song */ + PLAYER_QUEUE_BLANK = 0, + + /** there is a queued song */ + PLAYER_QUEUE_FULL = 1, + + /** the player thread has forwarded the queued song to the + decoder; it waits for PLAY or STOP */ + PLAYER_QUEUE_DECODE = 2, + + /** tells the player thread to start playing the queued song; + this is a response to DECODE */ + PLAYER_QUEUE_PLAY = 3, + + /** tells the player thread to stop before playing the queued + song; this is a response to DECODE */ + PLAYER_QUEUE_STOP = 4, + + /** the player thread has begun playing the queued song, and + thus its queue is empty */ + PLAYER_QUEUE_EMPTY = 5 +}; + +#define PLAYER_QUEUE_UNLOCKED 0 +#define PLAYER_QUEUE_LOCKED 1 + +struct player_control { + Notify notify; + volatile enum player_command command; + volatile enum player_state state; + volatile mpd_sint8 error; + volatile mpd_uint16 bitRate; + volatile mpd_sint8 bits; + volatile mpd_sint8 channels; + volatile mpd_uint32 sampleRate; + volatile float totalTime; + volatile float elapsedTime; + volatile float fileTime; + Song *volatile next_song; + Song *errored_song; + volatile enum player_queue_state queueState; + volatile mpd_sint8 queueLockState; + volatile double seekWhere; + volatile float crossFade; + volatile mpd_uint16 softwareVolume; + volatile double totalPlayTime; +}; + +extern struct player_control pc; + +void player_command_finished(void); + +void playerPlay(Song * song); + +void playerSetPause(int pause_flag); + +void playerPause(void); + +void playerKill(void); + +int getPlayerTotalTime(void); + +int getPlayerElapsedTime(void); + +unsigned long getPlayerBitRate(void); + +enum player_state getPlayerState(void); + +void clearPlayerError(void); + +char *getPlayerErrorStr(void); + +int getPlayerError(void); + +void playerWait(void); + +void queueSong(Song * song); + +enum player_queue_state getPlayerQueueState(void); + +void setQueueState(enum player_queue_state queueState); + +void playerQueueLock(void); + +void playerQueueUnlock(void); + +int playerSeek(Song * song, float seek_time); + +void setPlayerCrossFade(float crossFadeInSeconds); + +float getPlayerCrossFade(void); + +void setPlayerSoftwareVolume(int volume); + +double getPlayerTotalPlayTime(void); + +unsigned int getPlayerSampleRate(void); + +int getPlayerBits(void); + +int getPlayerChannels(void); + +Song *playerCurrentDecodeSong(void); + +void playerInit(void); + +#endif diff --git a/src/player_thread.c b/src/player_thread.c index bb4746132..110705443 100644 --- a/src/player_thread.c +++ b/src/player_thread.c @@ -17,7 +17,7 @@ */ #include "player_thread.h" -#include "player.h" +#include "player_control.h" #include "playerData.h" #include "decoder_control.h" #include "audio.h" diff --git a/src/playlist.c b/src/playlist.c index 4560b85a5..4cc4a7182 100644 --- a/src/playlist.c +++ b/src/playlist.c @@ -17,7 +17,7 @@ */ #include "playlist.h" -#include "player.h" +#include "player_control.h" #include "command.h" #include "ls.h" #include "tag.h" diff --git a/src/stats.c b/src/stats.c index 254595472..192187aca 100644 --- a/src/stats.c +++ b/src/stats.c @@ -20,7 +20,7 @@ #include "directory.h" #include "myfprintf.h" -#include "player.h" +#include "player_control.h" #include "tagTracker.h" #include "os_compat.h" diff --git a/src/volume.c b/src/volume.c index 903e4717a..830b066fe 100644 --- a/src/volume.c +++ b/src/volume.c @@ -20,7 +20,7 @@ #include "command.h" #include "conf.h" #include "log.h" -#include "player.h" +#include "player_control.h" #include "gcc.h" #include "utils.h" #include "ack.h" -- cgit v1.2.3