diff options
| author | 2009-07-15 09:05:23 -0700 | |
|---|---|---|
| committer | 2009-07-15 09:05:23 -0700 | |
| commit | 85d1f158267d64b5660e86fab0baf0432c1dcfbd (patch) | |
| tree | 05c7ccd6fe0f43616538366bd52973c4ad22dccd /libs/ui/EventHub.cpp | |
| parent | 1f872d4e8675b918dafdd730100df7e865d9ce0b (diff) | |
| parent | e3dd884815b2aaeec4241859722ab603e0b1466b (diff) | |
Merge change 7353
* changes:
Implement virtual button support.
Diffstat (limited to 'libs/ui/EventHub.cpp')
| -rw-r--r-- | libs/ui/EventHub.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/libs/ui/EventHub.cpp b/libs/ui/EventHub.cpp index 13c30a795cb2..a72f055c388c 100644 --- a/libs/ui/EventHub.cpp +++ b/libs/ui/EventHub.cpp @@ -240,6 +240,35 @@ int EventHub::getKeycodeState(int32_t deviceId, int code) const return 0; } +status_t EventHub::scancodeToKeycode(int32_t deviceId, int scancode, + int32_t* outKeycode, uint32_t* outFlags) const +{ + AutoMutex _l(mLock); + device_t* device = getDevice(deviceId); + + if (device != NULL && device->layoutMap != NULL) { + status_t err = device->layoutMap->map(scancode, outKeycode, outFlags); + if (err == NO_ERROR) { + return NO_ERROR; + } + } + + if (mHaveFirstKeyboard) { + device = getDevice(mFirstKeyboardId); + + if (device != NULL && device->layoutMap != NULL) { + status_t err = device->layoutMap->map(scancode, outKeycode, outFlags); + if (err == NO_ERROR) { + return NO_ERROR; + } + } + } + + *outKeycode = 0; + *outFlags = 0; + return NAME_NOT_FOUND; +} + EventHub::device_t* EventHub::getDevice(int32_t deviceId) const { if (deviceId == 0) deviceId = mFirstKeyboardId; |