diff options
author | Matthew Garrett | 2016-05-22 15:17:45 -0700 |
---|---|---|
committer | Matthew Garrett | 2016-05-22 15:23:44 -0700 |
commit | 832d7bb289aef42f5eb48dc0495e1519f6bc5e71 (patch) | |
tree | 8333441d0561ede8d4b07d9b97ddc2a4ac46f83a /backends/platform/android/events.cpp | |
parent | 497859ad90ba1f7e89295f4221f546637c3bd17f (diff) | |
download | scummvm-rg350-832d7bb289aef42f5eb48dc0495e1519f6bc5e71.tar.gz scummvm-rg350-832d7bb289aef42f5eb48dc0495e1519f6bc5e71.tar.bz2 scummvm-rg350-832d7bb289aef42f5eb48dc0495e1519f6bc5e71.zip |
ANDROID: Add support for ScummVM menu on Android TV devices
Android TV devices don't have menu buttons. Remotes should have a play/pause
button (which may send individual play and pause events rather than a
combined event) and gamepads should have a Y button. Use these to open the
menu.
Diffstat (limited to 'backends/platform/android/events.cpp')
-rw-r--r-- | backends/platform/android/events.cpp | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/backends/platform/android/events.cpp b/backends/platform/android/events.cpp index 8039981a92..b146945a01 100644 --- a/backends/platform/android/events.cpp +++ b/backends/platform/android/events.cpp @@ -101,7 +101,9 @@ enum { JKEYCODE_MEDIA_NEXT = 87, JKEYCODE_MEDIA_PREVIOUS = 88, JKEYCODE_MEDIA_REWIND = 89, - JKEYCODE_MEDIA_FAST_FORWARD = 90 + JKEYCODE_MEDIA_FAST_FORWARD = 90, + JKEYCODE_MEDIA_PLAY = 126, + JKEYCODE_MEDIA_PAUSE = 127 }; // five-way navigation control @@ -380,6 +382,19 @@ void OSystem_Android::pushEvent(int type, int arg1, int arg2, int arg3, return; + case JKEYCODE_MEDIA_PAUSE: + case JKEYCODE_MEDIA_PLAY: + case JKEYCODE_MEDIA_PLAY_PAUSE: + if (arg1 == JACTION_DOWN) { + e.type = Common::EVENT_MAINMENU; + + lockMutex(_event_queue_lock); + _event_queue.push(e); + unlockMutex(_event_queue_lock); + } + + return; + case JKEYCODE_CAMERA: case JKEYCODE_SEARCH: if (arg1 == JACTION_DOWN) @@ -888,6 +903,10 @@ void OSystem_Android::pushEvent(int type, int arg1, int arg2, int arg3, e.kbd.ascii = Common::ASCII_ESCAPE; break; + case JKEYCODE_BUTTON_Y: + e.type = Common::EVENT_MAINMENU; + break; + default: LOGW("unmapped gamepad key: %d", arg2); return; |