Factor out duplicate code from audio_prev and audio_next

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16424 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Nicolas Pennequin 2008-02-26 17:15:33 +00:00
parent ea9e02b442
commit f730133e04

View file

@ -630,17 +630,17 @@ void audio_resume(void)
queue_send(&audio_queue, Q_AUDIO_PAUSE, false); queue_send(&audio_queue, Q_AUDIO_PAUSE, false);
} }
void audio_next(void) static void audio_skip(int direction)
{ {
if (playlist_check(ci.new_track + wps_offset + 1)) if (playlist_check(ci.new_track + wps_offset + direction))
{ {
if (global_settings.beep) if (global_settings.beep)
pcmbuf_beep(5000, 100, 2500*global_settings.beep); pcmbuf_beep(5000, 100, 2500*global_settings.beep);
LOGFQUEUE("audio > audio Q_AUDIO_SKIP 1"); LOGFQUEUE("audio > audio Q_AUDIO_SKIP %d", direction);
queue_post(&audio_queue, Q_AUDIO_SKIP, 1); queue_post(&audio_queue, Q_AUDIO_SKIP, direction);
/* Update wps while our message travels inside deep playback queues. */ /* Update wps while our message travels inside deep playback queues. */
wps_offset++; wps_offset += direction;
track_changed = true; track_changed = true;
} }
else else
@ -651,25 +651,14 @@ void audio_next(void)
} }
} }
void audio_next(void)
{
audio_skip(1);
}
void audio_prev(void) void audio_prev(void)
{ {
if (playlist_check(ci.new_track + wps_offset - 1)) audio_skip(-1);
{
if (global_settings.beep)
pcmbuf_beep(5000, 100, 2500*global_settings.beep);
LOGFQUEUE("audio > audio Q_AUDIO_SKIP -1");
queue_post(&audio_queue, Q_AUDIO_SKIP, -1);
/* Update wps while our message travels inside deep playback queues. */
wps_offset--;
track_changed = true;
}
else
{
/* No more tracks. */
if (global_settings.beep)
pcmbuf_beep(1000, 100, 1000*global_settings.beep);
}
} }
void audio_next_dir(void) void audio_next_dir(void)