summaryrefslogtreecommitdiff
path: root/apps/playback.c
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2007-05-03 21:49:59 +0000
committerMichael Sevakis <jethead71@rockbox.org>2007-05-03 21:49:59 +0000
commitd7e8e3825341b6b8007d7174e4874c1c5d4542d4 (patch)
tree33c72572df0a01e67a6f55343deb203c5b9947bc /apps/playback.c
parent0658dce706b19c1fd15e29e71a8de5eb7e85bf42 (diff)
downloadrockbox-d7e8e3825341b6b8007d7174e4874c1c5d4542d4.tar.gz
rockbox-d7e8e3825341b6b8007d7174e4874c1c5d4542d4.zip
Audio seemed never to want to stop stopping. A bad condition for plugins that want to stop audio and begin pcm playback immediately. Only do the stop if the state is playing. Properly wait for it to be done as well.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13317 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/playback.c')
-rw-r--r--apps/playback.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/apps/playback.c b/apps/playback.c
index 545076954f..b26754eb3a 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -695,12 +695,9 @@ void audio_play(long offset)
695void audio_stop(void) 695void audio_stop(void)
696{ 696{
697 /* Stop playback */ 697 /* Stop playback */
698 LOGFQUEUE("audio > audio Q_AUDIO_STOP"); 698 LOGFQUEUE("audio >| audio Q_AUDIO_STOP");
699 queue_post(&audio_queue, Q_AUDIO_STOP, 0);
700
701 /* Don't return until playback has actually stopped */ 699 /* Don't return until playback has actually stopped */
702 while(playing || !queue_empty(&audio_queue)) 700 queue_send(&audio_queue, Q_AUDIO_STOP, 0);
703 yield();
704} 701}
705 702
706void audio_pause(void) 703void audio_pause(void)
@@ -3644,7 +3641,8 @@ static void audio_thread(void)
3644 3641
3645 case Q_AUDIO_STOP: 3642 case Q_AUDIO_STOP:
3646 LOGFQUEUE("audio < Q_AUDIO_STOP"); 3643 LOGFQUEUE("audio < Q_AUDIO_STOP");
3647 audio_stop_playback(); 3644 if (playing)
3645 audio_stop_playback();
3648 if (ev.data != 0) 3646 if (ev.data != 0)
3649 queue_clear(&audio_queue); 3647 queue_clear(&audio_queue);
3650 break ; 3648 break ;