@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.
Files changed (73) hide show
  1. package/README.md +64 -0
  2. package/dist/GLTFLoader-Cami_vza.mjs +1679 -0
  3. package/dist/GLTFLoader-DeCLxW_q.js +1 -0
  4. package/dist/components/duo-button-hinge.d.ts +16 -0
  5. package/dist/components/duo-controls.d.ts +21 -0
  6. package/dist/components/duo-flat-frame.d.ts +7 -0
  7. package/dist/components/duo-flat-geometry.d.ts +52 -0
  8. package/dist/components/duo-fold-motion.d.ts +27 -0
  9. package/dist/components/duo-fold-renderer.d.ts +19 -0
  10. package/dist/components/duo-fold-timing.d.ts +1 -0
  11. package/dist/components/duo-frame.d.ts +16 -0
  12. package/dist/components/duo-hardware.d.ts +20 -0
  13. package/dist/components/duo-loading.d.ts +8 -0
  14. package/dist/components/duo-model.d.ts +19 -0
  15. package/dist/components/duo-screen-handoff.d.ts +4 -0
  16. package/dist/components/duo-view.d.ts +9 -0
  17. package/dist/components/remote-control.d.ts +5 -1
  18. package/dist/core/duo.d.ts +63 -0
  19. package/dist/duo-fold-renderer-BXejNHcY.mjs +257 -0
  20. package/dist/duo-fold-renderer-DdltAnF7.js +53 -0
  21. package/dist/duo-frame-Cmw4p2uN.mjs +26767 -0
  22. package/dist/duo-frame-iMtrvx_a.js +4059 -0
  23. package/dist/duo-view-BAh-w2Kz.js +1 -0
  24. package/dist/duo-view-D9Ae00rj.mjs +512 -0
  25. package/dist/index.cjs +1 -1
  26. package/dist/index.css +1 -1
  27. package/dist/index.js +2 -2
  28. package/dist/lite.cjs +1 -1
  29. package/dist/lite.js +1 -1
  30. package/dist/remote-control-B2jZpf3c.js +1 -0
  31. package/dist/remote-control-DiddxS8l.mjs +2883 -0
  32. package/package.json +8 -2
  33. package/dist/demo.d.ts +0 -1
  34. package/dist/remote-control-BRgbD7yo.mjs +0 -2516
  35. package/dist/remote-control-VISrP1zI.js +0 -1
  36. package/index.html +0 -199
  37. package/src/assets/Apple_logo_white.svg +0 -4
  38. package/src/assets/android_boot.gif +0 -0
  39. package/src/assets/android_boot.webp +0 -0
  40. package/src/assets/iphone16pro_black.webp +0 -0
  41. package/src/assets/iphone16pro_black_bg.webp +0 -0
  42. package/src/assets/iphone16pro_black_landscape.webp +0 -0
  43. package/src/assets/iphone16pro_black_landscape_bg.webp +0 -0
  44. package/src/assets/pixel9_black.webp +0 -0
  45. package/src/assets/pixel9_black_landscape.webp +0 -0
  46. package/src/assets/pixel_tablet_landscape.webp +0 -0
  47. package/src/assets/pixel_tablet_portrait.webp +0 -0
  48. package/src/components/device-install/index.ts +0 -1
  49. package/src/components/inspect-overlay.css +0 -223
  50. package/src/components/inspect-overlay.tsx +0 -437
  51. package/src/components/remote-control-framed.tsx +0 -14
  52. package/src/components/remote-control.css +0 -131
  53. package/src/components/remote-control.test.ts +0 -34
  54. package/src/components/remote-control.tsx +0 -3853
  55. package/src/core/ax-fetcher.test.ts +0 -418
  56. package/src/core/ax-fetcher.ts +0 -387
  57. package/src/core/ax-tree.test.ts +0 -491
  58. package/src/core/ax-tree.ts +0 -416
  59. package/src/core/camera.test.ts +0 -155
  60. package/src/core/camera.ts +0 -133
  61. package/src/core/constants.ts +0 -344
  62. package/src/core/webrtc-messages.ts +0 -148
  63. package/src/demo.tsx +0 -269
  64. package/src/frame-assets.ts +0 -22
  65. package/src/hooks/index.ts +0 -1
  66. package/src/index.ts +0 -29
  67. package/src/lite.test.ts +0 -30
  68. package/src/lite.ts +0 -30
  69. package/src/vite-env.d.ts +0 -1
  70. package/tsconfig.json +0 -26
  71. package/tsconfig.node.json +0 -26
  72. package/vite.config.ts +0 -35
  73. package/vitest.config.ts +0 -24
@@ -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
- }