summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Pennequin <nicolas.pennequin@free.fr>2007-11-08 17:27:43 +0000
committerNicolas Pennequin <nicolas.pennequin@free.fr>2007-11-08 17:27:43 +0000
commit941600f121c002c5bfdbbdf0b35e9ee509a701af (patch)
tree4f14a117826a37f5c043df62bb51e05a29fbade8
parent12d479fd3e3408ccc97860312e9c151ba6afaf72 (diff)
downloadrockbox-941600f121c002c5bfdbbdf0b35e9ee509a701af.tar.gz
rockbox-941600f121c002c5bfdbbdf0b35e9ee509a701af.zip
Remove nexttrack_id3 and instead use the metadata present on the buffer.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15540 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/playback.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/apps/playback.c b/apps/playback.c
index fd60af2b6d..61bb326574 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -203,9 +203,13 @@ size_t filebuflen = 0; /* Size of buffer (A/C-) */
203#define BUFFER_STATE_VOICED_ONLY 1 /* voice-only */ 203#define BUFFER_STATE_VOICED_ONLY 1 /* voice-only */
204static int buffer_state = BUFFER_STATE_TRASHED; /* Buffer state */ 204static int buffer_state = BUFFER_STATE_TRASHED; /* Buffer state */
205 205
206/* Used to keep the WPS up-to-date during track transtition */
206static struct mp3entry prevtrack_id3; 207static struct mp3entry prevtrack_id3;
208
209/* Used to provide the codec with a pointer */
207static struct mp3entry curtrack_id3; 210static struct mp3entry curtrack_id3;
208static struct mp3entry nexttrack_id3; 211
212/* Used to make next track info available while playing last track on buffer */
209static struct mp3entry lasttrack_id3; 213static struct mp3entry lasttrack_id3;
210 214
211/* Track info structure about songs in the file buffer (A/C-) */ 215/* Track info structure about songs in the file buffer (A/C-) */
@@ -690,8 +694,8 @@ struct mp3entry* audio_next_track(void)
690 694
691 if (tracks[next_idx].id3_hid < 0) 695 if (tracks[next_idx].id3_hid < 0)
692 return NULL; 696 return NULL;
693 697 else
694 return &nexttrack_id3; 698 return bufgetid3(tracks[next_idx].id3_hid);
695} 699}
696 700
697bool audio_has_changed_track(void) 701bool audio_has_changed_track(void)
@@ -2049,9 +2053,6 @@ static void audio_update_trackinfo(void)
2049 int next_idx = track_ridx + 1; 2053 int next_idx = track_ridx + 1;
2050 next_idx &= MAX_TRACK_MASK; 2054 next_idx &= MAX_TRACK_MASK;
2051 2055
2052 if (tracks[next_idx].id3_hid >= 0)
2053 copy_mp3entry(&nexttrack_id3, bufgetid3(tracks[next_idx].id3_hid));
2054
2055 tracks[next_idx].taginfo_ready = (tracks[next_idx].id3_hid >= 0); 2056 tracks[next_idx].taginfo_ready = (tracks[next_idx].id3_hid >= 0);
2056 2057
2057 ci.filesize = CUR_TI->filesize; 2058 ci.filesize = CUR_TI->filesize;
@@ -2314,8 +2315,6 @@ static bool audio_load_track(int offset, bool start_play)
2314 2315
2315 if (track_widx == track_ridx) 2316 if (track_widx == track_ridx)
2316 copy_mp3entry(&curtrack_id3, &id3); 2317 copy_mp3entry(&curtrack_id3, &id3);
2317 else if (track_widx == ((track_ridx + 1) & MAX_TRACK_MASK))
2318 copy_mp3entry(&nexttrack_id3, &id3);
2319 2318
2320 if (start_play) 2319 if (start_play)
2321 { 2320 {
@@ -2379,8 +2378,6 @@ static bool audio_load_track(int offset, bool start_play)
2379 2378
2380 if (track_widx == track_ridx) 2379 if (track_widx == track_ridx)
2381 track_id3 = &curtrack_id3; 2380 track_id3 = &curtrack_id3;
2382 else if (track_widx == ((track_ridx + 1) & MAX_TRACK_MASK))
2383 track_id3 = &nexttrack_id3;
2384 else 2381 else
2385 track_id3 = bufgetid3(tracks[track_widx].id3_hid); 2382 track_id3 = bufgetid3(tracks[track_widx].id3_hid);
2386 2383
@@ -2772,7 +2769,6 @@ static void audio_stop_playback(void)
2772 audio_release_tracks(); 2769 audio_release_tracks();
2773 2770
2774 memset(&curtrack_id3, 0, sizeof(struct mp3entry)); 2771 memset(&curtrack_id3, 0, sizeof(struct mp3entry));
2775 memset(&nexttrack_id3, 0, sizeof(struct mp3entry));
2776} 2772}
2777 2773
2778static void audio_play_start(size_t offset) 2774static void audio_play_start(size_t offset)