summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiika Pekkarinen <miipekk@ihme.org>2005-06-14 18:59:34 +0000
committerMiika Pekkarinen <miipekk@ihme.org>2005-06-14 18:59:34 +0000
commit8d5822d6ed2f583db1f0efcc5204de16466d02aa (patch)
tree3d036e4d3b93c72c8af5b2e0be903533b39a6b19
parentfe8663c548c980a7e6c8dbee54900f2d6f74ef26 (diff)
downloadrockbox-8d5822d6ed2f583db1f0efcc5204de16466d02aa.tar.gz
rockbox-8d5822d6ed2f583db1f0efcc5204de16466d02aa.zip
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.c4
-rw-r--r--firmware/export/pcm_playback.h2
-rw-r--r--firmware/pcm_playback.c7
3 files changed, 8 insertions, 5 deletions
diff --git a/apps/playback.c b/apps/playback.c
index 7ef4f7b4bc..7c5ebe6b0e 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -1102,7 +1102,7 @@ void audio_check_buffer(void)
1102 } 1102 }
1103 1103
1104 track_count = i; 1104 track_count = i;
1105 if (tracks[track_widx].filerem != 0) 1105 if (tracks[track_widx].filesize != 0)
1106 track_count++; 1106 track_count++;
1107 1107
1108 /* Mark all other entries null. */ 1108 /* Mark all other entries null. */
@@ -1487,6 +1487,8 @@ void audio_next(void)
1487 ci.stop_codec = true; 1487 ci.stop_codec = true;
1488 playlist_next(1); 1488 playlist_next(1);
1489 queue_post(&audio_queue, AUDIO_PLAY, 0); 1489 queue_post(&audio_queue, AUDIO_PLAY, 0);
1490 } else if (!pcm_crossfade_start()) {
1491 pcm_play_stop();
1490 } 1492 }
1491} 1493}
1492 1494
diff --git a/firmware/export/pcm_playback.h b/firmware/export/pcm_playback.h
index 32288d7d91..960641531a 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));
42 42
43void pcm_set_boost_mode(bool state); 43void pcm_set_boost_mode(bool state);
44bool pcm_is_lowdata(void); 44bool pcm_is_lowdata(void);
45void pcm_crossfade_start(void); 45bool pcm_crossfade_start(void);
46unsigned int audiobuffer_get_latency(void); 46unsigned int audiobuffer_get_latency(void);
47bool audiobuffer_insert(char *buf, size_t length); 47bool audiobuffer_insert(char *buf, size_t length);
48bool pcm_is_crossfade_enabled(void); 48bool pcm_is_crossfade_enabled(void);
diff --git a/firmware/pcm_playback.c b/firmware/pcm_playback.c
index d1be2a1102..b18238cd3e 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,
229 229
230void pcm_play_stop(void) 230void pcm_play_stop(void)
231{ 231{
232 pcm_set_boost_mode(false);
232 if (pcm_playing) { 233 if (pcm_playing) {
233 uda1380_enable_output(false); 234 uda1380_enable_output(false);
234 pcm_boost(false); 235 pcm_boost(false);
@@ -243,7 +244,6 @@ void pcm_play_stop(void)
243 pcmbuf_write_index = 0; 244 pcmbuf_write_index = 0;
244 next_start = NULL; 245 next_start = NULL;
245 next_size = 0; 246 next_size = 0;
246 pcm_set_boost_mode(false);
247} 247}
248 248
249void pcm_play_pause(bool play) 249void pcm_play_pause(bool play)
@@ -391,11 +391,11 @@ bool pcm_is_lowdata(void)
391 return false; 391 return false;
392} 392}
393 393
394void pcm_crossfade_start(void) 394bool pcm_crossfade_start(void)
395{ 395{
396 //logf("cf:%d", audiobuffer_free / CHUNK_SIZE); 396 //logf("cf:%d", audiobuffer_free / CHUNK_SIZE);
397 if (audiobuffer_free > CHUNK_SIZE * 4 || !crossfade_enabled) { 397 if (audiobuffer_free > CHUNK_SIZE * 4 || !crossfade_enabled) {
398 return ; 398 return false;
399 } 399 }
400 pcm_boost(true); 400 pcm_boost(true);
401 crossfade_active = true; 401 crossfade_active = true;
@@ -407,6 +407,7 @@ void pcm_crossfade_start(void)
407 crossfade_pos -= crossfade_amount*2; 407 crossfade_pos -= crossfade_amount*2;
408 if (crossfade_pos < 0) 408 if (crossfade_pos < 0)
409 crossfade_pos = PCMBUF_SIZE + crossfade_pos; 409 crossfade_pos = PCMBUF_SIZE + crossfade_pos;
410 return true;
410} 411}
411 412
412static __inline 413static __inline