1
0
Fork 0
forked from len0rd/rockbox

Fixed the gapless playback.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7180 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Miika Pekkarinen 2005-07-17 15:35:17 +00:00
parent 182ad9bbc2
commit cd8bfeb8a3

View file

@ -1156,10 +1156,12 @@ void audio_update_trackinfo(void)
ci.curpos = 0; ci.curpos = 0;
cur_ti->start_pos = 0; cur_ti->start_pos = 0;
ci.taginfo_ready = (bool *)&cur_ti->taginfo_ready; ci.taginfo_ready = (bool *)&cur_ti->taginfo_ready;
if (!pcmbuf_crossfade_init()) if (pcmbuf_is_crossfade_enabled() && !pcmbuf_is_crossfade_active()) {
pcmbuf_add_event(codec_track_changed); pcmbuf_crossfade_init();
else
codec_track_changed(); codec_track_changed();
} else {
pcmbuf_add_event(codec_track_changed);
}
} }
static void audio_stop_playback(void) static void audio_stop_playback(void)
@ -1343,6 +1345,8 @@ static void initiate_track_change(int peek_index)
ci.stop_codec = true; ci.stop_codec = true;
playlist_next(peek_index); playlist_next(peek_index);
queue_post(&audio_queue, AUDIO_PLAY, 0); queue_post(&audio_queue, AUDIO_PLAY, 0);
} else {
pcmbuf_crossfade_init();
} }
codec_track_changed(); codec_track_changed();
@ -1371,6 +1375,7 @@ void audio_thread(void)
ci.stop_codec = true; ci.stop_codec = true;
ci.reload_codec = false; ci.reload_codec = false;
ci.seek_time = 0; ci.seek_time = 0;
if (!pcmbuf_is_crossfade_active())
pcmbuf_crossfade_init(); pcmbuf_crossfade_init();
audio_play_start((int)ev.data); audio_play_start((int)ev.data);
playlist_update_resume_info(audio_current_track()); playlist_update_resume_info(audio_current_track());