Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(549)

Unified Diff: remoting/client/native_device_keymap_ios.cc

Issue 2868383003: [CRD iOS] Send key events to the session. (Closed)
Patch Set: Adding backspace support to the keyboard. Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: remoting/client/native_device_keymap_ios.cc
diff --git a/remoting/client/native_device_keymap_ios.cc b/remoting/client/native_device_keymap_ios.cc
index ebaaa71350e8799e9e3a284855fc8915106cef84..8662a213cf15d182fcb4d7f1a881bd4bb4f5e273 100644
--- a/remoting/client/native_device_keymap_ios.cc
+++ b/remoting/client/native_device_keymap_ios.cc
@@ -8,197 +8,141 @@
namespace {
-// TODO(nicholss): Copied from Android, no changes yet. See how broken this is.
-
-// These must be defined in the same order as the Android keycodes in
-// <android/keycodes.h> and
-// "ui/events/keycodes/keyboard_code_conversion_android.cc" . Some of these
-// mappings assume a US keyboard layout for now.
-const uint32_t usb_keycodes[] = {
- 0, // UNKNOWN
- 0, // SOFT_LEFT
- 0, // SOFT_RIGHT
- 0, // HOME
- 0, // BACK
- 0, // CALL
- 0, // ENDCALL
-
- 0x070027, // 0
- 0x07001e, // 1
- 0x07001f, // 2
- 0x070020, // 3
- 0x070021, // 4
- 0x070022, // 5
- 0x070023, // 6
- 0x070024, // 7
- 0x070025, // 8
- 0x070026, // 9
-
- 0, // STAR
- 0, // POUND
- 0x070052, // DPAD_UP
- 0x070051, // DPAD_DOWN
- 0x070050, // DPAD_LEFT
- 0x07004f, // DPAD_RIGHT
- 0, // DPAD_CENTER
- 0, // VOLUME_UP
- 0, // VOLUME_DOWN
- 0, // POWER
- 0, // CAMERA
- 0, // CLEAR
-
- 0x070004, // A
- 0x070005, // B
- 0x070006, // C
- 0x070007, // D
- 0x070008, // E
- 0x070009, // F
- 0x07000a, // G
- 0x07000b, // H
- 0x07000c, // I
- 0x07000d, // J
- 0x07000e, // K
- 0x07000f, // L
- 0x070010, // M
- 0x070011, // N
- 0x070012, // O
- 0x070013, // P
- 0x070014, // Q
- 0x070015, // R
- 0x070016, // S
- 0x070017, // T
- 0x070018, // U
- 0x070019, // V
- 0x07001a, // W
- 0x07001b, // X
- 0x07001c, // Y
- 0x07001d, // Z
-
- 0x070036, // COMMA
- 0x070037, // PERIOD
-
- 0x0700e2, // ALT_LEFT
- 0x0700e6, // ALT_RIGHT
- 0x0700e1, // SHIFT_LEFT
- 0x0700e5, // SHIFT_RIGHT
-
- 0x07002b, // TAB
- 0x07002c, // SPACE
-
- 0, // SYM
- 0, // EXPLORER
- 0, // ENVELOPE
-
- 0x070028, // ENTER
- 0x07002a, // DEL (backspace)
-
- 0x070035, // GRAVE (backtick)
- 0x07002d, // MINUS
- 0x07002e, // EQUALS
- 0x07002f, // LEFT_BRACKET
- 0x070030, // RIGHT_BRACKET
- 0x070031, // BACKSLASH
- 0x070033, // SEMICOLON
- 0x070034, // APOSTROPHE
- 0x070038, // SLASH
-
- 0, // AT
- 0, // NUM
- 0, // HEADSETHOOK
- 0, // FOCUS
- 0, // PLUS
- 0, // MENU
- 0, // NOTIFICATION
- 0, // SEARCH
- 0, // MEDIA_PLAY_PAUSE
- 0, // MEDIA_STOP
- 0, // MEDIA_NEXT
- 0, // MEDIA_PREVIOUS
- 0, // MEDIA_REWIND
- 0, // MEDIA_FAST_FORWARD
- 0, // MUTE
-
- 0x07004b, // PAGE_UP
- 0x07004e, // PAGE_DOWN
-
- 0, // PICTSYMBOLS
- 0, // SWITCH_CHARSET
- 0, // BUTTON_A
- 0, // BUTTON_B
- 0, // BUTTON_C
- 0, // BUTTON_X
- 0, // BUTTON_Y
- 0, // BUTTON_Z
- 0, // BUTTON_L1
- 0, // BUTTON_R1
- 0, // BUTTON_L2
- 0, // BUTTON_R2
- 0, // BUTTON_THUMBL
- 0, // BUTTON_THUMBR
- 0, // BUTTON_START
- 0, // BUTTON_SELECT
- 0, // BUTTON_MODE
-
- 0x070029, // ESCAPE
- 0x07004c, // FORWARD_DEL
-
- 0x0700e0, // CTRL_LEFT
- 0x0700e4, // CTRL_RIGHT
- 0, // CAPS_LOCK
- 0, // SCROLL_LOCK
- 0x0700e3, // META_LEFT
- 0x0700e7, // META_RIGHT
- 0, // FUNCTION
-
- 0x070046, // SYSRQ (printscreen)
- 0x070048, // BREAK (pause)
- 0x07004a, // MOVE_HOME (home)
- 0x07004d, // MOVE_END (end)
- 0x070049, // INSERT
-
- 0, // FORWARD
- 0, // MEDIA_PLAY
- 0, // MEDIA_PAUSE
- 0, // MEDIA_CLOSE
- 0, // MEDIA_EJECT
- 0, // MEDIA_RECORD
-
- 0x07003a, // F1
- 0x07003b, // F2
- 0x07003c, // F3
- 0x07003d, // F4
- 0x07003e, // F5
- 0x07003f, // F6
- 0x070040, // F7
- 0x070041, // F8
- 0x070042, // F9
- 0x070043, // F10
- 0x070044, // F11
- 0x070045, // F12
-
- 0, // NUM_LOCK
-
- 0x070062, // NUMPAD_0
- 0x070059, // NUMPAD_1
- 0x07005a, // NUMPAD_2
- 0x07005b, // NUMPAD_3
- 0x07005c, // NUMPAD_4
- 0x07005d, // NUMPAD_5
- 0x07005e, // NUMPAD_6
- 0x07005f, // NUMPAD_7
- 0x070060, // NUMPAD_8
- 0x070061, // NUMPAD_9
-
- 0x070054, // NUMPAD_DIVIDE
- 0x070055, // NUMPAD_MULTIPLY
- 0x070056, // NUMPAD_SUBTRACT
- 0x070057, // NUMPAD_ADD
- 0x070063, // NUMPAD_DOT
- 0x070085, // NUMPAD_COMMA
- 0x070058, // NUMPAD_ENTER
- 0x070067, // NUMPAD_EQUALS
- 0x0700b6, // NUMPAD_LEFT_PAREN
- 0x0700b7, // NUMPAD_RIGHT_PAREN
+const remoting::KeycodeWithModifier ascii_keycode_combo[] = {
+ // [#] Numbering fields by index.
+ {0, 0}, // [0]
+ {0, 0}, //
+ {0, 0}, //
+ {0, 0}, //
+ {0, 0}, //
+ {0, 0}, //
+ {0, 0}, //
+ {0, 0}, //
+ {0, 0}, //
+ {0, 0}, //
+ {0x070028, 0}, // [10] ENTER
+ {0, 0}, //
+ {0, 0}, //
+ {0, 0}, //
+ {0, 0}, //
+ {0, 0}, //
+ {0, 0}, //
+ {0, 0}, //
+ {0, 0}, //
+ {0, 0}, //
+ {0, 0}, // [20]
+ {0, 0}, //
+ {0, 0}, //
+ {0, 0}, //
+ {0, 0}, //
+ {0, 0}, //
+ {0, 0}, //
+ {0, 0}, //
+ {0, 0}, //
+ {0, 0}, //
+ {0, 0}, // [30]
+ {0, 0}, //
+ {0x07002c, 0}, // SPACE
+ {0x07001e, 0x0700e1}, // !
+ {0x070034, 0x0700e1}, // "
+ {0x070020, 0x0700e1}, // #
+ {0x070021, 0x0700e1}, // $
+ {0x070022, 0x0700e1}, // %
+ {0x070024, 0x0700e1}, // &
+ {0x070034, 0}, // '
+ {0x070026, 0x0700e1}, // [40] (
+ {0x070027, 0x0700e1}, // )
+ {0x070025, 0x0700e1}, // *
+ {0x07002e, 0x0700e1}, // +
+ {0x070036, 0}, // ,
+ {0x07002d, 0}, // -
+ {0x070037, 0}, // .
+ {0x070038, 0}, // /
+ {0x070027, 0}, // 0
+ {0x07001e, 0}, // 1
+ {0x07001f, 0}, // [50] 2
+ {0x070020, 0}, // 3
+ {0x070021, 0}, // 4
+ {0x070022, 0}, // 5
+ {0x070023, 0}, // 6
+ {0x070024, 0}, // 7
+ {0x070025, 0}, // 8
+ {0x070026, 0}, // 9
+ {0x070033, 0x0700e1}, // :
+ {0x070033, 0}, // ;
+ {0x070036, 0x0700e1}, // [60] <
+ {0x07002e, 0}, // =
+ {0x070037, 0x0700e1}, // >
+ {0x070038, 0x0700e1}, // ?
+ {0x07001f, 0x0700e1}, // @
+ {0x070004, 0x0700e1}, // A
+ {0x070005, 0x0700e1}, // B
+ {0x070006, 0x0700e1}, // C
+ {0x070007, 0x0700e1}, // D
+ {0x070008, 0x0700e1}, // E
+ {0x070009, 0x0700e1}, // [70] F
+ {0x07000a, 0x0700e1}, // G
+ {0x07000b, 0x0700e1}, // H
+ {0x07000c, 0x0700e1}, // I
+ {0x07000d, 0x0700e1}, // J
+ {0x07000e, 0x0700e1}, // K
+ {0x07000f, 0x0700e1}, // L
+ {0x070010, 0x0700e1}, // M
+ {0x070011, 0x0700e1}, // N
+ {0x070012, 0x0700e1}, // O
+ {0x070013, 0x0700e1}, // [80] P
+ {0x070014, 0x0700e1}, // Q
+ {0x070015, 0x0700e1}, // R
+ {0x070016, 0x0700e1}, // S
+ {0x070017, 0x0700e1}, // T
+ {0x070018, 0x0700e1}, // U
+ {0x070019, 0x0700e1}, // V
+ {0x07001a, 0x0700e1}, // W
+ {0x07001b, 0x0700e1}, // X
+ {0x07001c, 0x0700e1}, // Y
+ {0x07001d, 0x0700e1}, // [90] Z
+ {0x07002f, 0}, // [
+ {0x070031, 0}, // BACKSLASH
+ {0x070030, 0}, // ]
+ {0x070023, 0x0700e1}, // ^
+ {0x07002d, 0x0700e1}, // _
+ {0, 0}, //
+ {0x070004, 0}, // a
+ {0x070005, 0}, // b
+ {0x070006, 0}, // c
+ {0x070007, 0}, // [100] d
+ {0x070008, 0}, // e
+ {0x070009, 0}, // f
+ {0x07000a, 0}, // g
+ {0x07000b, 0}, // h
+ {0x07000c, 0}, // i
+ {0x07000d, 0}, // j
+ {0x07000e, 0}, // k
+ {0x07000f, 0}, // l
+ {0x070010, 0}, // m
+ {0x070011, 0}, // [110] n
+ {0x070012, 0}, // o
+ {0x070013, 0}, // p
+ {0x070014, 0}, // q
+ {0x070015, 0}, // r
+ {0x070016, 0}, // s
+ {0x070017, 0}, // t
+ {0x070018, 0}, // u
+ {0x070019, 0}, // v
+ {0x07001a, 0}, // w
+ {0x07001b, 0}, // [120] x
+ {0x07001c, 0}, // y
+ {0x07001d, 0}, // z
+ {0x07002f, 0x0700e1}, // {
+ {0x070031, 0x0700e1}, // |
+ {0x070030, 0x0700e1}, // }
+ {0x070035, 0x0700e1}, // ~
+ {0, 0}, // [127]
+ {0x0700e1, 0}, // SHIFT
+ {0x07002a, 0}, // BACKSPACE
+ {0x0700e0, 0}, // CTRL
+ {0x0700e2, 0}, // ALT
+ {0x07004c, 0} // DEL
};
} // namespace
@@ -206,12 +150,18 @@ const uint32_t usb_keycodes[] = {
namespace remoting {
uint32_t NativeDeviceKeycodeToUsbKeycode(size_t device_keycode) {
- if (device_keycode >= sizeof(usb_keycodes) / sizeof(uint32_t)) {
- LOG(WARNING) << "Attempted to decode out-of-range Android keycode";
- return 0;
+ NOTIMPLEMENTED();
Yuwei 2017/05/15 19:38:07 input_stub_->SendKeyEvent(0, key.keycode, key.keyd
nicholss 2017/05/16 21:45:06 Yes, I removed the NOTIMPLEMENTED() btw.
+ return device_keycode;
+}
+
+KeycodeWithModifier AsciiToUsbKeycodeWithModifier(const char& ascii) {
+ size_t ascii_index = (size_t)ascii;
+ if (ascii_index >= sizeof(ascii_keycode_combo) / sizeof(uint32_t)) {
+ LOG(WARNING) << "Attempted to decode out-of-range ascii character.";
+ return ascii_keycode_combo[0];
}
- return usb_keycodes[device_keycode];
+ return ascii_keycode_combo[ascii_index];
}
} // namespace remoting

Powered by Google App Engine
This is Rietveld 408576698