diff options
-rw-r--r-- | apps/playback.c | 10 |
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) | |||
695 | void audio_stop(void) | 695 | void 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 | ||
706 | void audio_pause(void) | 703 | void 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 ; |