summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiika Pekkarinen <miipekk@ihme.org>2008-03-08 08:05:29 +0000
committerMiika Pekkarinen <miipekk@ihme.org>2008-03-08 08:05:29 +0000
commitd8204fa11e2870b5f6106392a13bd16328798f5f (patch)
tree09e0c2d71f96cf03b6cdeec8ccfa124cab7e3403
parent3c41df9d1401abe3cf721b0135cdc0fb6094e722 (diff)
downloadrockbox-d8204fa11e2870b5f6106392a13bd16328798f5f.tar.gz
rockbox-d8204fa11e2870b5f6106392a13bd16328798f5f.zip
Simplified the playback engine more and removed unnecessary code.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16552 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/playback.c29
1 files changed, 9 insertions, 20 deletions
diff --git a/apps/playback.c b/apps/playback.c
index f66fd2954a..cb9ed3e162 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -1566,11 +1566,11 @@ static void buffering_audio_callback(enum callback_event ev, int value)
1566} 1566}
1567 1567
1568/* Clear tracks between write and read, non inclusive */ 1568/* Clear tracks between write and read, non inclusive */
1569static void audio_clear_track_entries(bool clear_unbuffered) 1569static void audio_clear_track_entries(void)
1570{ 1570{
1571 int cur_idx = track_widx; 1571 int cur_idx = track_widx;
1572 1572
1573 logf("Clearing tracks:%d/%d, %d", track_ridx, track_widx, clear_unbuffered); 1573 logf("Clearing tracks:%d/%d", track_ridx, track_widx);
1574 1574
1575 /* Loop over all tracks from write-to-read */ 1575 /* Loop over all tracks from write-to-read */
1576 while (1) 1576 while (1)
@@ -1580,10 +1580,7 @@ static void audio_clear_track_entries(bool clear_unbuffered)
1580 if (cur_idx == track_ridx) 1580 if (cur_idx == track_ridx)
1581 break; 1581 break;
1582 1582
1583 /* If the track is buffered, conditionally clear/notify, 1583 clear_track_info(&tracks[cur_idx]);
1584 * otherwise clear the track if that option is selected */
1585 if (clear_unbuffered)
1586 clear_track_info(&tracks[cur_idx]);
1587 } 1584 }
1588} 1585}
1589 1586
@@ -1964,7 +1961,7 @@ static void audio_fill_file_buffer(bool start_play, size_t offset)
1964 logf("Starting buffer fill"); 1961 logf("Starting buffer fill");
1965 1962
1966 if (!start_play) 1963 if (!start_play)
1967 audio_clear_track_entries(false); 1964 audio_clear_track_entries();
1968 1965
1969 /* Save the current resume position once. */ 1966 /* Save the current resume position once. */
1970 playlist_update_resume_info(audio_current_track()); 1967 playlist_update_resume_info(audio_current_track());
@@ -1999,7 +1996,7 @@ static void audio_rebuffer(void)
1999 1996
2000 /* Reset track pointers */ 1997 /* Reset track pointers */
2001 track_widx = track_ridx; 1998 track_widx = track_ridx;
2002 audio_clear_track_entries(true); 1999 audio_clear_track_entries();
2003 2000
2004 /* Fill the buffer */ 2001 /* Fill the buffer */
2005 last_peek_offset = -1; 2002 last_peek_offset = -1;
@@ -2231,14 +2228,6 @@ static void audio_stop_playback(void)
2231 /* TODO: Create auto bookmark too? */ 2228 /* TODO: Create auto bookmark too? */
2232 2229
2233 prev_track_elapsed = curtrack_id3.elapsed; 2230 prev_track_elapsed = curtrack_id3.elapsed;
2234
2235 /* At end of playlist save current id3 (id3.elapsed!) to buffer and
2236 * Increment index so runtime info is saved in audio_clear_track_entries().
2237 */
2238 if ((playlist_end) && (tracks[track_ridx].id3_hid >= 0)) {
2239 copy_mp3entry(bufgetid3(tracks[track_ridx].id3_hid), &curtrack_id3);
2240 track_ridx = (track_ridx + 1) & MAX_TRACK_MASK;
2241 }
2242 } 2231 }
2243 2232
2244 paused = false; 2233 paused = false;
@@ -2246,7 +2235,7 @@ static void audio_stop_playback(void)
2246 playing = false; 2235 playing = false;
2247 2236
2248 /* Mark all entries null. */ 2237 /* Mark all entries null. */
2249 audio_clear_track_entries(false); 2238 audio_clear_track_entries();
2250 2239
2251 /* Close all tracks */ 2240 /* Close all tracks */
2252 audio_release_tracks(); 2241 audio_release_tracks();
@@ -2312,7 +2301,7 @@ static void audio_invalidate_tracks(void)
2312 track_widx = track_ridx; 2301 track_widx = track_ridx;
2313 2302
2314 /* Mark all other entries null (also buffered wrong metadata). */ 2303 /* Mark all other entries null (also buffered wrong metadata). */
2315 audio_clear_track_entries(true); 2304 audio_clear_track_entries();
2316 2305
2317 track_widx = (track_widx + 1) & MAX_TRACK_MASK; 2306 track_widx = (track_widx + 1) & MAX_TRACK_MASK;
2318 2307
@@ -2330,7 +2319,7 @@ static void audio_new_playlist(void)
2330 skipped_during_pause = true; 2319 skipped_during_pause = true;
2331 playlist_end = false; 2320 playlist_end = false;
2332 track_widx = track_ridx; 2321 track_widx = track_ridx;
2333 audio_clear_track_entries(true); 2322 audio_clear_track_entries();
2334 2323
2335 track_widx = (track_widx + 1) & MAX_TRACK_MASK; 2324 track_widx = (track_widx + 1) & MAX_TRACK_MASK;
2336 2325
@@ -2574,7 +2563,7 @@ static void audio_thread(void)
2574 usb_wait_for_disconnect(&audio_queue); 2563 usb_wait_for_disconnect(&audio_queue);
2575 2564
2576 /* Mark all entries null. */ 2565 /* Mark all entries null. */
2577 audio_clear_track_entries(false); 2566 audio_clear_track_entries();
2578 2567
2579 /* release tracks to make sure all handles are closed */ 2568 /* release tracks to make sure all handles are closed */
2580 audio_release_tracks(); 2569 audio_release_tracks();