diff options
| author | Thomas Martitz <kugel@rockbox.org> | 2010-10-31 15:32:57 +0000 |
|---|---|---|
| committer | Thomas Martitz <kugel@rockbox.org> | 2010-10-31 15:32:57 +0000 |
| commit | 49f1ec8e8ad0b4c06df01fcdd4b18037fbe3ebcc (patch) | |
| tree | b185e604dcea64865389f5b149e754ba8ffd3f75 /apps/misc.c | |
| parent | dbe2ac1ec6f4ed88f267d2a4df024b6dc42a87ff (diff) | |
| download | rockbox-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.c | 37 |
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; } |