diff options
| author | Brandon Low <lostlogic@rockbox.org> | 2006-04-14 16:42:14 +0000 |
|---|---|---|
| committer | Brandon Low <lostlogic@rockbox.org> | 2006-04-14 16:42:14 +0000 |
| commit | 86c7e1a947bec94217f81e2007018f20c7e17a9b (patch) | |
| tree | 27f62be71478dfa0968f598911cbdffb2a81aae2 | |
| parent | fb966b3cf869e9f737af77da4a986b8c3e44667c (diff) | |
| download | rockbox-86c7e1a947bec94217f81e2007018f20c7e17a9b.zip rockbox-86c7e1a947bec94217f81e2007018f20c7e17a9b.tar.gz rockbox-86c7e1a947bec94217f81e2007018f20c7e17a9b.tar.bz2 rockbox-86c7e1a947bec94217f81e2007018f20c7e17a9b.tar.xz | |
Fix some stop/pause/boost stuff
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9662 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | apps/pcmbuf.c | 2 | ||||
| -rw-r--r-- | apps/playback.c | 10 |
2 files changed, 5 insertions, 7 deletions
diff --git a/apps/pcmbuf.c b/apps/pcmbuf.c index a252f5c..ab41df0 100644 --- a/apps/pcmbuf.c +++ b/apps/pcmbuf.c @@ -380,7 +380,7 @@ void pcmbuf_pause(bool pause) { pcm_play_pause(!pause); if (!pause) pcm_mute(false); - pcmbuf_boost(!pause); + pcmbuf_boost(!pause && pcm_is_playing()); } /* Force playback. */ diff --git a/apps/playback.c b/apps/playback.c index bc5785f..90b04ae 100644 --- a/apps/playback.c +++ b/apps/playback.c @@ -1669,12 +1669,8 @@ static void audio_play_start(size_t offset) #endif /* Wait for any previously playing audio to flush */ - if (audio_codec_loaded) - { - playing = false; - queue_empty(&codec_queue); + while (audio_codec_loaded) stop_codec_flush(); - } track_changed = true; playlist_end = false; @@ -1924,6 +1920,7 @@ static void initiate_dir_change(long direction) if(!playlist_next_dir(direction)) return; + ci.reload_codec = true; queue_post(&audio_queue, Q_AUDIO_PLAY, 0); } @@ -2081,6 +2078,7 @@ void codec_thread(void) swap_codec(); sleep(1); } + queue_clear(&codec_queue); logf("USB: Audio codec"); usb_acknowledge(SYS_USB_CONNECTED_ACK); usb_wait_for_disconnect(&codec_queue); @@ -2089,7 +2087,7 @@ void codec_thread(void) } if (audio_codec_loaded) - if (ci.stop_codec && pcm_is_paused()) + if (!playing && ci.stop_codec) pcmbuf_play_stop(); audio_codec_loaded = false; |