changeset 1314:b93270e2b7e4

Continuous playing in DAE mode works again
author Calin Crisan ccrisan@gmail.com
date Sat, 21 Jul 2007 04:15:34 +0300
parents 28df54b3eaea
children 25f5cd05a52f
files src/cdaudio-ng/cdaudio-ng.c
diffstat 1 files changed, 7 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/src/cdaudio-ng/cdaudio-ng.c	Sat Jul 21 03:48:57 2007 +0300
+++ b/src/cdaudio-ng/cdaudio-ng.c	Sat Jul 21 04:15:34 2007 +0300
@@ -608,16 +608,17 @@
 		int currlsn = cdio_msf_to_lsn(&subchannel.abs_addr);
 
 			/* check to see if we have reached the end of the song */
-		if (currlsn == trackinfo[playing_track].endlsn) {
-			//cdaudio_stop(pinputplayback);
+		if (currlsn == trackinfo[playing_track].endlsn)
 			return -1;
-		}
 
 		return calculate_track_length(trackinfo[playing_track].startlsn, currlsn);
 	}
 	else {
 		if (pdae_params != NULL)
-			return pinputplayback->output->output_time();
+			if (pdae_params->pplayback->playing)
+				return pinputplayback->output->output_time();
+			else
+				return -1;
 		else
 			return -1;
 	}
@@ -828,7 +829,7 @@
 		printf("cdaudio-ng: dae thread ended\n");
 
 	pdae_params->pplayback->playing = FALSE;
-	playing_track = -1;
+	pdae_params->pplayback->output->close_audio();
 	is_paused = FALSE;
 
 	pdae_params->pplayback->output->close_audio();
@@ -858,13 +859,7 @@
 {
 	if (playing_track != -1) {
 		playing_track = -1;
-		//playback_stop();
-		if (pglobalinputplayback != NULL) {
-			pglobalinputplayback->error = 1;
-			playback_stop();
-		}
-		if (pcdio != NULL && !use_dae)
-			cdio_audio_stop(pcdio);
+		playback_stop();
 	}
 
 	if (trackinfo != NULL) {