1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "content/renderer/pepper/usb_key_code_conversion.h" 6 7 #include "base/basictypes.h" 8 #include "third_party/WebKit/public/web/WebInputEvent.h" 9 #include "ui/events/keycodes/dom4/keycode_converter.h" 10 11 using blink::WebKeyboardEvent; 12 13 namespace content { 14 15 uint32_t UsbKeyCodeForKeyboardEvent(const WebKeyboardEvent& key_event) { 16 // Extract the scancode and extended bit from the native key event's lParam. 17 int scancode = (key_event.nativeKeyCode >> 16) & 0x000000FF; 18 if ((key_event.nativeKeyCode & (1 << 24)) != 0) 19 scancode |= 0xe000; 20 21 ui::KeycodeConverter* key_converter = ui::KeycodeConverter::GetInstance(); 22 return key_converter->NativeKeycodeToUsbKeycode(scancode); 23 } 24 25 const char* CodeForKeyboardEvent(const WebKeyboardEvent& key_event) { 26 // Extract the scancode and extended bit from the native key event's lParam. 27 int scancode = (key_event.nativeKeyCode >> 16) & 0x000000FF; 28 if ((key_event.nativeKeyCode & (1 << 24)) != 0) 29 scancode |= 0xe000; 30 31 ui::KeycodeConverter* key_converter = ui::KeycodeConverter::GetInstance(); 32 return key_converter->NativeKeycodeToCode(scancode); 33 } 34 35 } // namespace content 36