From aa30f0483be326d44a6a50bd4d4eabcbe6b5ae8c Mon Sep 17 00:00:00 2001 From: Miika Pekkarinen Date: Tue, 5 Jul 2005 07:25:55 +0000 Subject: Fixed crossfading. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7022 a1c6a512-1295-4272-9138-f99709370657 --- apps/playback.c | 7 ++++--- firmware/pcm_playback.c | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/playback.c b/apps/playback.c index 7565cbcdf5..62fa8de854 100644 --- a/apps/playback.c +++ b/apps/playback.c @@ -873,6 +873,7 @@ bool audio_load_track(int offset, bool start_play, int peek_offset) return false; } } + tracks[track_widx].id3.elapsed = 0; /* Starting playback from an offset is only support in MPA at the moment */ if (offset > 0) { @@ -1157,7 +1158,7 @@ void audio_update_trackinfo(void) if (buf_ridx < 0) buf_ridx = codecbuflen + buf_ridx; } - + ci.filesize = cur_ti->filesize; cur_ti->id3.elapsed = 0; cur_ti->id3.offset = 0; @@ -1436,7 +1437,7 @@ void codec_thread(void) struct mp3entry* audio_current_track(void) { - logf("audio_current_track"); + // logf("audio_current_track"); if (track_count > 0 && cur_ti->taginfo_ready) return (struct mp3entry *)&cur_ti->id3; @@ -1515,7 +1516,7 @@ void audio_resume(void) static void initiate_track_change(int peek_index) { if (!playlist_check(peek_index)) - return ; + return ; new_track = peek_index; ci.reload_codec = true; diff --git a/firmware/pcm_playback.c b/firmware/pcm_playback.c index 9e02079d76..298d2e7874 100644 --- a/firmware/pcm_playback.c +++ b/firmware/pcm_playback.c @@ -431,7 +431,8 @@ bool pcm_is_lowdata(void) bool pcm_crossfade_init(void) { - if (PCMBUF_SIZE - audiobuffer_free < CHUNK_SIZE * 8 || !crossfade_enabled) { + if (PCMBUF_SIZE - audiobuffer_free < CHUNK_SIZE * 8 || !crossfade_enabled + || crossfade_active) { return false; } logf("crossfading!"); -- cgit v1.2.3