diff options
author | Miika Pekkarinen <miipekk@ihme.org> | 2008-03-08 08:05:29 +0000 |
---|---|---|
committer | Miika Pekkarinen <miipekk@ihme.org> | 2008-03-08 08:05:29 +0000 |
commit | d8204fa11e2870b5f6106392a13bd16328798f5f (patch) | |
tree | 09e0c2d71f96cf03b6cdeec8ccfa124cab7e3403 | |
parent | 3c41df9d1401abe3cf721b0135cdc0fb6094e722 (diff) | |
download | rockbox-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.c | 29 |
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 */ |
1569 | static void audio_clear_track_entries(bool clear_unbuffered) | 1569 | static 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(); |