| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/events/keycodes/dom4/keycode_converter.h" | 5 #include "ui/events/keycodes/dom4/keycode_converter.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "ui/events/keycodes/dom3/dom_code.h" | 8 #include "ui/events/keycodes/dom3/dom_code.h" |
| 9 #include "ui/events/keycodes/dom3/dom_key.h" | 9 #include "ui/events/keycodes/dom3/dom_key.h" |
| 10 | 10 |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 return nullptr; | 62 return nullptr; |
| 63 return dom_key_map[index].string; | 63 return dom_key_map[index].string; |
| 64 } | 64 } |
| 65 | 65 |
| 66 // static | 66 // static |
| 67 int KeycodeConverter::InvalidNativeKeycode() { | 67 int KeycodeConverter::InvalidNativeKeycode() { |
| 68 return usb_keycode_map[0].native_keycode; | 68 return usb_keycode_map[0].native_keycode; |
| 69 } | 69 } |
| 70 | 70 |
| 71 // static | 71 // static |
| 72 const char* KeycodeConverter::NativeKeycodeToCode(int native_keycode) { | |
| 73 for (size_t i = 0; i < kKeycodeMapEntries; ++i) { | |
| 74 if (usb_keycode_map[i].native_keycode == native_keycode) { | |
| 75 if (usb_keycode_map[i].code != NULL) | |
| 76 return usb_keycode_map[i].code; | |
| 77 break; | |
| 78 } | |
| 79 } | |
| 80 return ""; | |
| 81 } | |
| 82 | |
| 83 // static | |
| 84 DomCode KeycodeConverter::NativeKeycodeToDomCode(int native_keycode) { | 72 DomCode KeycodeConverter::NativeKeycodeToDomCode(int native_keycode) { |
| 85 for (size_t i = 0; i < kKeycodeMapEntries; ++i) { | 73 for (size_t i = 0; i < kKeycodeMapEntries; ++i) { |
| 86 if (usb_keycode_map[i].native_keycode == native_keycode) { | 74 if (usb_keycode_map[i].native_keycode == native_keycode) { |
| 87 if (usb_keycode_map[i].code != NULL) | 75 if (usb_keycode_map[i].code != NULL) |
| 88 return static_cast<DomCode>(usb_keycode_map[i].usb_keycode); | 76 return static_cast<DomCode>(usb_keycode_map[i].usb_keycode); |
| 89 break; | 77 break; |
| 90 } | 78 } |
| 91 } | 79 } |
| 92 return DomCode::NONE; | 80 return DomCode::NONE; |
| 93 } | 81 } |
| 94 | 82 |
| 95 // static | 83 // static |
| 96 int KeycodeConverter::CodeToNativeKeycode(const char* code) { | |
| 97 if (!code || !*code) | |
| 98 return InvalidNativeKeycode(); | |
| 99 | |
| 100 for (size_t i = 0; i < kKeycodeMapEntries; ++i) { | |
| 101 if (usb_keycode_map[i].code && | |
| 102 strcmp(usb_keycode_map[i].code, code) == 0) { | |
| 103 return usb_keycode_map[i].native_keycode; | |
| 104 } | |
| 105 } | |
| 106 return InvalidNativeKeycode(); | |
| 107 } | |
| 108 | |
| 109 // static | |
| 110 int KeycodeConverter::DomCodeToNativeKeycode(DomCode code) { | 84 int KeycodeConverter::DomCodeToNativeKeycode(DomCode code) { |
| 111 return UsbKeycodeToNativeKeycode(static_cast<uint32_t>(code)); | 85 return UsbKeycodeToNativeKeycode(static_cast<uint32_t>(code)); |
| 112 } | 86 } |
| 113 | 87 |
| 114 // static | 88 // static |
| 115 DomCode KeycodeConverter::CodeStringToDomCode(const char* code) { | 89 DomCode KeycodeConverter::CodeStringToDomCode(const char* code) { |
| 116 if (!code || !*code) { | 90 if (!code || !*code) { |
| 117 LOG(WARNING) << "empty code string"; | 91 LOG(WARNING) << "empty code string"; |
| 118 return DomCode::NONE; | 92 return DomCode::NONE; |
| 119 } | 93 } |
| 120 for (size_t i = 0; i < kKeycodeMapEntries; ++i) { | 94 for (size_t i = 0; i < kKeycodeMapEntries; ++i) { |
| 121 if (usb_keycode_map[i].code && | 95 if (usb_keycode_map[i].code && |
| 122 strcmp(usb_keycode_map[i].code, code) == 0) { | 96 strcmp(usb_keycode_map[i].code, code) == 0) { |
| 123 return static_cast<DomCode>(usb_keycode_map[i].usb_keycode); | 97 return static_cast<DomCode>(usb_keycode_map[i].usb_keycode); |
| 124 } | 98 } |
| 125 } | 99 } |
| 126 LOG(WARNING) << "unrecognized code string '" << code << "'"; | 100 LOG(WARNING) << "unrecognized code string '" << code << "'"; |
| 127 return DomCode::NONE; | 101 return DomCode::NONE; |
| 128 } | 102 } |
| 129 | 103 |
| 130 // static | 104 // static |
| 131 const char* KeycodeConverter::DomCodeToCodeString(DomCode dom_code) { | 105 const char* KeycodeConverter::DomCodeToCodeString(DomCode dom_code) { |
| 132 return UsbKeycodeToCode(static_cast<uint32_t>(dom_code)); | 106 for (size_t i = 0; i < kKeycodeMapEntries; ++i) { |
| 107 if (usb_keycode_map[i].usb_keycode == static_cast<uint32_t>(dom_code)) { |
| 108 if (usb_keycode_map[i].code) |
| 109 return usb_keycode_map[i].code; |
| 110 break; |
| 111 } |
| 112 } |
| 113 return ""; |
| 133 } | 114 } |
| 134 | 115 |
| 135 // static | 116 // static |
| 136 DomKey KeycodeConverter::KeyStringToDomKey(const char* key) { | 117 DomKey KeycodeConverter::KeyStringToDomKey(const char* key) { |
| 137 if (!key || !*key) | 118 if (!key || !*key) |
| 138 return DomKey::NONE; | 119 return DomKey::NONE; |
| 139 for (size_t i = 0; i < kDomKeyMapEntries; ++i) { | 120 for (size_t i = 0; i < kDomKeyMapEntries; ++i) { |
| 140 if (dom_key_map[i].string && | 121 if (dom_key_map[i].string && |
| 141 strcmp(dom_key_map[i].string, key) == 0) { | 122 strcmp(dom_key_map[i].string, key) == 0) { |
| 142 return dom_key_map[i].dom_key; | 123 return dom_key_map[i].dom_key; |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 183 // static | 164 // static |
| 184 uint32_t KeycodeConverter::NativeKeycodeToUsbKeycode(int native_keycode) { | 165 uint32_t KeycodeConverter::NativeKeycodeToUsbKeycode(int native_keycode) { |
| 185 for (size_t i = 0; i < kKeycodeMapEntries; ++i) { | 166 for (size_t i = 0; i < kKeycodeMapEntries; ++i) { |
| 186 if (usb_keycode_map[i].native_keycode == native_keycode) | 167 if (usb_keycode_map[i].native_keycode == native_keycode) |
| 187 return usb_keycode_map[i].usb_keycode; | 168 return usb_keycode_map[i].usb_keycode; |
| 188 } | 169 } |
| 189 return InvalidUsbKeycode(); | 170 return InvalidUsbKeycode(); |
| 190 } | 171 } |
| 191 | 172 |
| 192 // static | 173 // static |
| 193 const char* KeycodeConverter::UsbKeycodeToCode(uint32_t usb_keycode) { | |
| 194 for (size_t i = 0; i < kKeycodeMapEntries; ++i) { | |
| 195 if (usb_keycode_map[i].usb_keycode == usb_keycode) { | |
| 196 if (usb_keycode_map[i].code) | |
| 197 return usb_keycode_map[i].code; | |
| 198 break; | |
| 199 } | |
| 200 } | |
| 201 return ""; | |
| 202 } | |
| 203 | |
| 204 // static | |
| 205 DomCode KeycodeConverter::UsbKeycodeToDomCode(uint32_t usb_keycode) { | 174 DomCode KeycodeConverter::UsbKeycodeToDomCode(uint32_t usb_keycode) { |
| 206 for (size_t i = 0; i < kKeycodeMapEntries; ++i) { | 175 for (size_t i = 0; i < kKeycodeMapEntries; ++i) { |
| 207 if (usb_keycode_map[i].usb_keycode == usb_keycode) | 176 if (usb_keycode_map[i].usb_keycode == usb_keycode) |
| 208 return static_cast<DomCode>(usb_keycode); | 177 return static_cast<DomCode>(usb_keycode); |
| 209 } | 178 } |
| 210 return DomCode::NONE; | 179 return DomCode::NONE; |
| 211 } | 180 } |
| 212 | 181 |
| 213 // static | 182 // static |
| 183 uint32_t KeycodeConverter::DomCodeToUsbKeycode(DomCode dom_code) { |
| 184 for (size_t i = 0; i < kKeycodeMapEntries; ++i) { |
| 185 if (usb_keycode_map[i].usb_keycode == static_cast<uint32_t>(dom_code)) |
| 186 return usb_keycode_map[i].usb_keycode; |
| 187 } |
| 188 return InvalidUsbKeycode(); |
| 189 } |
| 190 |
| 191 // static |
| 214 uint32_t KeycodeConverter::CodeToUsbKeycode(const char* code) { | 192 uint32_t KeycodeConverter::CodeToUsbKeycode(const char* code) { |
| 215 if (!code || !*code) | 193 if (!code || !*code) |
| 216 return InvalidUsbKeycode(); | 194 return InvalidUsbKeycode(); |
| 217 | 195 |
| 218 for (size_t i = 0; i < kKeycodeMapEntries; ++i) { | 196 for (size_t i = 0; i < kKeycodeMapEntries; ++i) { |
| 219 if (usb_keycode_map[i].code && | 197 if (usb_keycode_map[i].code && |
| 220 strcmp(usb_keycode_map[i].code, code) == 0) { | 198 strcmp(usb_keycode_map[i].code, code) == 0) { |
| 221 return usb_keycode_map[i].usb_keycode; | 199 return usb_keycode_map[i].usb_keycode; |
| 222 } | 200 } |
| 223 } | 201 } |
| 224 return InvalidUsbKeycode(); | 202 return InvalidUsbKeycode(); |
| 225 } | 203 } |
| 226 | 204 |
| 227 } // namespace ui | 205 } // namespace ui |
| OLD | NEW |