@limrun/ui 0.16.0 → 0.17.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +64 -0
- package/dist/GLTFLoader-Cami_vza.mjs +1679 -0
- package/dist/GLTFLoader-DeCLxW_q.js +1 -0
- package/dist/components/duo-button-hinge.d.ts +16 -0
- package/dist/components/duo-controls.d.ts +21 -0
- package/dist/components/duo-flat-frame.d.ts +7 -0
- package/dist/components/duo-flat-geometry.d.ts +52 -0
- package/dist/components/duo-fold-motion.d.ts +27 -0
- package/dist/components/duo-fold-renderer.d.ts +19 -0
- package/dist/components/duo-fold-timing.d.ts +1 -0
- package/dist/components/duo-frame.d.ts +16 -0
- package/dist/components/duo-hardware.d.ts +20 -0
- package/dist/components/duo-loading.d.ts +8 -0
- package/dist/components/duo-model.d.ts +19 -0
- package/dist/components/duo-screen-handoff.d.ts +4 -0
- package/dist/components/duo-view.d.ts +9 -0
- package/dist/components/remote-control.d.ts +5 -1
- package/dist/core/duo.d.ts +63 -0
- package/dist/duo-fold-renderer-BXejNHcY.mjs +257 -0
- package/dist/duo-fold-renderer-DdltAnF7.js +53 -0
- package/dist/duo-frame-Cmw4p2uN.mjs +26767 -0
- package/dist/duo-frame-iMtrvx_a.js +4059 -0
- package/dist/duo-view-BAh-w2Kz.js +1 -0
- package/dist/duo-view-D9Ae00rj.mjs +512 -0
- package/dist/index.cjs +1 -1
- package/dist/index.css +1 -1
- package/dist/index.js +2 -2
- package/dist/lite.cjs +1 -1
- package/dist/lite.js +1 -1
- package/dist/remote-control-B2jZpf3c.js +1 -0
- package/dist/remote-control-DiddxS8l.mjs +2883 -0
- package/package.json +8 -2
- package/dist/demo.d.ts +0 -1
- package/dist/remote-control-BRgbD7yo.mjs +0 -2516
- package/dist/remote-control-VISrP1zI.js +0 -1
- package/index.html +0 -199
- package/src/assets/Apple_logo_white.svg +0 -4
- package/src/assets/android_boot.gif +0 -0
- package/src/assets/android_boot.webp +0 -0
- package/src/assets/iphone16pro_black.webp +0 -0
- package/src/assets/iphone16pro_black_bg.webp +0 -0
- package/src/assets/iphone16pro_black_landscape.webp +0 -0
- package/src/assets/iphone16pro_black_landscape_bg.webp +0 -0
- package/src/assets/pixel9_black.webp +0 -0
- package/src/assets/pixel9_black_landscape.webp +0 -0
- package/src/assets/pixel_tablet_landscape.webp +0 -0
- package/src/assets/pixel_tablet_portrait.webp +0 -0
- package/src/components/device-install/index.ts +0 -1
- package/src/components/inspect-overlay.css +0 -223
- package/src/components/inspect-overlay.tsx +0 -437
- package/src/components/remote-control-framed.tsx +0 -14
- package/src/components/remote-control.css +0 -131
- package/src/components/remote-control.test.ts +0 -34
- package/src/components/remote-control.tsx +0 -3853
- package/src/core/ax-fetcher.test.ts +0 -418
- package/src/core/ax-fetcher.ts +0 -387
- package/src/core/ax-tree.test.ts +0 -491
- package/src/core/ax-tree.ts +0 -416
- package/src/core/camera.test.ts +0 -155
- package/src/core/camera.ts +0 -133
- package/src/core/constants.ts +0 -344
- package/src/core/webrtc-messages.ts +0 -148
- package/src/demo.tsx +0 -269
- package/src/frame-assets.ts +0 -22
- package/src/hooks/index.ts +0 -1
- package/src/index.ts +0 -29
- package/src/lite.test.ts +0 -30
- package/src/lite.ts +0 -30
- package/src/vite-env.d.ts +0 -1
- package/tsconfig.json +0 -26
- package/tsconfig.node.json +0 -26
- package/vite.config.ts +0 -35
- package/vitest.config.ts +0 -24
package/src/core/constants.ts
DELETED
|
@@ -1,344 +0,0 @@
|
|
|
1
|
-
export const CONTROL_MSG_TYPE = {
|
|
2
|
-
INJECT_KEYCODE: 0,
|
|
3
|
-
INJECT_TEXT: 1,
|
|
4
|
-
INJECT_TOUCH_EVENT: 2,
|
|
5
|
-
// iOS-specific: send two touch points in one message (Option/Alt+drag pinch)
|
|
6
|
-
INJECT_TWO_FINGER_TOUCH_EVENT: 18,
|
|
7
|
-
INJECT_SCROLL_EVENT: 3,
|
|
8
|
-
BACK_OR_SCREEN_ON: 4,
|
|
9
|
-
EXPAND_NOTIFICATION_PANEL: 5,
|
|
10
|
-
EXPAND_SETTINGS_PANEL: 6,
|
|
11
|
-
COLLAPSE_PANELS: 7,
|
|
12
|
-
GET_CLIPBOARD: 8,
|
|
13
|
-
SET_CLIPBOARD: 9,
|
|
14
|
-
SET_DISPLAY_POWER: 10,
|
|
15
|
-
ROTATE_DEVICE: 11,
|
|
16
|
-
} as const;
|
|
17
|
-
|
|
18
|
-
export const AMOTION_EVENT = {
|
|
19
|
-
ACTION_DOWN: 0,
|
|
20
|
-
ACTION_UP: 1,
|
|
21
|
-
ACTION_MOVE: 2,
|
|
22
|
-
ACTION_CANCEL: 3,
|
|
23
|
-
ACTION_POINTER_DOWN: 5,
|
|
24
|
-
ACTION_POINTER_UP: 6,
|
|
25
|
-
BUTTON_PRIMARY: 1,
|
|
26
|
-
BUTTON_SECONDARY: 2,
|
|
27
|
-
BUTTON_TERTIARY: 4,
|
|
28
|
-
} as const;
|
|
29
|
-
|
|
30
|
-
export const ANDROID_KEYS = {
|
|
31
|
-
// Actions
|
|
32
|
-
ACTION_DOWN: 0,
|
|
33
|
-
ACTION_UP: 1,
|
|
34
|
-
|
|
35
|
-
// Meta state flags (from android.view.KeyEvent)
|
|
36
|
-
META_NONE: 0,
|
|
37
|
-
META_SHIFT_ON: 1,
|
|
38
|
-
META_ALT_ON: 2,
|
|
39
|
-
META_CTRL_ON: 4096, // META_CTRL_LEFT_ON | META_CTRL_RIGHT_ON
|
|
40
|
-
META_META_ON: 65536, // META_META_LEFT_ON | META_META_RIGHT_ON
|
|
41
|
-
|
|
42
|
-
// Keycodes (from android.view.KeyEvent)
|
|
43
|
-
KEYCODE_UNKNOWN: 0,
|
|
44
|
-
KEYCODE_SOFT_LEFT: 1,
|
|
45
|
-
KEYCODE_SOFT_RIGHT: 2,
|
|
46
|
-
KEYCODE_HOME: 3,
|
|
47
|
-
KEYCODE_BACK: 4,
|
|
48
|
-
KEYCODE_CALL: 5,
|
|
49
|
-
KEYCODE_ENDCALL: 6,
|
|
50
|
-
KEYCODE_0: 7,
|
|
51
|
-
KEYCODE_1: 8,
|
|
52
|
-
KEYCODE_2: 9,
|
|
53
|
-
KEYCODE_3: 10,
|
|
54
|
-
KEYCODE_4: 11,
|
|
55
|
-
KEYCODE_5: 12,
|
|
56
|
-
KEYCODE_6: 13,
|
|
57
|
-
KEYCODE_7: 14,
|
|
58
|
-
KEYCODE_8: 15,
|
|
59
|
-
KEYCODE_9: 16,
|
|
60
|
-
KEYCODE_STAR: 17,
|
|
61
|
-
KEYCODE_POUND: 18,
|
|
62
|
-
DPAD_UP: 19, // KEYCODE_DPAD_UP
|
|
63
|
-
DPAD_DOWN: 20, // KEYCODE_DPAD_DOWN
|
|
64
|
-
DPAD_LEFT: 21, // KEYCODE_DPAD_LEFT
|
|
65
|
-
DPAD_RIGHT: 22, // KEYCODE_DPAD_RIGHT
|
|
66
|
-
KEYCODE_DPAD_CENTER: 23,
|
|
67
|
-
KEYCODE_VOLUME_UP: 24,
|
|
68
|
-
KEYCODE_VOLUME_DOWN: 25,
|
|
69
|
-
KEYCODE_POWER: 26,
|
|
70
|
-
KEYCODE_CAMERA: 27,
|
|
71
|
-
KEYCODE_CLEAR: 28,
|
|
72
|
-
KEYCODE_A: 29,
|
|
73
|
-
KEYCODE_B: 30,
|
|
74
|
-
KEYCODE_C: 31,
|
|
75
|
-
KEYCODE_D: 32,
|
|
76
|
-
KEYCODE_E: 33,
|
|
77
|
-
KEYCODE_F: 34,
|
|
78
|
-
KEYCODE_G: 35,
|
|
79
|
-
KEYCODE_H: 36,
|
|
80
|
-
KEYCODE_I: 37,
|
|
81
|
-
KEYCODE_J: 38,
|
|
82
|
-
KEYCODE_K: 39,
|
|
83
|
-
KEYCODE_L: 40,
|
|
84
|
-
KEYCODE_M: 41,
|
|
85
|
-
KEYCODE_N: 42,
|
|
86
|
-
KEYCODE_O: 43,
|
|
87
|
-
KEYCODE_P: 44,
|
|
88
|
-
KEYCODE_Q: 45,
|
|
89
|
-
KEYCODE_R: 46,
|
|
90
|
-
KEYCODE_S: 47,
|
|
91
|
-
KEYCODE_T: 48,
|
|
92
|
-
KEYCODE_U: 49,
|
|
93
|
-
KEYCODE_V: 50,
|
|
94
|
-
KEYCODE_W: 51,
|
|
95
|
-
KEYCODE_X: 52,
|
|
96
|
-
KEYCODE_Y: 53,
|
|
97
|
-
KEYCODE_Z: 54,
|
|
98
|
-
KEYCODE_COMMA: 55,
|
|
99
|
-
KEYCODE_PERIOD: 56,
|
|
100
|
-
KEYCODE_ALT_LEFT: 57,
|
|
101
|
-
KEYCODE_ALT_RIGHT: 58,
|
|
102
|
-
KEYCODE_SHIFT_LEFT: 59,
|
|
103
|
-
KEYCODE_SHIFT_RIGHT: 60,
|
|
104
|
-
KEYCODE_TAB: 61,
|
|
105
|
-
KEYCODE_SPACE: 62,
|
|
106
|
-
KEYCODE_SYM: 63,
|
|
107
|
-
KEYCODE_EXPLORER: 64,
|
|
108
|
-
KEYCODE_ENVELOPE: 65,
|
|
109
|
-
ENTER: 66, // KEYCODE_ENTER
|
|
110
|
-
DEL: 67, // KEYCODE_DEL (Backspace)
|
|
111
|
-
KEYCODE_GRAVE: 68, // `
|
|
112
|
-
KEYCODE_MINUS: 69, // -
|
|
113
|
-
KEYCODE_EQUALS: 70, // =
|
|
114
|
-
KEYCODE_LEFT_BRACKET: 71, // [
|
|
115
|
-
KEYCODE_RIGHT_BRACKET: 72, // ]
|
|
116
|
-
KEYCODE_BACKSLASH: 73, // \
|
|
117
|
-
KEYCODE_SEMICOLON: 74, // ;
|
|
118
|
-
KEYCODE_APOSTROPHE: 75, // '
|
|
119
|
-
KEYCODE_SLASH: 76, // /
|
|
120
|
-
KEYCODE_AT: 77, // @
|
|
121
|
-
KEYCODE_NUM: 78,
|
|
122
|
-
KEYCODE_HEADSETHOOK: 79,
|
|
123
|
-
KEYCODE_FOCUS: 80,
|
|
124
|
-
KEYCODE_PLUS: 81,
|
|
125
|
-
MENU: 82, // KEYCODE_MENU
|
|
126
|
-
KEYCODE_NOTIFICATION: 83,
|
|
127
|
-
KEYCODE_SEARCH: 84,
|
|
128
|
-
KEYCODE_MEDIA_PLAY_PAUSE: 85,
|
|
129
|
-
KEYCODE_MEDIA_STOP: 86,
|
|
130
|
-
KEYCODE_MEDIA_NEXT: 87,
|
|
131
|
-
KEYCODE_MEDIA_PREVIOUS: 88,
|
|
132
|
-
KEYCODE_MEDIA_REWIND: 89,
|
|
133
|
-
KEYCODE_MEDIA_FAST_FORWARD: 90,
|
|
134
|
-
KEYCODE_MUTE: 91,
|
|
135
|
-
KEYCODE_PAGE_UP: 92,
|
|
136
|
-
KEYCODE_PAGE_DOWN: 93,
|
|
137
|
-
KEYCODE_PICTSYMBOLS: 94,
|
|
138
|
-
KEYCODE_SWITCH_CHARSET: 95,
|
|
139
|
-
KEYCODE_BUTTON_A: 96,
|
|
140
|
-
KEYCODE_BUTTON_B: 97,
|
|
141
|
-
KEYCODE_BUTTON_C: 98,
|
|
142
|
-
KEYCODE_BUTTON_X: 99,
|
|
143
|
-
KEYCODE_BUTTON_Y: 100,
|
|
144
|
-
KEYCODE_BUTTON_Z: 101,
|
|
145
|
-
KEYCODE_BUTTON_L1: 102,
|
|
146
|
-
KEYCODE_BUTTON_R1: 103,
|
|
147
|
-
KEYCODE_BUTTON_L2: 104,
|
|
148
|
-
KEYCODE_BUTTON_R2: 105,
|
|
149
|
-
KEYCODE_BUTTON_THUMBL: 106,
|
|
150
|
-
KEYCODE_BUTTON_THUMBR: 107,
|
|
151
|
-
KEYCODE_BUTTON_START: 108,
|
|
152
|
-
KEYCODE_BUTTON_SELECT: 109,
|
|
153
|
-
KEYCODE_BUTTON_MODE: 110,
|
|
154
|
-
KEYCODE_ESCAPE: 111,
|
|
155
|
-
FORWARD_DEL: 112, // KEYCODE_FORWARD_DEL (Delete key)
|
|
156
|
-
KEYCODE_CTRL_LEFT: 113,
|
|
157
|
-
KEYCODE_CTRL_RIGHT: 114,
|
|
158
|
-
KEYCODE_CAPS_LOCK: 115,
|
|
159
|
-
KEYCODE_SCROLL_LOCK: 116,
|
|
160
|
-
KEYCODE_META_LEFT: 117,
|
|
161
|
-
KEYCODE_META_RIGHT: 118,
|
|
162
|
-
KEYCODE_FUNCTION: 119,
|
|
163
|
-
KEYCODE_SYSRQ: 120,
|
|
164
|
-
KEYCODE_BREAK: 121,
|
|
165
|
-
KEYCODE_MOVE_HOME: 122,
|
|
166
|
-
KEYCODE_MOVE_END: 123,
|
|
167
|
-
KEYCODE_INSERT: 124,
|
|
168
|
-
KEYCODE_FORWARD: 125,
|
|
169
|
-
KEYCODE_MEDIA_PLAY: 126,
|
|
170
|
-
KEYCODE_MEDIA_PAUSE: 127,
|
|
171
|
-
KEYCODE_MEDIA_CLOSE: 128,
|
|
172
|
-
KEYCODE_MEDIA_EJECT: 129,
|
|
173
|
-
KEYCODE_MEDIA_RECORD: 130,
|
|
174
|
-
KEYCODE_F1: 131,
|
|
175
|
-
KEYCODE_F2: 132,
|
|
176
|
-
KEYCODE_F3: 133,
|
|
177
|
-
KEYCODE_F4: 134,
|
|
178
|
-
KEYCODE_F5: 135,
|
|
179
|
-
KEYCODE_F6: 136,
|
|
180
|
-
KEYCODE_F7: 137,
|
|
181
|
-
KEYCODE_F8: 138,
|
|
182
|
-
KEYCODE_F9: 139,
|
|
183
|
-
KEYCODE_F10: 140,
|
|
184
|
-
KEYCODE_F11: 141,
|
|
185
|
-
KEYCODE_F12: 142,
|
|
186
|
-
KEYCODE_NUM_LOCK: 143,
|
|
187
|
-
KEYCODE_NUMPAD_0: 144,
|
|
188
|
-
KEYCODE_NUMPAD_1: 145,
|
|
189
|
-
KEYCODE_NUMPAD_2: 146,
|
|
190
|
-
KEYCODE_NUMPAD_3: 147,
|
|
191
|
-
KEYCODE_NUMPAD_4: 148,
|
|
192
|
-
KEYCODE_NUMPAD_5: 149,
|
|
193
|
-
KEYCODE_NUMPAD_6: 150,
|
|
194
|
-
KEYCODE_NUMPAD_7: 151,
|
|
195
|
-
KEYCODE_NUMPAD_8: 152,
|
|
196
|
-
KEYCODE_NUMPAD_9: 153,
|
|
197
|
-
KEYCODE_NUMPAD_DIVIDE: 154,
|
|
198
|
-
KEYCODE_NUMPAD_MULTIPLY: 155,
|
|
199
|
-
KEYCODE_NUMPAD_SUBTRACT: 156,
|
|
200
|
-
KEYCODE_NUMPAD_ADD: 157,
|
|
201
|
-
KEYCODE_NUMPAD_DOT: 158,
|
|
202
|
-
KEYCODE_NUMPAD_COMMA: 159,
|
|
203
|
-
KEYCODE_NUMPAD_ENTER: 160,
|
|
204
|
-
KEYCODE_NUMPAD_EQUALS: 161,
|
|
205
|
-
KEYCODE_NUMPAD_LEFT_PAREN: 162,
|
|
206
|
-
KEYCODE_NUMPAD_RIGHT_PAREN: 163,
|
|
207
|
-
KEYCODE_VOLUME_MUTE: 164,
|
|
208
|
-
KEYCODE_INFO: 165,
|
|
209
|
-
KEYCODE_CHANNEL_UP: 166,
|
|
210
|
-
KEYCODE_CHANNEL_DOWN: 167,
|
|
211
|
-
KEYCODE_ZOOM_IN: 168,
|
|
212
|
-
KEYCODE_ZOOM_OUT: 169,
|
|
213
|
-
KEYCODE_TV: 170,
|
|
214
|
-
KEYCODE_WINDOW: 171,
|
|
215
|
-
KEYCODE_GUIDE: 172,
|
|
216
|
-
KEYCODE_DVR: 173,
|
|
217
|
-
KEYCODE_BOOKMARK: 174,
|
|
218
|
-
KEYCODE_CAPTIONS: 175,
|
|
219
|
-
KEYCODE_SETTINGS: 176,
|
|
220
|
-
KEYCODE_TV_POWER: 177,
|
|
221
|
-
KEYCODE_TV_INPUT: 178,
|
|
222
|
-
KEYCODE_STB_POWER: 179,
|
|
223
|
-
KEYCODE_STB_INPUT: 180,
|
|
224
|
-
KEYCODE_AVR_POWER: 181,
|
|
225
|
-
KEYCODE_AVR_INPUT: 182,
|
|
226
|
-
KEYCODE_PROG_RED: 183,
|
|
227
|
-
KEYCODE_PROG_GREEN: 184,
|
|
228
|
-
KEYCODE_PROG_YELLOW: 185,
|
|
229
|
-
KEYCODE_PROG_BLUE: 186,
|
|
230
|
-
KEYCODE_APP_SWITCH: 187,
|
|
231
|
-
KEYCODE_LANGUAGE_SWITCH: 204,
|
|
232
|
-
KEYCODE_ASSIST: 219,
|
|
233
|
-
KEYCODE_BRIGHTNESS_DOWN: 220,
|
|
234
|
-
KEYCODE_BRIGHTNESS_UP: 221,
|
|
235
|
-
KEYCODE_SLEEP: 223,
|
|
236
|
-
KEYCODE_WAKEUP: 224,
|
|
237
|
-
KEYCODE_SOFT_SLEEP: 276,
|
|
238
|
-
} as const;
|
|
239
|
-
|
|
240
|
-
// Map based on event.code for layout independence
|
|
241
|
-
export const codeMap: { [code: string]: number } = {
|
|
242
|
-
KeyA: ANDROID_KEYS.KEYCODE_A,
|
|
243
|
-
KeyB: ANDROID_KEYS.KEYCODE_B,
|
|
244
|
-
KeyC: ANDROID_KEYS.KEYCODE_C,
|
|
245
|
-
KeyD: ANDROID_KEYS.KEYCODE_D,
|
|
246
|
-
KeyE: ANDROID_KEYS.KEYCODE_E,
|
|
247
|
-
KeyF: ANDROID_KEYS.KEYCODE_F,
|
|
248
|
-
KeyG: ANDROID_KEYS.KEYCODE_G,
|
|
249
|
-
KeyH: ANDROID_KEYS.KEYCODE_H,
|
|
250
|
-
KeyI: ANDROID_KEYS.KEYCODE_I,
|
|
251
|
-
KeyJ: ANDROID_KEYS.KEYCODE_J,
|
|
252
|
-
KeyK: ANDROID_KEYS.KEYCODE_K,
|
|
253
|
-
KeyL: ANDROID_KEYS.KEYCODE_L,
|
|
254
|
-
KeyM: ANDROID_KEYS.KEYCODE_M,
|
|
255
|
-
KeyN: ANDROID_KEYS.KEYCODE_N,
|
|
256
|
-
KeyO: ANDROID_KEYS.KEYCODE_O,
|
|
257
|
-
KeyP: ANDROID_KEYS.KEYCODE_P,
|
|
258
|
-
KeyQ: ANDROID_KEYS.KEYCODE_Q,
|
|
259
|
-
KeyR: ANDROID_KEYS.KEYCODE_R,
|
|
260
|
-
KeyS: ANDROID_KEYS.KEYCODE_S,
|
|
261
|
-
KeyT: ANDROID_KEYS.KEYCODE_T,
|
|
262
|
-
KeyU: ANDROID_KEYS.KEYCODE_U,
|
|
263
|
-
KeyV: ANDROID_KEYS.KEYCODE_V,
|
|
264
|
-
KeyW: ANDROID_KEYS.KEYCODE_W,
|
|
265
|
-
KeyX: ANDROID_KEYS.KEYCODE_X,
|
|
266
|
-
KeyY: ANDROID_KEYS.KEYCODE_Y,
|
|
267
|
-
KeyZ: ANDROID_KEYS.KEYCODE_Z,
|
|
268
|
-
Digit0: ANDROID_KEYS.KEYCODE_0,
|
|
269
|
-
Digit1: ANDROID_KEYS.KEYCODE_1,
|
|
270
|
-
Digit2: ANDROID_KEYS.KEYCODE_2,
|
|
271
|
-
Digit3: ANDROID_KEYS.KEYCODE_3,
|
|
272
|
-
Digit4: ANDROID_KEYS.KEYCODE_4,
|
|
273
|
-
Digit5: ANDROID_KEYS.KEYCODE_5,
|
|
274
|
-
Digit6: ANDROID_KEYS.KEYCODE_6,
|
|
275
|
-
Digit7: ANDROID_KEYS.KEYCODE_7,
|
|
276
|
-
Digit8: ANDROID_KEYS.KEYCODE_8,
|
|
277
|
-
Digit9: ANDROID_KEYS.KEYCODE_9,
|
|
278
|
-
Backquote: ANDROID_KEYS.KEYCODE_GRAVE,
|
|
279
|
-
Minus: ANDROID_KEYS.KEYCODE_MINUS,
|
|
280
|
-
Equal: ANDROID_KEYS.KEYCODE_EQUALS,
|
|
281
|
-
BracketLeft: ANDROID_KEYS.KEYCODE_LEFT_BRACKET,
|
|
282
|
-
BracketRight: ANDROID_KEYS.KEYCODE_RIGHT_BRACKET,
|
|
283
|
-
Backslash: ANDROID_KEYS.KEYCODE_BACKSLASH,
|
|
284
|
-
Semicolon: ANDROID_KEYS.KEYCODE_SEMICOLON,
|
|
285
|
-
Quote: ANDROID_KEYS.KEYCODE_APOSTROPHE,
|
|
286
|
-
Comma: ANDROID_KEYS.KEYCODE_COMMA,
|
|
287
|
-
Period: ANDROID_KEYS.KEYCODE_PERIOD,
|
|
288
|
-
Slash: ANDROID_KEYS.KEYCODE_SLASH,
|
|
289
|
-
Space: ANDROID_KEYS.KEYCODE_SPACE,
|
|
290
|
-
Tab: ANDROID_KEYS.KEYCODE_TAB,
|
|
291
|
-
Escape: ANDROID_KEYS.KEYCODE_ESCAPE,
|
|
292
|
-
ArrowUp: ANDROID_KEYS.DPAD_UP,
|
|
293
|
-
ArrowDown: ANDROID_KEYS.DPAD_DOWN,
|
|
294
|
-
ArrowLeft: ANDROID_KEYS.DPAD_LEFT,
|
|
295
|
-
ArrowRight: ANDROID_KEYS.DPAD_RIGHT,
|
|
296
|
-
Enter: ANDROID_KEYS.ENTER,
|
|
297
|
-
Backspace: ANDROID_KEYS.DEL,
|
|
298
|
-
Delete: ANDROID_KEYS.FORWARD_DEL,
|
|
299
|
-
Home: ANDROID_KEYS.KEYCODE_MOVE_HOME,
|
|
300
|
-
End: ANDROID_KEYS.KEYCODE_MOVE_END,
|
|
301
|
-
PageUp: ANDROID_KEYS.KEYCODE_PAGE_UP,
|
|
302
|
-
PageDown: ANDROID_KEYS.KEYCODE_PAGE_DOWN,
|
|
303
|
-
Insert: ANDROID_KEYS.KEYCODE_INSERT,
|
|
304
|
-
F1: ANDROID_KEYS.KEYCODE_F1,
|
|
305
|
-
F2: ANDROID_KEYS.KEYCODE_F2,
|
|
306
|
-
F3: ANDROID_KEYS.KEYCODE_F3,
|
|
307
|
-
F4: ANDROID_KEYS.KEYCODE_F4,
|
|
308
|
-
F5: ANDROID_KEYS.KEYCODE_F5,
|
|
309
|
-
F6: ANDROID_KEYS.KEYCODE_F6,
|
|
310
|
-
F7: ANDROID_KEYS.KEYCODE_F7,
|
|
311
|
-
F8: ANDROID_KEYS.KEYCODE_F8,
|
|
312
|
-
F9: ANDROID_KEYS.KEYCODE_F9,
|
|
313
|
-
F10: ANDROID_KEYS.KEYCODE_F10,
|
|
314
|
-
F11: ANDROID_KEYS.KEYCODE_F11,
|
|
315
|
-
F12: ANDROID_KEYS.KEYCODE_F12,
|
|
316
|
-
ShiftLeft: ANDROID_KEYS.KEYCODE_SHIFT_LEFT,
|
|
317
|
-
ShiftRight: ANDROID_KEYS.KEYCODE_SHIFT_RIGHT,
|
|
318
|
-
ControlLeft: ANDROID_KEYS.KEYCODE_CTRL_LEFT,
|
|
319
|
-
ControlRight: ANDROID_KEYS.KEYCODE_CTRL_RIGHT,
|
|
320
|
-
AltLeft: ANDROID_KEYS.KEYCODE_ALT_LEFT,
|
|
321
|
-
AltRight: ANDROID_KEYS.KEYCODE_ALT_RIGHT,
|
|
322
|
-
MetaLeft: ANDROID_KEYS.KEYCODE_META_LEFT,
|
|
323
|
-
MetaRight: ANDROID_KEYS.KEYCODE_META_RIGHT, // Windows/Command key
|
|
324
|
-
ContextMenu: ANDROID_KEYS.MENU, // Often the Menu key
|
|
325
|
-
// Numpad mappings
|
|
326
|
-
Numpad0: ANDROID_KEYS.KEYCODE_NUMPAD_0,
|
|
327
|
-
Numpad1: ANDROID_KEYS.KEYCODE_NUMPAD_1,
|
|
328
|
-
Numpad2: ANDROID_KEYS.KEYCODE_NUMPAD_2,
|
|
329
|
-
Numpad3: ANDROID_KEYS.KEYCODE_NUMPAD_3,
|
|
330
|
-
Numpad4: ANDROID_KEYS.KEYCODE_NUMPAD_4,
|
|
331
|
-
Numpad5: ANDROID_KEYS.KEYCODE_NUMPAD_5,
|
|
332
|
-
Numpad6: ANDROID_KEYS.KEYCODE_NUMPAD_6,
|
|
333
|
-
Numpad7: ANDROID_KEYS.KEYCODE_NUMPAD_7,
|
|
334
|
-
Numpad8: ANDROID_KEYS.KEYCODE_NUMPAD_8,
|
|
335
|
-
Numpad9: ANDROID_KEYS.KEYCODE_NUMPAD_9,
|
|
336
|
-
NumpadDivide: ANDROID_KEYS.KEYCODE_NUMPAD_DIVIDE,
|
|
337
|
-
NumpadMultiply: ANDROID_KEYS.KEYCODE_NUMPAD_MULTIPLY,
|
|
338
|
-
NumpadSubtract: ANDROID_KEYS.KEYCODE_NUMPAD_SUBTRACT,
|
|
339
|
-
NumpadAdd: ANDROID_KEYS.KEYCODE_NUMPAD_ADD,
|
|
340
|
-
NumpadDecimal: ANDROID_KEYS.KEYCODE_NUMPAD_DOT,
|
|
341
|
-
NumpadComma: ANDROID_KEYS.KEYCODE_NUMPAD_COMMA, // Some numpads have comma
|
|
342
|
-
NumpadEnter: ANDROID_KEYS.KEYCODE_NUMPAD_ENTER,
|
|
343
|
-
NumpadEqual: ANDROID_KEYS.KEYCODE_NUMPAD_EQUALS,
|
|
344
|
-
};
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import { CONTROL_MSG_TYPE } from './constants';
|
|
2
|
-
|
|
3
|
-
export function createTouchControlMessage(
|
|
4
|
-
action: number,
|
|
5
|
-
pointerId: number,
|
|
6
|
-
videoWidth: number,
|
|
7
|
-
videoHeight: number,
|
|
8
|
-
x: number,
|
|
9
|
-
y: number,
|
|
10
|
-
pressure = 1.0,
|
|
11
|
-
actionButton = 0,
|
|
12
|
-
buttons = 0,
|
|
13
|
-
): ArrayBuffer {
|
|
14
|
-
const buffer = new ArrayBuffer(32);
|
|
15
|
-
const view = new DataView(buffer);
|
|
16
|
-
let offset = 0;
|
|
17
|
-
|
|
18
|
-
view.setUint8(offset, CONTROL_MSG_TYPE.INJECT_TOUCH_EVENT);
|
|
19
|
-
offset += 1;
|
|
20
|
-
|
|
21
|
-
view.setUint8(offset, action);
|
|
22
|
-
offset += 1;
|
|
23
|
-
|
|
24
|
-
view.setBigInt64(offset, BigInt(pointerId), true);
|
|
25
|
-
offset += 8;
|
|
26
|
-
|
|
27
|
-
view.setInt32(offset, Math.round(x), true);
|
|
28
|
-
offset += 4;
|
|
29
|
-
view.setInt32(offset, Math.round(y), true);
|
|
30
|
-
offset += 4;
|
|
31
|
-
view.setUint16(offset, videoWidth, true);
|
|
32
|
-
offset += 2;
|
|
33
|
-
view.setUint16(offset, videoHeight, true);
|
|
34
|
-
offset += 2;
|
|
35
|
-
|
|
36
|
-
view.setInt16(offset, Math.round(pressure * 0xffff), true);
|
|
37
|
-
offset += 2;
|
|
38
|
-
|
|
39
|
-
view.setInt32(offset, actionButton, true);
|
|
40
|
-
offset += 4;
|
|
41
|
-
|
|
42
|
-
view.setInt32(offset, buttons, true);
|
|
43
|
-
return buffer;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// iOS-specific two-finger touch control message (fixed size = 24 bytes)
|
|
47
|
-
// Layout (little-endian):
|
|
48
|
-
// 1 byte: type
|
|
49
|
-
// 1 byte: action
|
|
50
|
-
// 4 bytes: x0 (Int32)
|
|
51
|
-
// 4 bytes: y0 (Int32)
|
|
52
|
-
// 4 bytes: x1 (Int32)
|
|
53
|
-
// 4 bytes: y1 (Int32)
|
|
54
|
-
// 2 bytes: videoWidth (UInt16)
|
|
55
|
-
// 2 bytes: videoHeight (UInt16)
|
|
56
|
-
// 2 bytes: reserved (UInt16, currently 0)
|
|
57
|
-
export function createTwoFingerTouchControlMessage(
|
|
58
|
-
action: number,
|
|
59
|
-
videoWidth: number,
|
|
60
|
-
videoHeight: number,
|
|
61
|
-
x0: number,
|
|
62
|
-
y0: number,
|
|
63
|
-
x1: number,
|
|
64
|
-
y1: number,
|
|
65
|
-
): ArrayBuffer {
|
|
66
|
-
const buffer = new ArrayBuffer(24);
|
|
67
|
-
const view = new DataView(buffer);
|
|
68
|
-
let offset = 0;
|
|
69
|
-
|
|
70
|
-
view.setUint8(offset, CONTROL_MSG_TYPE.INJECT_TWO_FINGER_TOUCH_EVENT);
|
|
71
|
-
offset += 1;
|
|
72
|
-
|
|
73
|
-
view.setUint8(offset, action);
|
|
74
|
-
offset += 1;
|
|
75
|
-
|
|
76
|
-
view.setInt32(offset, Math.round(x0), true);
|
|
77
|
-
offset += 4;
|
|
78
|
-
view.setInt32(offset, Math.round(y0), true);
|
|
79
|
-
offset += 4;
|
|
80
|
-
view.setInt32(offset, Math.round(x1), true);
|
|
81
|
-
offset += 4;
|
|
82
|
-
view.setInt32(offset, Math.round(y1), true);
|
|
83
|
-
offset += 4;
|
|
84
|
-
|
|
85
|
-
view.setUint16(offset, videoWidth, true);
|
|
86
|
-
offset += 2;
|
|
87
|
-
view.setUint16(offset, videoHeight, true);
|
|
88
|
-
offset += 2;
|
|
89
|
-
|
|
90
|
-
view.setUint16(offset, 0, true);
|
|
91
|
-
return buffer;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
export function createSetClipboardMessage(text: string, paste = true): ArrayBuffer {
|
|
95
|
-
const encoder = new TextEncoder();
|
|
96
|
-
const textBytes = encoder.encode(text);
|
|
97
|
-
|
|
98
|
-
// 1 byte for type + 8 bytes for sequence + 1 byte for paste flag + 4 bytes for length + text bytes
|
|
99
|
-
const buffer = new ArrayBuffer(14 + textBytes.length);
|
|
100
|
-
const view = new DataView(buffer);
|
|
101
|
-
let offset = 0;
|
|
102
|
-
|
|
103
|
-
view.setUint8(offset, CONTROL_MSG_TYPE.SET_CLIPBOARD);
|
|
104
|
-
offset += 1;
|
|
105
|
-
|
|
106
|
-
// Use 0 as sequence since we don't need an acknowledgement
|
|
107
|
-
view.setBigInt64(offset, BigInt(0), false);
|
|
108
|
-
offset += 8;
|
|
109
|
-
|
|
110
|
-
// Set paste flag
|
|
111
|
-
view.setUint8(offset, paste ? 1 : 0);
|
|
112
|
-
offset += 1;
|
|
113
|
-
|
|
114
|
-
// Text length
|
|
115
|
-
view.setUint32(offset, textBytes.length, false);
|
|
116
|
-
offset += 4;
|
|
117
|
-
|
|
118
|
-
// Text data
|
|
119
|
-
new Uint8Array(buffer, offset).set(textBytes);
|
|
120
|
-
|
|
121
|
-
return buffer;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
export function createInjectKeycodeMessage(
|
|
125
|
-
action: number,
|
|
126
|
-
keycode: number,
|
|
127
|
-
repeat = 0,
|
|
128
|
-
metaState = 0,
|
|
129
|
-
): ArrayBuffer {
|
|
130
|
-
const buffer = new ArrayBuffer(14);
|
|
131
|
-
const view = new DataView(buffer);
|
|
132
|
-
let offset = 0;
|
|
133
|
-
|
|
134
|
-
view.setUint8(offset, CONTROL_MSG_TYPE.INJECT_KEYCODE);
|
|
135
|
-
offset += 1;
|
|
136
|
-
|
|
137
|
-
view.setUint8(offset, action);
|
|
138
|
-
offset += 1;
|
|
139
|
-
|
|
140
|
-
view.setInt32(offset, keycode, true);
|
|
141
|
-
offset += 4;
|
|
142
|
-
|
|
143
|
-
view.setInt32(offset, repeat, true);
|
|
144
|
-
offset += 4;
|
|
145
|
-
|
|
146
|
-
view.setInt32(offset, metaState, true);
|
|
147
|
-
return buffer;
|
|
148
|
-
}
|