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 11using blink::WebKeyboardEvent; 12 13namespace content { 14 15uint32_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 return ui::KeycodeConverter::NativeKeycodeToUsbKeycode(scancode); 22} 23 24const char* CodeForKeyboardEvent(const WebKeyboardEvent& key_event) { 25 // Extract the scancode and extended bit from the native key event's lParam. 26 int scancode = (key_event.nativeKeyCode >> 16) & 0x000000FF; 27 if ((key_event.nativeKeyCode & (1 << 24)) != 0) 28 scancode |= 0xe000; 29 30 return ui::KeycodeConverter::NativeKeycodeToCode(scancode); 31} 32 33} // namespace content 34