From 15c61f6eb06b43097678682f7022d55f4aed9ce0 Mon Sep 17 00:00:00 2001 From: Warren Dukes Date: Thu, 3 Jun 2004 02:56:26 +0000 Subject: don't stop on play command! git-svn-id: https://svn.musicpd.org/mpd/trunk@1313 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- src/command.c | 2 +- src/decode.c | 6 ++++-- src/inputPlugins/mp3_plugin.c | 5 +++-- src/playlist.c | 5 +++++ 4 files changed, 13 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/command.c b/src/command.c index 044c811ab..13325e851 100644 --- a/src/command.c +++ b/src/command.c @@ -155,7 +155,7 @@ int handlePlay(FILE * fp, unsigned int * permission, int argArrayLength, return -1; } } - return playPlaylist(fp,song,1); + return playPlaylist(fp,song,0); } int handleStop(FILE * fp, unsigned int * permission, int argArrayLength, diff --git a/src/decode.c b/src/decode.c index d8f2fa21f..bb043d6b2 100644 --- a/src/decode.c +++ b/src/decode.c @@ -256,7 +256,7 @@ int decodeSeek(PlayerControl * pc, DecoderControl * dc, OutputBuffer * cb, void decodeStart(PlayerControl * pc, OutputBuffer * cb, DecoderControl * dc) { int ret; InputStream inStream; - InputPlugin * plugin; + InputPlugin * plugin = NULL; char * path; if(isRemoteUrl(pc->utf8url)) { @@ -311,7 +311,9 @@ void decodeStart(PlayerControl * pc, OutputBuffer * cb, DecoderControl * dc) { ret = DECODE_ERROR_UNKTYPE; if(isRemoteUrl(pc->utf8url)) { - plugin = getInputPluginFromMimeType(inStream.mime); + if(inStream.mime) { + plugin = getInputPluginFromMimeType(inStream.mime); + } if(plugin == NULL) { plugin = getInputPluginFromSuffix( getSuffix(dc->utf8url)); diff --git a/src/inputPlugins/mp3_plugin.c b/src/inputPlugins/mp3_plugin.c index 3ba1d36a0..a501377dc 100644 --- a/src/inputPlugins/mp3_plugin.c +++ b/src/inputPlugins/mp3_plugin.c @@ -451,7 +451,6 @@ void mp3DecodeDataFinalize(mp3DecodeData * data) { mad_frame_finish(&data->frame); mad_stream_finish(&data->stream); - closeInputStream(data->inStream); if(data->frameOffset) free(data->frameOffset); if(data->times) free(data->times); } @@ -468,6 +467,7 @@ int getMp3TotalTime(char * file) { if(decodeFirstFrame(&data, NULL, NULL)<0) ret = -1; else ret = data.totalTime+0.5; mp3DecodeDataFinalize(&data); + closeInputStream(&inStream); return ret; } @@ -626,7 +626,7 @@ int mp3_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream) { MpdTag * tag; if(openMp3FromInputStream(inStream, &data, dc, &tag) < 0) { - closeInputStream(inStream); + closeInputStream(inStream); if(!dc->stop) { ERROR("Input does not appear to be a mp3 bit stream.\n"); return -1; @@ -662,6 +662,7 @@ int mp3_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream) { flushOutputBuffer(cb); mp3DecodeDataFinalize(&data); + closeInputStream(inStream); /*if(dc->seek) { dc->seekError = 1; diff --git a/src/playlist.c b/src/playlist.c index 75b812338..1dea4b7ce 100644 --- a/src/playlist.c +++ b/src/playlist.c @@ -825,16 +825,21 @@ void playPlaylistIfPlayerStopped() { if(error==PLAYER_ERROR_NOERROR) playlist_errorCount = 0; else playlist_errorCount++; + printf("HERE 1\n"); if(playlist_state==PLAYLIST_STATE_PLAY && ( (playlist_stopOnError && error!=PLAYER_ERROR_NOERROR) || error==PLAYER_ERROR_AUDIO || error==PLAYER_ERROR_SYSTEM || playlist_errorCount>=playlist.length)) { + printf("HERE 1-1\n"); + printf("playlist_stopOnError: %i\n", playlist_stopOnError); stopPlaylist(stderr); + printf("HERE 1-2\n"); } else if(playlist_noGoToNext) currentSongInPlaylist(stderr); else nextSongInPlaylist(stderr); + printf("HERE 2\n"); } } -- cgit v1.2.3