From eb7603f1c540cad4af4661fd6461dd56a4436a8e Mon Sep 17 00:00:00 2001 From: Marcoen Hirschberg Date: Sat, 19 May 2007 19:30:08 +0000 Subject: always reset the pcm_paused flag when stopping playback. fixes FS #7187 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13423 a1c6a512-1295-4272-9138-f99709370657 --- firmware/pcm_playback.c | 1 + firmware/target/arm/pcm-pp.c | 1 + firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c | 1 + firmware/target/coldfire/pcm-coldfire.c | 3 +-- 4 files changed, 4 insertions(+), 2 deletions(-) (limited to 'firmware') diff --git a/firmware/pcm_playback.c b/firmware/pcm_playback.c index 66a6fdc957..4194da6a9a 100644 --- a/firmware/pcm_playback.c +++ b/firmware/pcm_playback.c @@ -78,6 +78,7 @@ void pcm_play_dma_start(const void *addr, size_t size) void pcm_play_dma_stop(void) { pcm_playing = false; + 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 6ecc3dae31..5aa27dd12f 100644 --- a/firmware/target/arm/pcm-pp.c +++ b/firmware/target/arm/pcm-pp.c @@ -248,6 +248,7 @@ void pcm_play_dma_start(const void *addr, size_t size) void pcm_play_dma_stop(void) { pcm_playing = false; + pcm_paused = false; #if CONFIG_CPU == PP5020 || CONFIG_CPU == PP5024 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 52ab3f165f..592842668d 100644 --- a/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c +++ b/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c @@ -167,6 +167,7 @@ static void pcm_play_dma_stop_fiq(void) while (IISCON & (1<<7)) ; pcm_playing = false; + pcm_paused = false; } /* De-Activate the DMA channel */ diff --git a/firmware/target/coldfire/pcm-coldfire.c b/firmware/target/coldfire/pcm-coldfire.c index faddf70470..b52e5e09b5 100644 --- a/firmware/target/coldfire/pcm-coldfire.c +++ b/firmware/target/coldfire/pcm-coldfire.c @@ -216,6 +216,7 @@ 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; DSR0 = 1; DCR0 = 0; @@ -223,8 +224,6 @@ static void pcm_play_dma_stop_irq(void) /* Place TX FIFO in reset condition if playback monitoring is on. Recording monitoring something else should not be stopped. */ iis_play_reset_if_playback(true); - - pcm_playing = false; } /* pcm_play_dma_stop_irq */ void pcm_play_dma_stop(void) -- cgit v1.2.3