1
0
Fork 0
forked from len0rd/rockbox

Second part of FS#8104 by Bertrik Sikken: Simplification of audio_track_count, audio_have_tracks and audio_have_free_tracks. This hopefully won't affect anything, but the semantics of the functions have changed slightly.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15693 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Nicolas Pennequin 2007-11-19 16:37:52 +00:00
parent 3947b0c632
commit d3b8245ca8
2 changed files with 9 additions and 21 deletions

View file

@ -344,7 +344,7 @@ static bool dbg_buffering_thread(void)
snprintf(buf, sizeof(buf), "data_rem: %ld", (long)d.data_rem); snprintf(buf, sizeof(buf), "data_rem: %ld", (long)d.data_rem);
lcd_puts(0, line++, buf); lcd_puts(0, line++, buf);
snprintf(buf, sizeof(buf), "track count: %2d", audio_track_count()-1); snprintf(buf, sizeof(buf), "track count: %2d", audio_track_count());
lcd_puts(0, line++, buf); lcd_puts(0, line++, buf);
snprintf(buf, sizeof(buf), "handle count: %d", (int)d.num_handles); snprintf(buf, sizeof(buf), "handle count: %d", (int)d.num_handles);

View file

@ -1422,32 +1422,20 @@ static void codec_thread(void)
static bool audio_have_tracks(void) static bool audio_have_tracks(void)
{ {
return track_ridx != track_widx || CUR_TI->filesize; return (audio_track_count() != 0);
} }
static bool audio_have_free_tracks(void) static int audio_free_track_count(void)
{ {
if (track_widx < track_ridx) /* Used tracks + free tracks adds up to MAX_TRACK - 1 */
return track_widx + 1 < track_ridx; return MAX_TRACK - 1 - audio_track_count();
else if (track_ridx == 0)
return track_widx < MAX_TRACK - 1;
return true;
} }
int audio_track_count(void) int audio_track_count(void)
{ {
if (audio_have_tracks()) /* Calculate difference from track_ridx to track_widx
{ * taking into account a possible wrap-around. */
int relative_track_widx = track_widx; return (MAX_TRACK + track_widx - track_ridx) & MAX_TRACK_MASK;
if (track_ridx > track_widx)
relative_track_widx += MAX_TRACK;
return relative_track_widx - track_ridx + 1;
}
return 0;
} }
long audio_filebufused(void) long audio_filebufused(void)
@ -1659,7 +1647,7 @@ static bool audio_load_track(int offset, bool start_play)
/* Stop buffer filling if there is no free track entries. /* Stop buffer filling if there is no free track entries.
Don't fill up the last track entry (we wan't to store next track Don't fill up the last track entry (we wan't to store next track
metadata there). */ metadata there). */
if (!audio_have_free_tracks()) if (!audio_free_track_count())
{ {
logf("No free tracks"); logf("No free tracks");
return false; return false;