diff options
| author | Miika Pekkarinen <miipekk@ihme.org> | 2005-06-14 18:59:34 +0000 |
|---|---|---|
| committer | Miika Pekkarinen <miipekk@ihme.org> | 2005-06-14 18:59:34 +0000 |
| commit | 8d5822d6ed2f583db1f0efcc5204de16466d02aa (patch) | |
| tree | 3d036e4d3b93c72c8af5b2e0be903533b39a6b19 | |
| parent | fe8663c548c980a7e6c8dbee54900f2d6f74ef26 (diff) | |
| download | rockbox-8d5822d6ed2f583db1f0efcc5204de16466d02aa.zip rockbox-8d5822d6ed2f583db1f0efcc5204de16466d02aa.tar.gz rockbox-8d5822d6ed2f583db1f0efcc5204de16466d02aa.tar.bz2 rockbox-8d5822d6ed2f583db1f0efcc5204de16466d02aa.tar.xz | |
Playlist changed are recognized correctly.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6711 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | apps/playback.c | 4 | ||||
| -rw-r--r-- | firmware/export/pcm_playback.h | 2 | ||||
| -rw-r--r-- | firmware/pcm_playback.c | 7 |
3 files changed, 8 insertions, 5 deletions
diff --git a/apps/playback.c b/apps/playback.c index 7ef4f7b..7c5ebe6 100644 --- a/apps/playback.c +++ b/apps/playback.c @@ -1102,7 +1102,7 @@ void audio_check_buffer(void) } track_count = i; - if (tracks[track_widx].filerem != 0) + if (tracks[track_widx].filesize != 0) track_count++; /* Mark all other entries null. */ @@ -1487,6 +1487,8 @@ void audio_next(void) ci.stop_codec = true; playlist_next(1); queue_post(&audio_queue, AUDIO_PLAY, 0); + } else if (!pcm_crossfade_start()) { + pcm_play_stop(); } } diff --git a/firmware/export/pcm_playback.h b/firmware/export/pcm_playback.h index 32288d7..9606415 100644 --- a/firmware/export/pcm_playback.h +++ b/firmware/export/pcm_playback.h @@ -42,7 +42,7 @@ void pcm_play_set_watermark(int numbytes, void (*callback)(int bytes_left)); void pcm_set_boost_mode(bool state); bool pcm_is_lowdata(void); -void pcm_crossfade_start(void); +bool pcm_crossfade_start(void); unsigned int audiobuffer_get_latency(void); bool audiobuffer_insert(char *buf, size_t length); bool pcm_is_crossfade_enabled(void); diff --git a/firmware/pcm_playback.c b/firmware/pcm_playback.c index d1be2a1..b18238c 100644 --- a/firmware/pcm_playback.c +++ b/firmware/pcm_playback.c @@ -229,6 +229,7 @@ void pcm_play_data(const unsigned char* start, int size, void pcm_play_stop(void) { + pcm_set_boost_mode(false); if (pcm_playing) { uda1380_enable_output(false); pcm_boost(false); @@ -243,7 +244,6 @@ void pcm_play_stop(void) pcmbuf_write_index = 0; next_start = NULL; next_size = 0; - pcm_set_boost_mode(false); } void pcm_play_pause(bool play) @@ -391,11 +391,11 @@ bool pcm_is_lowdata(void) return false; } -void pcm_crossfade_start(void) +bool pcm_crossfade_start(void) { //logf("cf:%d", audiobuffer_free / CHUNK_SIZE); if (audiobuffer_free > CHUNK_SIZE * 4 || !crossfade_enabled) { - return ; + return false; } pcm_boost(true); crossfade_active = true; @@ -407,6 +407,7 @@ void pcm_crossfade_start(void) crossfade_pos -= crossfade_amount*2; if (crossfade_pos < 0) crossfade_pos = PCMBUF_SIZE + crossfade_pos; + return true; } static __inline |