summaryrefslogtreecommitdiff
path: root/apps/playback.c
diff options
context:
space:
mode:
authorMiika Pekkarinen <miipekk@ihme.org>2005-07-17 15:35:17 +0000
committerMiika Pekkarinen <miipekk@ihme.org>2005-07-17 15:35:17 +0000
commitcd8bfeb8a36197080703a21def84eb2da173d23c (patch)
treef0ad0ef36e2b0c9943b21562ee65d601a2928357 /apps/playback.c
parent182ad9bbc2d18d946240491cb52c088227815e8b (diff)
downloadrockbox-cd8bfeb8a36197080703a21def84eb2da173d23c.zip
rockbox-cd8bfeb8a36197080703a21def84eb2da173d23c.tar.gz
rockbox-cd8bfeb8a36197080703a21def84eb2da173d23c.tar.bz2
rockbox-cd8bfeb8a36197080703a21def84eb2da173d23c.tar.xz
Fixed the gapless playback.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7180 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/playback.c')
-rw-r--r--apps/playback.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/apps/playback.c b/apps/playback.c
index 78ee15f..3d7ba1a 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -1156,10 +1156,12 @@ void audio_update_trackinfo(void)
ci.curpos = 0;
cur_ti->start_pos = 0;
ci.taginfo_ready = (bool *)&cur_ti->taginfo_ready;
- if (!pcmbuf_crossfade_init())
- pcmbuf_add_event(codec_track_changed);
- else
+ if (pcmbuf_is_crossfade_enabled() && !pcmbuf_is_crossfade_active()) {
+ pcmbuf_crossfade_init();
codec_track_changed();
+ } else {
+ pcmbuf_add_event(codec_track_changed);
+ }
}
static void audio_stop_playback(void)
@@ -1343,8 +1345,10 @@ static void initiate_track_change(int peek_index)
ci.stop_codec = true;
playlist_next(peek_index);
queue_post(&audio_queue, AUDIO_PLAY, 0);
- }
-
+ } else {
+ pcmbuf_crossfade_init();
+ }
+
codec_track_changed();
}
@@ -1371,7 +1375,8 @@ void audio_thread(void)
ci.stop_codec = true;
ci.reload_codec = false;
ci.seek_time = 0;
- pcmbuf_crossfade_init();
+ if (!pcmbuf_is_crossfade_active())
+ pcmbuf_crossfade_init();
audio_play_start((int)ev.data);
playlist_update_resume_info(audio_current_track());
break ;