From 15c61f6eb06b43097678682f7022d55f4aed9ce0 Mon Sep 17 00:00:00 2001
From: Warren Dukes <warren.dukes@gmail.com>
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(-)

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