summaryrefslogtreecommitdiff
path: root/apps/misc.c
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2010-10-31 15:32:57 +0000
committerThomas Martitz <kugel@rockbox.org>2010-10-31 15:32:57 +0000
commit49f1ec8e8ad0b4c06df01fcdd4b18037fbe3ebcc (patch)
treeb185e604dcea64865389f5b149e754ba8ffd3f75 /apps/misc.c
parentdbe2ac1ec6f4ed88f267d2a4df024b6dc42a87ff (diff)
downloadrockbox-49f1ec8e8ad0b4c06df01fcdd4b18037fbe3ebcc.zip
rockbox-49f1ec8e8ad0b4c06df01fcdd4b18037fbe3ebcc.tar.gz
rockbox-49f1ec8e8ad0b4c06df01fcdd4b18037fbe3ebcc.tar.bz2
rockbox-49f1ec8e8ad0b4c06df01fcdd4b18037fbe3ebcc.tar.xz
Add support multimedia keys/buttons to the core, and adapt Rockbox on android for it (multimedia buttons are found on wired headsets and the lock screen in cyanogenmod).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28421 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/misc.c')
-rw-r--r--apps/misc.c37
1 files changed, 36 insertions, 1 deletions
diff --git a/apps/misc.c b/apps/misc.c
index 8d0ca79..c41f634 100644
--- a/apps/misc.c
+++ b/apps/misc.c
@@ -529,6 +529,7 @@ long default_event_handler_ex(long event, void (*callback)(void *), void *parame
#if CONFIG_PLATFORM & PLATFORM_ANDROID
static bool resume = false;
#endif
+
switch(event)
{
case SYS_BATTERY_UPDATE:
@@ -629,11 +630,45 @@ long default_event_handler_ex(long event, void (*callback)(void *), void *parame
if (resume && playlist_resume() != -1)
{
playlist_start(global_status.resume_index,
- global_status.resume_offset);
+ global_status.resume_offset);
}
resume = false;
return SYS_CALL_HUNG_UP;
#endif
+#ifdef HAVE_MULTIMEDIA_KEYS
+ /* multimedia keys on keyboards, headsets */
+ case BUTTON_MULTIMEDIA_PLAYPAUSE:
+ {
+ int status = audio_status();
+ if (status & AUDIO_STATUS_PLAY)
+ {
+ if (status & AUDIO_STATUS_PAUSE)
+ audio_resume();
+ else
+ audio_pause();
+ }
+ else
+ if (playlist_resume() != -1)
+ {
+ playlist_start(global_status.resume_index,
+ global_status.resume_offset);
+ }
+ return event;
+ }
+ case BUTTON_MULTIMEDIA_NEXT:
+ audio_next();
+ return event;
+ case BUTTON_MULTIMEDIA_PREV:
+ audio_prev();
+ return event;
+ case BUTTON_MULTIMEDIA_STOP:
+ list_stop_handler();
+ return event;
+ case BUTTON_MULTIMEDIA_REW:
+ case BUTTON_MULTIMEDIA_FFWD:
+ /* not supported yet, needs to be done in the WPS */
+ return 0;
+#endif
}
return 0;
}