summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrandon Low <lostlogic@rockbox.org>2006-04-14 16:42:14 +0000
committerBrandon Low <lostlogic@rockbox.org>2006-04-14 16:42:14 +0000
commit86c7e1a947bec94217f81e2007018f20c7e17a9b (patch)
tree27f62be71478dfa0968f598911cbdffb2a81aae2
parentfb966b3cf869e9f737af77da4a986b8c3e44667c (diff)
downloadrockbox-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.c2
-rw-r--r--apps/playback.c10
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;