playlist: moved stopOnError and errorCount into struct playlist

Moved the 2 remaining global variables into the playlist struct.
This commit is contained in:
Max Kellermann 2009-01-24 13:20:07 +01:00
parent 82df4cb2b0
commit ae2d13ac3e
2 changed files with 23 additions and 11 deletions

View File

@ -75,8 +75,6 @@ static GRand *g_rand;
/** the global playlist object */
static Playlist playlist;
unsigned playlist_max_length;
static int playlist_stopOnError;
static unsigned playlist_errorCount;
bool playlist_saveAbsolutePaths = DEFAULT_PLAYLIST_SAVE_ABSOLUTE_PATHS;
@ -743,8 +741,8 @@ enum playlist_result playPlaylist(int song)
i = playlist.current;
}
playlist_stopOnError = false;
playlist_errorCount = 0;
playlist.stop_on_error = false;
playlist.error_count = 0;
playPlaylistOrderNumber(i);
return PLAYLIST_RESULT_SUCCESS;
@ -808,7 +806,7 @@ void nextSongInPlaylist(void)
syncPlaylistWithQueue();
playlist_stopOnError = 0;
playlist.stop_on_error = false;
/* determine the next song from the queue's order list */
@ -849,13 +847,13 @@ static void playPlaylistIfPlayerStopped(void)
error = getPlayerError();
if (error == PLAYER_ERROR_NOERROR)
playlist_errorCount = 0;
playlist.error_count = 0;
else
playlist_errorCount++;
++playlist.error_count;
if ((playlist_stopOnError && error != PLAYER_ERROR_NOERROR) ||
if ((playlist.stop_on_error && error != PLAYER_ERROR_NOERROR) ||
error == PLAYER_ERROR_AUDIO || error == PLAYER_ERROR_SYSTEM ||
playlist_errorCount >= queue_length(&playlist.queue))
playlist.error_count >= queue_length(&playlist.queue))
/* too many errors, or critical error: stop
playback */
stopPlaylist();
@ -1157,8 +1155,8 @@ enum playlist_result seekSongInPlaylist(unsigned song, float seek_time)
i = song;
clearPlayerError();
playlist_stopOnError = 1;
playlist_errorCount = 0;
playlist.stop_on_error = true;
playlist.error_count = 0;
if (playlist.playing) {
if (playlist.queued >= 0)

View File

@ -55,6 +55,20 @@ typedef struct _Playlist {
*/
bool playing;
/**
* If true, then any error is fatal; if false, MPD will
* attempt to play the next song on non-fatal errors. During
* seeking, this flag is set.
*/
bool stop_on_error;
/**
* Number of errors since playback was started. If this
* number exceeds the length of the playlist, MPD gives up,
* because all songs have been tried.
*/
unsigned error_count;
/**
* The "current song pointer". This is the song which is
* played when we get the "play" command. It is also the song