From 7785d6949efdb768e32f20097b9c9a4e9b41b0ca Mon Sep 17 00:00:00 2001 From: Robert Keevil Date: Thu, 5 Jul 2007 10:19:06 +0000 Subject: Temporary fix for FS#7257 and FS#7261 - playback resumes while paused when seeking git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13795 a1c6a512-1295-4272-9138-f99709370657 --- firmware/pcm_playback.c | 3 ++- firmware/target/arm/pcm-pp.c | 3 ++- firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c | 3 ++- firmware/target/coldfire/pcm-coldfire.c | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) (limited to 'firmware') diff --git a/firmware/pcm_playback.c b/firmware/pcm_playback.c index 80f7e1f6b2..d81853e1cb 100644 --- a/firmware/pcm_playback.c +++ b/firmware/pcm_playback.c @@ -78,7 +78,8 @@ void pcm_play_dma_start(const void *addr, size_t size) void pcm_play_dma_stop(void) { pcm_playing = false; - pcm_paused = false; + if (!audio_status()) + pcm_paused = false; } void pcm_play_pause_pause(void) diff --git a/firmware/target/arm/pcm-pp.c b/firmware/target/arm/pcm-pp.c index 35bcd343cb..29e5275745 100644 --- a/firmware/target/arm/pcm-pp.c +++ b/firmware/target/arm/pcm-pp.c @@ -254,7 +254,8 @@ void pcm_play_dma_start(const void *addr, size_t size) void pcm_play_dma_stop(void) { pcm_playing = false; - pcm_paused = false; + if (!audio_status()) + pcm_paused = false; #ifdef CPU_PP502x /* Disable playback FIFO and interrupt */ diff --git a/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c b/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c index 0624aa6f2f..57873faaff 100644 --- a/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c +++ b/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c @@ -168,7 +168,8 @@ static void pcm_play_dma_stop_fiq(void) while (IISCON & (1<<7)) ; pcm_playing = false; - pcm_paused = false; + if (!audio_status()) + pcm_paused = false; } /* Disconnect the IIS clock */ diff --git a/firmware/target/coldfire/pcm-coldfire.c b/firmware/target/coldfire/pcm-coldfire.c index 41aa9fbc61..315479f115 100644 --- a/firmware/target/coldfire/pcm-coldfire.c +++ b/firmware/target/coldfire/pcm-coldfire.c @@ -216,7 +216,8 @@ void pcm_play_dma_start(const void *addr, size_t size) static void pcm_play_dma_stop_irq(void) { pcm_playing = false; - pcm_paused = false; + if (!audio_status()) + pcm_paused = false; DSR0 = 1; DCR0 = 0; -- cgit v1.2.3