summaryrefslogtreecommitdiffstats
path: root/apps/voice_thread.c
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2007-12-11 14:04:03 +0000
committerMichael Sevakis <jethead71@rockbox.org>2007-12-11 14:04:03 +0000
commita9d73e5e68cdc2c2463813eabdac33a4d7ffd6fe (patch)
treeb0b5780abd0bfb13e6d8e586887a08a7e74fb3f2 /apps/voice_thread.c
parent7ab63e3f1b621781339ee7efae5e25427618474e (diff)
downloadrockbox-a9d73e5e68cdc2c2463813eabdac33a4d7ffd6fe.tar.gz
rockbox-a9d73e5e68cdc2c2463813eabdac33a4d7ffd6fe.tar.bz2
rockbox-a9d73e5e68cdc2c2463813eabdac33a4d7ffd6fe.zip
A final queue_post in voice_stop via. talk_force_shutup can try stopping PCM too late and interfere PCM playback after plugins init IRAM or calling audio_get_buffer. Send the NULL message to the voice thread to ensure all messages are done.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15911 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/voice_thread.c')
-rw-r--r--apps/voice_thread.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/apps/voice_thread.c b/apps/voice_thread.c
index 4027fd067b..7bf52d4d0d 100644
--- a/apps/voice_thread.c
+++ b/apps/voice_thread.c
@@ -173,6 +173,10 @@ void voice_stop(void)
/* Unqueue all future clips */
talk_force_shutup();
+ /* Wait for any final queue_post to be processed */
+ LOGFQUEUE("mp3 >| voice Q_VOICE_NULL");
+ queue_send(&voice_queue, Q_VOICE_NULL, 0);
+
mutex_unlock(&voice_mutex);
} /* voice_stop */