From 14da611cd32d084813bb0d2e2318b81c3ea2953a Mon Sep 17 00:00:00 2001 From: Nicolas Pennequin Date: Thu, 25 Oct 2007 22:52:40 +0000 Subject: Check the audio queue for new messages while filling the buffer with tracks. This cuts down the long wait for a skip (or any other action) while adding a large number of tracks to the buffer. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15309 a1c6a512-1295-4272-9138-f99709370657 --- apps/playback.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'apps') diff --git a/apps/playback.c b/apps/playback.c index 0cda680c0b..1a51bd2c41 100644 --- a/apps/playback.c +++ b/apps/playback.c @@ -2616,6 +2616,13 @@ static void audio_fill_file_buffer(bool start_play, size_t offset) start_play = false; offset = 0; sleep(1); + if (!queue_empty(&audio_queue)) { + /* There's a message in the queue. break the loop to treat it, + and go back to filling after that. */ + LOGFQUEUE("buffering > audio Q_AUDIO_FILL_BUFFER"); + queue_post(&audio_queue, Q_AUDIO_FILL_BUFFER, 0); + break; + } } while (continue_buffering); if (!had_next_track && audio_next_track()) -- cgit v1.2.3