Fix some stop/pause/boost stuff

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9662 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Brandon Low 2006-04-14 16:42:14 +00:00
parent fb966b3cf8
commit 86c7e1a947
2 changed files with 5 additions and 7 deletions

View file

@ -380,7 +380,7 @@ void pcmbuf_pause(bool pause) {
pcm_play_pause(!pause); pcm_play_pause(!pause);
if (!pause) if (!pause)
pcm_mute(false); pcm_mute(false);
pcmbuf_boost(!pause); pcmbuf_boost(!pause && pcm_is_playing());
} }
/* Force playback. */ /* Force playback. */

View file

@ -1669,12 +1669,8 @@ static void audio_play_start(size_t offset)
#endif #endif
/* Wait for any previously playing audio to flush */ /* Wait for any previously playing audio to flush */
if (audio_codec_loaded) while (audio_codec_loaded)
{
playing = false;
queue_empty(&codec_queue);
stop_codec_flush(); stop_codec_flush();
}
track_changed = true; track_changed = true;
playlist_end = false; playlist_end = false;
@ -1924,6 +1920,7 @@ static void initiate_dir_change(long direction)
if(!playlist_next_dir(direction)) if(!playlist_next_dir(direction))
return; return;
ci.reload_codec = true;
queue_post(&audio_queue, Q_AUDIO_PLAY, 0); queue_post(&audio_queue, Q_AUDIO_PLAY, 0);
} }
@ -2081,6 +2078,7 @@ void codec_thread(void)
swap_codec(); swap_codec();
sleep(1); sleep(1);
} }
queue_clear(&codec_queue);
logf("USB: Audio codec"); logf("USB: Audio codec");
usb_acknowledge(SYS_USB_CONNECTED_ACK); usb_acknowledge(SYS_USB_CONNECTED_ACK);
usb_wait_for_disconnect(&codec_queue); usb_wait_for_disconnect(&codec_queue);
@ -2089,7 +2087,7 @@ void codec_thread(void)
} }
if (audio_codec_loaded) if (audio_codec_loaded)
if (ci.stop_codec && pcm_is_paused()) if (!playing && ci.stop_codec)
pcmbuf_play_stop(); pcmbuf_play_stop();
audio_codec_loaded = false; audio_codec_loaded = false;