summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiika Pekkarinen <miipekk@ihme.org>2005-06-20 18:06:33 +0000
committerMiika Pekkarinen <miipekk@ihme.org>2005-06-20 18:06:33 +0000
commit5936246fd0bf1379966a526487d7d5cbc1785c42 (patch)
tree3b97390662c7246d826126976f4643b90de584c5
parent61b9d34c7cefd77e07d2553412e33c36bcae4965 (diff)
downloadrockbox-5936246fd0bf1379966a526487d7d5cbc1785c42.zip
rockbox-5936246fd0bf1379966a526487d7d5cbc1785c42.tar.gz
rockbox-5936246fd0bf1379966a526487d7d5cbc1785c42.tar.bz2
rockbox-5936246fd0bf1379966a526487d7d5cbc1785c42.tar.xz
Fixed glitches from crossfade.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6780 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/playback.c5
-rw-r--r--firmware/pcm_playback.c3
2 files changed, 3 insertions, 5 deletions
diff --git a/apps/playback.c b/apps/playback.c
index 1f0586a..4dfd196 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -809,11 +809,6 @@ void initialize_buffer_fill(void)
void audio_check_buffer(void)
{
- /* Fill buffer as full as possible for cross-fader. */
- if (pcm_is_crossfade_enabled() && cur_ti->id3.length > 0
- && cur_ti->id3.length - cur_ti->id3.elapsed < 20000 && playing)
- pcm_set_boost_mode(true);
-
/* Start buffer filling as necessary. */
if ((codecbufused > conf_watermark || !queue_empty(&audio_queue)
|| !playing || ci.stop_codec || ci.reload_codec) && !filling)
diff --git a/firmware/pcm_playback.c b/firmware/pcm_playback.c
index 0694996..75dc792 100644
--- a/firmware/pcm_playback.c
+++ b/firmware/pcm_playback.c
@@ -414,6 +414,9 @@ static void crossfade_start(void)
yield();
}
pcm_event_handler = NULL;
+ audiobuffer_pos += audiobuffer_fillpos;
+ if (audiobuffer_pos >= PCMBUF_SIZE)
+ audiobuffer_pos -= PCMBUF_SIZE;
}
pcm_boost(true);
crossfade_active = true;