diff options
Diffstat (limited to 'apps/pcmbuf.c')
-rw-r--r-- | apps/pcmbuf.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/apps/pcmbuf.c b/apps/pcmbuf.c index 7e6954c280..a6b82baf25 100644 --- a/apps/pcmbuf.c +++ b/apps/pcmbuf.c | |||
@@ -24,7 +24,7 @@ | |||
24 | #include "panic.h" | 24 | #include "panic.h" |
25 | #include <kernel.h> | 25 | #include <kernel.h> |
26 | #include "pcmbuf.h" | 26 | #include "pcmbuf.h" |
27 | #include "pcm_playback.h" | 27 | #include "pcm.h" |
28 | #include "logf.h" | 28 | #include "logf.h" |
29 | #ifndef SIMULATOR | 29 | #ifndef SIMULATOR |
30 | #include "cpu.h" | 30 | #include "cpu.h" |
@@ -154,7 +154,6 @@ static void pcmbuf_callback(unsigned char** start, size_t* size) | |||
154 | crossfade_chunk = pcmbuf_read; | 154 | crossfade_chunk = pcmbuf_read; |
155 | } | 155 | } |
156 | 156 | ||
157 | process_new_buffer: | ||
158 | { | 157 | { |
159 | /* Send the new buffer to the pcm */ | 158 | /* Send the new buffer to the pcm */ |
160 | struct pcmbufdesc *pcmbuf_new = pcmbuf_read; | 159 | struct pcmbufdesc *pcmbuf_new = pcmbuf_read; |
@@ -171,10 +170,6 @@ process_new_buffer: | |||
171 | } | 170 | } |
172 | else | 171 | else |
173 | { | 172 | { |
174 | /* There may be more data waiting to flush, try to use it */ | ||
175 | if (pcmbuf_flush_fillpos()) | ||
176 | goto process_new_buffer; | ||
177 | |||
178 | /* No more buffers */ | 173 | /* No more buffers */ |
179 | last_chunksize = 0; | 174 | last_chunksize = 0; |
180 | *realsize = 0; | 175 | *realsize = 0; |
@@ -487,7 +482,12 @@ void pcmbuf_pause(bool pause) | |||
487 | if (pause) | 482 | if (pause) |
488 | pcm_mute(true); | 483 | pcm_mute(true); |
489 | #endif | 484 | #endif |
490 | pcm_play_pause(!pause); | 485 | |
486 | if (pcm_is_playing()) | ||
487 | pcm_play_pause(!pause); | ||
488 | else if (!pause) | ||
489 | pcmbuf_play_start(); | ||
490 | |||
491 | #ifdef PCMBUF_MUTING | 491 | #ifdef PCMBUF_MUTING |
492 | if (!pause) | 492 | if (!pause) |
493 | pcm_mute(false); | 493 | pcm_mute(false); |
@@ -823,7 +823,8 @@ static bool prepare_insert(size_t length) | |||
823 | #endif | 823 | #endif |
824 | { | 824 | { |
825 | logf("pcm starting"); | 825 | logf("pcm starting"); |
826 | pcmbuf_play_start(); | 826 | if (!(audio_status() & AUDIO_STATUS_PAUSE)) |
827 | pcmbuf_play_start(); | ||
827 | } | 828 | } |
828 | } | 829 | } |
829 | else if (pcmbuf_unplayed_bytes <= pcmbuf_watermark) | 830 | else if (pcmbuf_unplayed_bytes <= pcmbuf_watermark) |