summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Pennequin <nicolas.pennequin@free.fr>2008-02-26 17:15:33 +0000
committerNicolas Pennequin <nicolas.pennequin@free.fr>2008-02-26 17:15:33 +0000
commitf730133e0446e2d2fdae3c93fbba09e08be18e26 (patch)
treeb211866530c8c110b438c8c12e99816af542d3c2
parentea9e02b4428e0fb5e69f17511d809f74dbd3b273 (diff)
downloadrockbox-f730133e0446e2d2fdae3c93fbba09e08be18e26.zip
rockbox-f730133e0446e2d2fdae3c93fbba09e08be18e26.tar.gz
rockbox-f730133e0446e2d2fdae3c93fbba09e08be18e26.tar.bz2
rockbox-f730133e0446e2d2fdae3c93fbba09e08be18e26.tar.xz
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
-rw-r--r--apps/playback.c33
1 files changed, 11 insertions, 22 deletions
diff --git a/apps/playback.c b/apps/playback.c
index 0f0f70e..84aa714 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -630,17 +630,17 @@ void audio_resume(void)
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)
pcmbuf_beep(5000, 100, 2500*global_settings.beep);
- LOGFQUEUE("audio > audio Q_AUDIO_SKIP 1");
- queue_post(&audio_queue, Q_AUDIO_SKIP, 1);
+ LOGFQUEUE("audio > audio Q_AUDIO_SKIP %d", direction);
+ queue_post(&audio_queue, Q_AUDIO_SKIP, direction);
/* Update wps while our message travels inside deep playback queues. */
- wps_offset++;
+ wps_offset += direction;
track_changed = true;
}
else
@@ -651,25 +651,14 @@ void audio_next(void)
}
}
-void audio_prev(void)
+void audio_next(void)
{
- if (playlist_check(ci.new_track + wps_offset - 1))
- {
- if (global_settings.beep)
- pcmbuf_beep(5000, 100, 2500*global_settings.beep);
+ audio_skip(1);
+}
- 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_prev(void)
+{
+ audio_skip(-1);
}
void audio_next_dir(void)