diff options
| author | 2009-07-15 09:05:23 -0700 | |
|---|---|---|
| committer | 2009-07-15 09:05:23 -0700 | |
| commit | 29b936e8a96ed62f617b87db417058c25147babd (patch) | |
| tree | a060667bc66bf5a44c72c0243029fb3efd7d965e /libs/ui/EventHub.cpp | |
| parent | f88cdf83b01355675b46b447891ca0ad686f26af (diff) | |
| parent | c968c3a9c782eaf44a5772cd388e5c690e5be4f3 (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 13c30a795c..a72f055c38 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; |