@yume-chan/scrcpy 0.0.16 → 0.0.17

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 (209) hide show
  1. package/CHANGELOG.json +15 -0
  2. package/CHANGELOG.md +9 -1
  3. package/README.md +275 -38
  4. package/esm/adb/client.d.ts +40 -0
  5. package/esm/adb/client.d.ts.map +1 -0
  6. package/esm/adb/client.js +218 -0
  7. package/esm/adb/client.js.map +1 -0
  8. package/esm/adb/connection.d.ts +38 -0
  9. package/esm/adb/connection.d.ts.map +1 -0
  10. package/esm/{connection.js → adb/connection.js} +20 -24
  11. package/esm/adb/connection.js.map +1 -0
  12. package/esm/adb/index.d.ts +4 -0
  13. package/esm/adb/index.d.ts.map +1 -0
  14. package/esm/adb/index.js +4 -0
  15. package/esm/adb/index.js.map +1 -0
  16. package/esm/adb/options/1_16.d.ts +8 -0
  17. package/esm/adb/options/1_16.d.ts.map +1 -0
  18. package/esm/adb/options/1_16.js +20 -0
  19. package/esm/adb/options/1_16.js.map +1 -0
  20. package/esm/adb/options/1_22.d.ts +8 -0
  21. package/esm/adb/options/1_22.d.ts.map +1 -0
  22. package/esm/adb/options/1_22.js +17 -0
  23. package/esm/adb/options/1_22.js.map +1 -0
  24. package/esm/adb/options/index.d.ts +4 -0
  25. package/esm/adb/options/index.d.ts.map +1 -0
  26. package/esm/adb/options/index.js +4 -0
  27. package/esm/adb/options/index.js.map +1 -0
  28. package/esm/adb/options/types.d.ts +23 -0
  29. package/esm/adb/options/types.d.ts.map +1 -0
  30. package/esm/adb/options/types.js +30 -0
  31. package/esm/adb/options/types.js.map +1 -0
  32. package/esm/codec.js +2 -2
  33. package/esm/codec.js.map +1 -1
  34. package/esm/control/index.d.ts +8 -0
  35. package/esm/control/index.d.ts.map +1 -0
  36. package/esm/control/index.js +8 -0
  37. package/esm/control/index.js.map +1 -0
  38. package/esm/control/inject-keycode.d.ts +53 -0
  39. package/esm/control/inject-keycode.d.ts.map +1 -0
  40. package/esm/control/inject-keycode.js +54 -0
  41. package/esm/control/inject-keycode.js.map +1 -0
  42. package/esm/control/inject-text.d.ts +9 -0
  43. package/esm/control/inject-text.d.ts.map +1 -0
  44. package/esm/control/inject-text.js +7 -0
  45. package/esm/control/inject-text.js.map +1 -0
  46. package/esm/control/inject-touch.d.ts +30 -0
  47. package/esm/control/inject-touch.d.ts.map +1 -0
  48. package/esm/control/inject-touch.js +30 -0
  49. package/esm/control/inject-touch.js.map +1 -0
  50. package/esm/control/rotate-device.d.ts +7 -0
  51. package/esm/control/rotate-device.d.ts.map +1 -0
  52. package/esm/control/rotate-device.js +5 -0
  53. package/esm/control/rotate-device.js.map +1 -0
  54. package/esm/control/serializer.d.ts +23 -0
  55. package/esm/control/serializer.d.ts.map +1 -0
  56. package/esm/control/serializer.js +73 -0
  57. package/esm/control/serializer.js.map +1 -0
  58. package/esm/control/set-screen-power-mode.d.ts +12 -0
  59. package/esm/control/set-screen-power-mode.d.ts.map +1 -0
  60. package/esm/control/set-screen-power-mode.js +12 -0
  61. package/esm/control/set-screen-power-mode.js.map +1 -0
  62. package/esm/control/type.d.ts +15 -0
  63. package/esm/control/type.d.ts.map +1 -0
  64. package/esm/control/type.js +19 -0
  65. package/esm/control/type.js.map +1 -0
  66. package/esm/decoder/index.d.ts +27 -3
  67. package/esm/decoder/index.d.ts.map +1 -1
  68. package/esm/decoder/index.js +1 -3
  69. package/esm/decoder/index.js.map +1 -1
  70. package/esm/decoder/tinyh264/index.d.ts +5 -5
  71. package/esm/decoder/tinyh264/index.d.ts.map +1 -1
  72. package/esm/decoder/tinyh264/index.js +4 -4
  73. package/esm/decoder/tinyh264/index.js.map +1 -1
  74. package/esm/decoder/tinyh264/worker.js.map +1 -1
  75. package/esm/decoder/tinyh264/wrapper.d.ts.map +1 -1
  76. package/esm/decoder/tinyh264/wrapper.js +14 -8
  77. package/esm/decoder/tinyh264/wrapper.js.map +1 -1
  78. package/esm/decoder/types.d.ts +1 -27
  79. package/esm/decoder/types.d.ts.map +1 -1
  80. package/esm/decoder/web-codecs/index.d.ts +4 -4
  81. package/esm/decoder/web-codecs/index.d.ts.map +1 -1
  82. package/esm/decoder/web-codecs/index.js +1 -1
  83. package/esm/decoder/web-codecs/index.js.map +1 -1
  84. package/esm/device-message/clipboard.d.ts +10 -0
  85. package/esm/device-message/clipboard.d.ts.map +1 -0
  86. package/esm/device-message/clipboard.js +7 -0
  87. package/esm/device-message/clipboard.js.map +1 -0
  88. package/esm/device-message/index.d.ts +4 -0
  89. package/esm/device-message/index.d.ts.map +1 -0
  90. package/esm/device-message/index.js +4 -0
  91. package/esm/device-message/index.js.map +1 -0
  92. package/esm/device-message/stream.d.ts +7 -0
  93. package/esm/device-message/stream.d.ts.map +1 -0
  94. package/esm/device-message/stream.js +16 -0
  95. package/esm/device-message/stream.js.map +1 -0
  96. package/esm/device-message/type.d.ts +5 -0
  97. package/esm/device-message/type.d.ts.map +1 -0
  98. package/esm/device-message/type.js +7 -0
  99. package/esm/device-message/type.js.map +1 -0
  100. package/esm/index.d.ts +3 -6
  101. package/esm/index.d.ts.map +1 -1
  102. package/esm/index.js +3 -6
  103. package/esm/index.js.map +1 -1
  104. package/esm/options/1_16/codec-options.d.ts +19 -0
  105. package/esm/options/1_16/codec-options.d.ts.map +1 -0
  106. package/esm/options/1_16/codec-options.js +27 -0
  107. package/esm/options/1_16/codec-options.js.map +1 -0
  108. package/esm/options/1_16/index.d.ts +3 -110
  109. package/esm/options/1_16/index.d.ts.map +1 -1
  110. package/esm/options/1_16/index.js +3 -226
  111. package/esm/options/1_16/index.js.map +1 -1
  112. package/esm/options/1_16/options.d.ts +97 -0
  113. package/esm/options/1_16/options.d.ts.map +1 -0
  114. package/esm/options/1_16/options.js +188 -0
  115. package/esm/options/1_16/options.js.map +1 -0
  116. package/esm/options/1_18.d.ts +8 -8
  117. package/esm/options/1_18.d.ts.map +1 -1
  118. package/esm/options/1_18.js +6 -6
  119. package/esm/options/1_18.js.map +1 -1
  120. package/esm/options/1_21.d.ts +1 -1
  121. package/esm/options/1_21.d.ts.map +1 -1
  122. package/esm/options/1_21.js +1 -1
  123. package/esm/options/1_21.js.map +1 -1
  124. package/esm/options/1_22.d.ts +5 -8
  125. package/esm/options/1_22.d.ts.map +1 -1
  126. package/esm/options/1_22.js +4 -17
  127. package/esm/options/1_22.js.map +1 -1
  128. package/esm/options/1_23.d.ts +4 -4
  129. package/esm/options/1_23.d.ts.map +1 -1
  130. package/esm/options/1_23.js +1 -1
  131. package/esm/options/1_23.js.map +1 -1
  132. package/esm/options/1_24.d.ts +1 -1
  133. package/esm/options/1_24.d.ts.map +1 -1
  134. package/esm/options/1_24.js.map +1 -1
  135. package/esm/options/index.d.ts +1 -1
  136. package/esm/options/index.d.ts.map +1 -1
  137. package/esm/options/index.js +1 -1
  138. package/esm/options/index.js.map +1 -1
  139. package/esm/options/types.d.ts +45 -0
  140. package/esm/options/types.d.ts.map +1 -0
  141. package/esm/options/{common.js → types.js} +1 -1
  142. package/esm/options/types.js.map +1 -0
  143. package/package.json +24 -24
  144. package/src/adb/client.ts +292 -0
  145. package/src/{connection.ts → adb/connection.ts} +35 -38
  146. package/src/adb/index.ts +3 -0
  147. package/src/adb/options/1_16.ts +23 -0
  148. package/src/adb/options/1_22.ts +20 -0
  149. package/src/adb/options/index.ts +3 -0
  150. package/src/adb/options/types.ts +55 -0
  151. package/src/control/index.ts +7 -0
  152. package/src/control/inject-keycode.ts +59 -0
  153. package/src/control/inject-text.ts +12 -0
  154. package/src/control/inject-touch.ts +34 -0
  155. package/src/control/rotate-device.ts +10 -0
  156. package/src/control/serializer.ts +86 -0
  157. package/src/control/set-screen-power-mode.ts +17 -0
  158. package/src/control/type.ts +17 -0
  159. package/src/device-message/clipboard.ts +11 -0
  160. package/src/device-message/index.ts +3 -0
  161. package/src/device-message/stream.ts +19 -0
  162. package/src/device-message/type.ts +5 -0
  163. package/src/index.ts +3 -6
  164. package/src/options/1_16/codec-options.ts +48 -0
  165. package/src/options/1_16/index.ts +3 -345
  166. package/src/options/1_16/options.ts +294 -0
  167. package/src/options/1_18.ts +12 -10
  168. package/src/options/1_21.ts +16 -6
  169. package/src/options/1_22.ts +10 -21
  170. package/src/options/1_23.ts +7 -5
  171. package/src/options/1_24.ts +3 -2
  172. package/src/options/index.ts +1 -1
  173. package/src/options/{common.ts → types.ts} +32 -13
  174. package/tsconfig.build.json +3 -0
  175. package/tsconfig.build.tsbuildinfo +1 -0
  176. package/tsconfig.test.tsbuildinfo +1 -0
  177. package/esm/client.d.ts +0 -48
  178. package/esm/client.d.ts.map +0 -1
  179. package/esm/client.js +0 -341
  180. package/esm/client.js.map +0 -1
  181. package/esm/connection.d.ts +0 -37
  182. package/esm/connection.d.ts.map +0 -1
  183. package/esm/connection.js.map +0 -1
  184. package/esm/message.d.ts +0 -98
  185. package/esm/message.d.ts.map +0 -1
  186. package/esm/message.js +0 -98
  187. package/esm/message.js.map +0 -1
  188. package/esm/options/common.d.ts +0 -34
  189. package/esm/options/common.d.ts.map +0 -1
  190. package/esm/options/common.js.map +0 -1
  191. package/esm/push-server.d.ts +0 -6
  192. package/esm/push-server.d.ts.map +0 -1
  193. package/esm/push-server.js +0 -16
  194. package/esm/push-server.js.map +0 -1
  195. package/esm/utils.d.ts +0 -2
  196. package/esm/utils.d.ts.map +0 -1
  197. package/esm/utils.js +0 -6
  198. package/esm/utils.js.map +0 -1
  199. package/src/client.ts +0 -435
  200. package/src/decoder/index.ts +0 -3
  201. package/src/decoder/tinyh264/index.ts +0 -112
  202. package/src/decoder/tinyh264/types.d.ts +0 -137
  203. package/src/decoder/tinyh264/worker.ts +0 -2
  204. package/src/decoder/tinyh264/wrapper.ts +0 -89
  205. package/src/decoder/types.ts +0 -35
  206. package/src/decoder/web-codecs/index.ts +0 -99
  207. package/src/message.ts +0 -113
  208. package/src/push-server.ts +0 -24
  209. package/src/utils.ts +0 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/adb/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { Adb } from '@yume-chan/adb';
2
+ import type { Disposable } from '@yume-chan/event';
3
+ import { type ReadableStream, type ReadableWritablePair } from '@yume-chan/stream-extra';
4
+ import type { ValueOrPromise } from '@yume-chan/struct';
5
+ export interface AdbScrcpyConnectionOptions {
6
+ control: boolean;
7
+ /**
8
+ * Write a byte on start to detect connection issues
9
+ */
10
+ sendDummyByte: boolean;
11
+ /**
12
+ * Send device name and size
13
+ */
14
+ sendDeviceMeta: boolean;
15
+ }
16
+ export declare abstract class AdbScrcpyConnection implements Disposable {
17
+ protected adb: Adb;
18
+ protected options: AdbScrcpyConnectionOptions;
19
+ constructor(adb: Adb, options: AdbScrcpyConnectionOptions);
20
+ initialize(): ValueOrPromise<void>;
21
+ abstract getStreams(): ValueOrPromise<[videoSteam: ReadableStream<Uint8Array>, controlStream: ReadableWritablePair<Uint8Array, Uint8Array> | undefined]>;
22
+ dispose(): void;
23
+ }
24
+ export declare class AdbScrcpyForwardConnection extends AdbScrcpyConnection {
25
+ private connect;
26
+ private connectAndRetry;
27
+ private connectVideoStream;
28
+ getStreams(): Promise<[videoSteam: ReadableStream<Uint8Array>, controlStream: ReadableWritablePair<Uint8Array, Uint8Array> | undefined]>;
29
+ }
30
+ export declare class AdbScrcpyReverseConnection extends AdbScrcpyConnection {
31
+ private streams;
32
+ private address;
33
+ initialize(): Promise<void>;
34
+ private accept;
35
+ getStreams(): Promise<[videoSteam: ReadableStream<Uint8Array>, controlStream: ReadableWritablePair<Uint8Array, Uint8Array> | undefined]>;
36
+ dispose(): void;
37
+ }
38
+ //# sourceMappingURL=connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/adb/connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAmB,KAAK,cAAc,EAAoC,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC5I,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,WAAW,0BAA0B;IACvC,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,cAAc,EAAE,OAAO,CAAC;CAC3B;AAED,8BAAsB,mBAAoB,YAAW,UAAU;IAC3D,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAEnB,SAAS,CAAC,OAAO,EAAE,0BAA0B,CAAC;gBAE3B,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,0BAA0B;IAKzD,UAAU,IAAI,cAAc,CAAC,IAAI,CAAC;aAEzB,UAAU,IAAI,cAAc,CAAC,CAAC,UAAU,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,SAAS,CAAC,CAAC;IAExJ,OAAO,IAAI,IAAI;CACzB;AAED,qBAAa,0BAA2B,SAAQ,mBAAmB;IAC/D,OAAO,CAAC,OAAO;YAID,eAAe;YAWf,kBAAkB;IAcnB,UAAU,IAAI,OAAO,CAAC,CAAC,UAAU,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,SAAS,CAAC,CAAC;CAqBxJ;AAED,qBAAa,0BAA2B,SAAQ,mBAAmB;IAC/D,OAAO,CAAC,OAAO,CAA6E;IAE5F,OAAO,CAAC,OAAO,CAAU;IAEH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAiBnC,MAAM;IAIP,UAAU,IAAI,OAAO,CAAC,CAAC,UAAU,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,SAAS,CAAC,CAAC;IAsBrI,OAAO;CAM1B"}
@@ -1,17 +1,18 @@
1
- import { delay } from "./utils.js";
2
- export class ScrcpyClientConnection {
3
- device;
1
+ import { delay } from '@yume-chan/async';
2
+ import { TransformStream } from '@yume-chan/stream-extra';
3
+ export class AdbScrcpyConnection {
4
+ adb;
4
5
  options;
5
- constructor(device, options) {
6
- this.device = device;
6
+ constructor(adb, options) {
7
+ this.adb = adb;
7
8
  this.options = options;
8
9
  }
9
10
  initialize() { }
10
11
  dispose() { }
11
12
  }
12
- export class ScrcpyClientForwardConnection extends ScrcpyClientConnection {
13
- async connect() {
14
- return await this.device.createSocket('localabstract:scrcpy');
13
+ export class AdbScrcpyForwardConnection extends AdbScrcpyConnection {
14
+ connect() {
15
+ return this.adb.createSocket('localabstract:scrcpy');
15
16
  }
16
17
  async connectAndRetry() {
17
18
  for (let i = 0; i < 100; i++) {
@@ -25,9 +26,9 @@ export class ScrcpyClientForwardConnection extends ScrcpyClientConnection {
25
26
  throw new Error(`Can't connect to server after 100 retries`);
26
27
  }
27
28
  async connectVideoStream() {
28
- const stream = await this.connectAndRetry();
29
+ const { readable: videoStream } = await this.connectAndRetry();
29
30
  if (this.options.sendDummyByte) {
30
- const reader = stream.readable.getReader();
31
+ const reader = videoStream.getReader();
31
32
  const { done, value } = await reader.read();
32
33
  // server will write a `0` to signal connection success
33
34
  if (done || value.byteLength !== 1 || value[0] !== 0) {
@@ -35,7 +36,7 @@ export class ScrcpyClientForwardConnection extends ScrcpyClientConnection {
35
36
  }
36
37
  reader.releaseLock();
37
38
  }
38
- return stream;
39
+ return videoStream;
39
40
  }
40
41
  async getStreams() {
41
42
  const videoStream = await this.connectVideoStream();
@@ -45,7 +46,7 @@ export class ScrcpyClientForwardConnection extends ScrcpyClientConnection {
45
46
  }
46
47
  // Server only writes device meta after control socket is connected (if enabled)
47
48
  if (this.options.sendDeviceMeta) {
48
- const reader = videoStream.readable.getReader();
49
+ const reader = videoStream.getReader();
49
50
  const { done, value } = await reader.read();
50
51
  // 64 bytes device name + 2 bytes video width + 2 bytes video height
51
52
  if (done || value.byteLength !== 64 + 2 + 2) {
@@ -56,21 +57,16 @@ export class ScrcpyClientForwardConnection extends ScrcpyClientConnection {
56
57
  return [videoStream, controlStream];
57
58
  }
58
59
  }
59
- export class ScrcpyClientReverseConnection extends ScrcpyClientConnection {
60
+ export class AdbScrcpyReverseConnection extends AdbScrcpyConnection {
60
61
  streams;
61
62
  address;
62
63
  async initialize() {
63
- try {
64
- // try to unbind first
65
- await this.device.reverse.remove('localabstract:scrcpy');
66
- }
67
- catch {
68
- // ignore error
69
- }
64
+ // try to unbind first, ignore errors
65
+ await this.adb.reverse.remove('localabstract:scrcpy').catch(() => { });
70
66
  const queue = new TransformStream();
71
67
  this.streams = queue.readable.getReader();
72
68
  const writer = queue.writable.getWriter();
73
- this.address = await this.device.reverse.add('localabstract:scrcpy', 'tcp:27183', socket => {
69
+ this.address = await this.adb.reverse.add('localabstract:scrcpy', 'tcp:27183', socket => {
74
70
  writer.write(socket);
75
71
  return true;
76
72
  });
@@ -79,14 +75,14 @@ export class ScrcpyClientReverseConnection extends ScrcpyClientConnection {
79
75
  return (await this.streams.read()).value;
80
76
  }
81
77
  async getStreams() {
82
- const videoStream = await this.accept();
78
+ const { readable: videoStream } = await this.accept();
83
79
  let controlStream;
84
80
  if (this.options.control) {
85
81
  controlStream = await this.accept();
86
82
  }
87
83
  // Server only writes device meta after control socket is connected (if enabled)
88
84
  if (this.options.sendDeviceMeta) {
89
- const reader = videoStream.readable.getReader();
85
+ const reader = videoStream.getReader();
90
86
  const { done, value } = await reader.read();
91
87
  // 64 bytes device name + 2 bytes video width + 2 bytes video height
92
88
  if (done || value.byteLength !== 64 + 2 + 2) {
@@ -100,7 +96,7 @@ export class ScrcpyClientReverseConnection extends ScrcpyClientConnection {
100
96
  // Don't await this!
101
97
  // `reverse.remove`'s response will never arrive
102
98
  // before we read all pending data from `videoStream`
103
- this.device.reverse.remove(this.address);
99
+ this.adb.reverse.remove(this.address);
104
100
  }
105
101
  }
106
102
  //# sourceMappingURL=connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/adb/connection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './options/index.js';
2
+ export * from './client.js';
3
+ export * from './connection.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adb/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './options/index.js';
2
+ export * from './client.js';
3
+ export * from './connection.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adb/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Adb } from '@yume-chan/adb';
2
+ import type { ScrcpyOptionsInit1_16 } from '../../options/index.js';
3
+ import { AdbScrcpyConnection } from '../connection.js';
4
+ import { AdbScrcpyOptionsBase } from './types.js';
5
+ export declare class AdbScrcpyOptions1_16<T extends ScrcpyOptionsInit1_16 = ScrcpyOptionsInit1_16> extends AdbScrcpyOptionsBase<T> {
6
+ createConnection(adb: Adb): AdbScrcpyConnection;
7
+ }
8
+ //# sourceMappingURL=1_16.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1_16.d.ts","sourceRoot":"","sources":["../../../src/adb/options/1_16.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAsF,MAAM,kBAAkB,CAAC;AAC3I,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,qBAAa,oBAAoB,CAAC,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CACrF,SAAQ,oBAAoB,CAAC,CAAC,CAAC;IACf,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,mBAAmB;CAclE"}
@@ -0,0 +1,20 @@
1
+ import { AdbScrcpyForwardConnection, AdbScrcpyReverseConnection } from '../connection.js';
2
+ import { AdbScrcpyOptionsBase } from './types.js';
3
+ export class AdbScrcpyOptions1_16 extends AdbScrcpyOptionsBase {
4
+ createConnection(adb) {
5
+ const options = {
6
+ // Old versions always have control stream no matter what the option is
7
+ // Pass `control: false` to `Connection` will disable the control stream
8
+ control: true,
9
+ sendDummyByte: true,
10
+ sendDeviceMeta: true,
11
+ };
12
+ if (this.value.tunnelForward) {
13
+ return new AdbScrcpyForwardConnection(adb, options);
14
+ }
15
+ else {
16
+ return new AdbScrcpyReverseConnection(adb, options);
17
+ }
18
+ }
19
+ }
20
+ //# sourceMappingURL=1_16.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1_16.js","sourceRoot":"","sources":["../../../src/adb/options/1_16.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmD,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC3I,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,OAAO,oBACT,SAAQ,oBAAuB;IACf,gBAAgB,CAAC,GAAQ;QACrC,MAAM,OAAO,GAA+B;YACxC,uEAAuE;YACvE,wEAAwE;YACxE,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,IAAI;SACvB,CAAC;QACF,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;YAC1B,OAAO,IAAI,0BAA0B,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;SACvD;aAAM;YACH,OAAO,IAAI,0BAA0B,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;SACvD;IACL,CAAC;CACJ"}
@@ -0,0 +1,8 @@
1
+ import type { Adb } from '@yume-chan/adb';
2
+ import type { ScrcpyOptionsInit1_22 } from '../../options/index.js';
3
+ import { AdbScrcpyConnection } from '../connection.js';
4
+ import { AdbScrcpyOptions1_16 } from './1_16.js';
5
+ export declare class AdbScrcpyOptions1_22<T extends ScrcpyOptionsInit1_22 = ScrcpyOptionsInit1_22> extends AdbScrcpyOptions1_16<T> {
6
+ createConnection(adb: Adb): AdbScrcpyConnection;
7
+ }
8
+ //# sourceMappingURL=1_22.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1_22.d.ts","sourceRoot":"","sources":["../../../src/adb/options/1_22.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAA0D,MAAM,kBAAkB,CAAC;AAC/G,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEjD,qBAAa,oBAAoB,CAAC,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CACrF,SAAQ,oBAAoB,CAAC,CAAC,CAAC;IACf,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,mBAAmB;CAWlE"}
@@ -0,0 +1,17 @@
1
+ import { AdbScrcpyForwardConnection, AdbScrcpyReverseConnection } from '../connection.js';
2
+ import { AdbScrcpyOptions1_16 } from './1_16.js';
3
+ export class AdbScrcpyOptions1_22 extends AdbScrcpyOptions1_16 {
4
+ createConnection(adb) {
5
+ const options = {
6
+ ...this.getDefaultValue(),
7
+ ...this.value,
8
+ };
9
+ if (this.value.tunnelForward) {
10
+ return new AdbScrcpyForwardConnection(adb, options);
11
+ }
12
+ else {
13
+ return new AdbScrcpyReverseConnection(adb, options);
14
+ }
15
+ }
16
+ }
17
+ //# sourceMappingURL=1_22.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1_22.js","sourceRoot":"","sources":["../../../src/adb/options/1_22.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC/G,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEjD,MAAM,OAAO,oBACT,SAAQ,oBAAuB;IACf,gBAAgB,CAAC,GAAQ;QACrC,MAAM,OAAO,GAAG;YACZ,GAAG,IAAI,CAAC,eAAe,EAAE;YACzB,GAAG,IAAI,CAAC,KAAK;SAChB,CAAC;QACF,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;YAC1B,OAAO,IAAI,0BAA0B,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;SACvD;aAAM;YACH,OAAO,IAAI,0BAA0B,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;SACvD;IACL,CAAC;CACJ"}
@@ -0,0 +1,4 @@
1
+ export * from './1_16.js';
2
+ export * from './1_22.js';
3
+ export * from './types.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adb/options/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './1_16.js';
2
+ export * from './1_22.js';
3
+ export * from './types.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adb/options/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { Adb } from '@yume-chan/adb';
2
+ import type { TransformStream } from '@yume-chan/stream-extra';
3
+ import type { ScrcpyControlMessageType } from '../../control/index.js';
4
+ import type { ScrcpyBackOrScreenOnControlMessage1_18, ScrcpyInjectScrollControlMessage1_22, ScrcpyOptions, ScrcpyVideoStreamPacket } from '../../options/index.js';
5
+ import type { AdbScrcpyConnection } from '../connection.js';
6
+ export interface AdbScrcpyOptions<T> extends ScrcpyOptions<T> {
7
+ createConnection(adb: Adb): AdbScrcpyConnection;
8
+ }
9
+ export declare abstract class AdbScrcpyOptionsBase<T> implements ScrcpyOptions<T> {
10
+ private raw;
11
+ get value(): Partial<T>;
12
+ set value(value: Partial<T>);
13
+ constructor(raw: ScrcpyOptions<T>);
14
+ getDefaultValue(): T;
15
+ formatServerArguments(): string[];
16
+ getOutputEncoderNameRegex(): RegExp;
17
+ createVideoStreamTransformer(): TransformStream<Uint8Array, ScrcpyVideoStreamPacket>;
18
+ getControlMessageTypes(): ScrcpyControlMessageType[];
19
+ serializeBackOrScreenOnControlMessage(message: ScrcpyBackOrScreenOnControlMessage1_18): Uint8Array | undefined;
20
+ serializeInjectScrollControlMessage(message: ScrcpyInjectScrollControlMessage1_22): Uint8Array;
21
+ abstract createConnection(adb: Adb): AdbScrcpyConnection;
22
+ }
23
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adb/options/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,KAAK,EAAE,sCAAsC,EAAE,oCAAoC,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACnK,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,MAAM,WAAW,gBAAgB,CAAC,CAAC,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;IACzD,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,mBAAmB,CAAC;CACnD;AAED,8BAAsB,oBAAoB,CAAC,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAmB;IAE9B,IAAW,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,CAA2B;IACzD,IAAW,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAA6B;gBAE5C,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;IAIjC,eAAe,IAAI,CAAC;IAIpB,qBAAqB,IAAI,MAAM,EAAE;IAIjC,yBAAyB,IAAI,MAAM;IAInC,4BAA4B,IAAI,eAAe,CAAC,UAAU,EAAE,uBAAuB,CAAC;IAIpF,sBAAsB,IAAI,wBAAwB,EAAE;IAIpD,qCAAqC,CACxC,OAAO,EAAE,sCAAsC,GAChD,UAAU,GAAG,SAAS;IAIlB,mCAAmC,CACtC,OAAO,EAAE,oCAAoC,GAC9C,UAAU;aAIG,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,mBAAmB;CAClE"}
@@ -0,0 +1,30 @@
1
+ export class AdbScrcpyOptionsBase {
2
+ raw;
3
+ get value() { return this.raw.value; }
4
+ set value(value) { this.raw.value = value; }
5
+ constructor(raw) {
6
+ this.raw = raw;
7
+ }
8
+ getDefaultValue() {
9
+ return this.raw.getDefaultValue();
10
+ }
11
+ formatServerArguments() {
12
+ return this.raw.formatServerArguments();
13
+ }
14
+ getOutputEncoderNameRegex() {
15
+ return this.raw.getOutputEncoderNameRegex();
16
+ }
17
+ createVideoStreamTransformer() {
18
+ return this.raw.createVideoStreamTransformer();
19
+ }
20
+ getControlMessageTypes() {
21
+ return this.raw.getControlMessageTypes();
22
+ }
23
+ serializeBackOrScreenOnControlMessage(message) {
24
+ return this.raw.serializeBackOrScreenOnControlMessage(message);
25
+ }
26
+ serializeInjectScrollControlMessage(message) {
27
+ return this.raw.serializeInjectScrollControlMessage(message);
28
+ }
29
+ }
30
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/adb/options/types.ts"],"names":[],"mappings":"AAWA,MAAM,OAAgB,oBAAoB;IAC9B,GAAG,CAAmB;IAE9B,IAAW,KAAK,KAAiB,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACzD,IAAW,KAAK,CAAC,KAAiB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;IAE/D,YAAmB,GAAqB;QACpC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;IAEM,eAAe;QAClB,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;IACtC,CAAC;IAEM,qBAAqB;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;IAC5C,CAAC;IAEM,yBAAyB;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAC;IAChD,CAAC;IAEM,4BAA4B;QAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC;IACnD,CAAC;IAEM,sBAAsB;QACzB,OAAO,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC;IAC7C,CAAC;IAEM,qCAAqC,CACxC,OAA+C;QAE/C,OAAO,IAAI,CAAC,GAAG,CAAC,qCAAqC,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;IAEM,mCAAmC,CACtC,OAA6C;QAE7C,OAAO,IAAI,CAAC,GAAG,CAAC,mCAAmC,CAAC,OAAO,CAAC,CAAC;IACjE,CAAC;CAGJ"}
package/esm/codec.js CHANGED
@@ -10,7 +10,7 @@ export var AndroidCodecProfile;
10
10
  AndroidCodecProfile[AndroidCodecProfile["High444"] = 64] = "High444";
11
11
  AndroidCodecProfile[AndroidCodecProfile["ConstrainedBaseline"] = 65536] = "ConstrainedBaseline";
12
12
  AndroidCodecProfile[AndroidCodecProfile["ConstrainedHigh"] = 524288] = "ConstrainedHigh";
13
- })(AndroidCodecProfile || (AndroidCodecProfile = {}));
13
+ })(AndroidCodecProfile = AndroidCodecProfile || (AndroidCodecProfile = {}));
14
14
  export var AndroidCodecLevel;
15
15
  (function (AndroidCodecLevel) {
16
16
  AndroidCodecLevel[AndroidCodecLevel["Level1"] = 1] = "Level1";
@@ -33,5 +33,5 @@ export var AndroidCodecLevel;
33
33
  AndroidCodecLevel[AndroidCodecLevel["Level6"] = 131072] = "Level6";
34
34
  AndroidCodecLevel[AndroidCodecLevel["Level61"] = 262144] = "Level61";
35
35
  AndroidCodecLevel[AndroidCodecLevel["Level62"] = 524288] = "Level62";
36
- })(AndroidCodecLevel || (AndroidCodecLevel = {}));
36
+ })(AndroidCodecLevel = AndroidCodecLevel || (AndroidCodecLevel = {}));
37
37
  //# sourceMappingURL=codec.js.map
package/esm/codec.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"codec.js","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,MAAM,CAAN,IAAY,mBAUX;AAVD,WAAY,mBAAmB;IAC3B,qEAAe,CAAA;IACf,6DAAW,CAAA;IACX,qEAAe,CAAA;IACf,6DAAW,CAAA;IACX,kEAAa,CAAA;IACb,oEAAc,CAAA;IACd,oEAAc,CAAA;IACd,+FAA6B,CAAA;IAC7B,wFAAyB,CAAA;AAC7B,CAAC,EAVW,mBAAmB,KAAnB,mBAAmB,QAU9B;AAED,MAAM,CAAN,IAAY,iBAqBX;AArBD,WAAY,iBAAiB;IACzB,6DAAa,CAAA;IACb,+DAAc,CAAA;IACd,+DAAc,CAAA;IACd,+DAAc,CAAA;IACd,gEAAc,CAAA;IACd,8DAAa,CAAA;IACb,gEAAc,CAAA;IACd,iEAAc,CAAA;IACd,+DAAc,CAAA;IACd,iEAAe,CAAA;IACf,kEAAe,CAAA;IACf,gEAAc,CAAA;IACd,kEAAgB,CAAA;IAChB,kEAAgB,CAAA;IAChB,iEAAe,CAAA;IACf,mEAAgB,CAAA;IAChB,mEAAiB,CAAA;IACjB,kEAAgB,CAAA;IAChB,oEAAiB,CAAA;IACjB,oEAAiB,CAAA;AACrB,CAAC,EArBW,iBAAiB,KAAjB,iBAAiB,QAqB5B"}
1
+ {"version":3,"file":"codec.js","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,MAAM,CAAN,IAAY,mBAUX;AAVD,WAAY,mBAAmB;IAC3B,qEAAe,CAAA;IACf,6DAAW,CAAA;IACX,qEAAe,CAAA;IACf,6DAAW,CAAA;IACX,kEAAa,CAAA;IACb,oEAAc,CAAA;IACd,oEAAc,CAAA;IACd,+FAA6B,CAAA;IAC7B,wFAAyB,CAAA;AAC7B,CAAC,EAVW,mBAAmB,GAAnB,mBAAmB,KAAnB,mBAAmB,QAU9B;AAED,MAAM,CAAN,IAAY,iBAqBX;AArBD,WAAY,iBAAiB;IACzB,6DAAa,CAAA;IACb,+DAAc,CAAA;IACd,+DAAc,CAAA;IACd,+DAAc,CAAA;IACd,gEAAc,CAAA;IACd,8DAAa,CAAA;IACb,gEAAc,CAAA;IACd,iEAAc,CAAA;IACd,+DAAc,CAAA;IACd,iEAAe,CAAA;IACf,kEAAe,CAAA;IACf,gEAAc,CAAA;IACd,kEAAgB,CAAA;IAChB,kEAAgB,CAAA;IAChB,iEAAe,CAAA;IACf,mEAAgB,CAAA;IAChB,mEAAiB,CAAA;IACjB,kEAAgB,CAAA;IAChB,oEAAiB,CAAA;IACjB,oEAAiB,CAAA;AACrB,CAAC,EArBW,iBAAiB,GAAjB,iBAAiB,KAAjB,iBAAiB,QAqB5B"}
@@ -0,0 +1,8 @@
1
+ export * from './inject-keycode.js';
2
+ export * from './inject-text.js';
3
+ export * from './inject-touch.js';
4
+ export * from './rotate-device.js';
5
+ export * from './serializer.js';
6
+ export * from './set-screen-power-mode.js';
7
+ export * from './type.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/control/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,WAAW,CAAC"}
@@ -0,0 +1,8 @@
1
+ export * from './inject-keycode.js';
2
+ export * from './inject-text.js';
3
+ export * from './inject-touch.js';
4
+ export * from './rotate-device.js';
5
+ export * from './serializer.js';
6
+ export * from './set-screen-power-mode.js';
7
+ export * from './type.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/control/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,WAAW,CAAC"}
@@ -0,0 +1,53 @@
1
+ import Struct from '@yume-chan/struct';
2
+ import { ScrcpyControlMessageType } from './type.js';
3
+ export declare enum AndroidKeyEventAction {
4
+ Down = 0,
5
+ Up = 1
6
+ }
7
+ export declare enum AndroidKeyCode {
8
+ Home = 3,
9
+ Back = 4,
10
+ VolumeUp = 24,
11
+ VolumeDown = 25,
12
+ A = 29,
13
+ B = 30,
14
+ C = 31,
15
+ D = 32,
16
+ E = 33,
17
+ F = 34,
18
+ G = 35,
19
+ H = 36,
20
+ I = 37,
21
+ J = 38,
22
+ K = 39,
23
+ L = 40,
24
+ M = 41,
25
+ N = 42,
26
+ O = 43,
27
+ P = 44,
28
+ Q = 45,
29
+ R = 46,
30
+ S = 47,
31
+ T = 48,
32
+ U = 49,
33
+ V = 50,
34
+ W = 51,
35
+ X = 52,
36
+ Y = 53,
37
+ Z = 54,
38
+ Tab = 61,
39
+ Space = 62,
40
+ Enter = 66,
41
+ Delete = 67,
42
+ VolumeMute = 164,
43
+ AppSwitch = 187
44
+ }
45
+ export declare const ScrcpyInjectKeyCodeControlMessage: Struct<{
46
+ type: ScrcpyControlMessageType.InjectKeyCode;
47
+ action: AndroidKeyEventAction;
48
+ keyCode: number;
49
+ repeat: number;
50
+ metaState: number;
51
+ }, never, {}, undefined>;
52
+ export declare type ScrcpyInjectKeyCodeControlMessage = typeof ScrcpyInjectKeyCodeControlMessage['TInit'];
53
+ //# sourceMappingURL=inject-keycode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-keycode.d.ts","sourceRoot":"","sources":["../../src/control/inject-keycode.ts"],"names":[],"mappings":"AAAA,OAAO,MAAuB,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,oBAAY,qBAAqB;IAC7B,IAAI,IAAI;IACR,EAAE,IAAI;CACT;AAGD,oBAAY,cAAc;IACtB,IAAI,IAAI;IACR,IAAI,IAAI;IACR,QAAQ,KAAK;IACb,UAAU,KAAA;IACV,CAAC,KAAK;IACN,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,GAAG,KAAK;IACR,KAAK,KAAA;IACL,KAAK,KAAK;IACV,MAAM,KAAA;IACN,UAAU,MAAM;IAChB,SAAS,MAAM;CAClB;AAED,eAAO,MAAM,iCAAiC;;;;;;wBAMlB,CAAC;AAE7B,oBAAY,iCAAiC,GACzC,OAAO,iCAAiC,CAAC,OAAO,CAAC,CAAC"}
@@ -0,0 +1,54 @@
1
+ import Struct, { placeholder } from '@yume-chan/struct';
2
+ import { ScrcpyControlMessageType } from './type.js';
3
+ export var AndroidKeyEventAction;
4
+ (function (AndroidKeyEventAction) {
5
+ AndroidKeyEventAction[AndroidKeyEventAction["Down"] = 0] = "Down";
6
+ AndroidKeyEventAction[AndroidKeyEventAction["Up"] = 1] = "Up";
7
+ })(AndroidKeyEventAction = AndroidKeyEventAction || (AndroidKeyEventAction = {}));
8
+ // https://github.com/Genymobile/scrcpy/blob/cabb102a04153f9c237b18257d3269a058558c63/app/src/android/keycodes.h#L26
9
+ export var AndroidKeyCode;
10
+ (function (AndroidKeyCode) {
11
+ AndroidKeyCode[AndroidKeyCode["Home"] = 3] = "Home";
12
+ AndroidKeyCode[AndroidKeyCode["Back"] = 4] = "Back";
13
+ AndroidKeyCode[AndroidKeyCode["VolumeUp"] = 24] = "VolumeUp";
14
+ AndroidKeyCode[AndroidKeyCode["VolumeDown"] = 25] = "VolumeDown";
15
+ AndroidKeyCode[AndroidKeyCode["A"] = 29] = "A";
16
+ AndroidKeyCode[AndroidKeyCode["B"] = 30] = "B";
17
+ AndroidKeyCode[AndroidKeyCode["C"] = 31] = "C";
18
+ AndroidKeyCode[AndroidKeyCode["D"] = 32] = "D";
19
+ AndroidKeyCode[AndroidKeyCode["E"] = 33] = "E";
20
+ AndroidKeyCode[AndroidKeyCode["F"] = 34] = "F";
21
+ AndroidKeyCode[AndroidKeyCode["G"] = 35] = "G";
22
+ AndroidKeyCode[AndroidKeyCode["H"] = 36] = "H";
23
+ AndroidKeyCode[AndroidKeyCode["I"] = 37] = "I";
24
+ AndroidKeyCode[AndroidKeyCode["J"] = 38] = "J";
25
+ AndroidKeyCode[AndroidKeyCode["K"] = 39] = "K";
26
+ AndroidKeyCode[AndroidKeyCode["L"] = 40] = "L";
27
+ AndroidKeyCode[AndroidKeyCode["M"] = 41] = "M";
28
+ AndroidKeyCode[AndroidKeyCode["N"] = 42] = "N";
29
+ AndroidKeyCode[AndroidKeyCode["O"] = 43] = "O";
30
+ AndroidKeyCode[AndroidKeyCode["P"] = 44] = "P";
31
+ AndroidKeyCode[AndroidKeyCode["Q"] = 45] = "Q";
32
+ AndroidKeyCode[AndroidKeyCode["R"] = 46] = "R";
33
+ AndroidKeyCode[AndroidKeyCode["S"] = 47] = "S";
34
+ AndroidKeyCode[AndroidKeyCode["T"] = 48] = "T";
35
+ AndroidKeyCode[AndroidKeyCode["U"] = 49] = "U";
36
+ AndroidKeyCode[AndroidKeyCode["V"] = 50] = "V";
37
+ AndroidKeyCode[AndroidKeyCode["W"] = 51] = "W";
38
+ AndroidKeyCode[AndroidKeyCode["X"] = 52] = "X";
39
+ AndroidKeyCode[AndroidKeyCode["Y"] = 53] = "Y";
40
+ AndroidKeyCode[AndroidKeyCode["Z"] = 54] = "Z";
41
+ AndroidKeyCode[AndroidKeyCode["Tab"] = 61] = "Tab";
42
+ AndroidKeyCode[AndroidKeyCode["Space"] = 62] = "Space";
43
+ AndroidKeyCode[AndroidKeyCode["Enter"] = 66] = "Enter";
44
+ AndroidKeyCode[AndroidKeyCode["Delete"] = 67] = "Delete";
45
+ AndroidKeyCode[AndroidKeyCode["VolumeMute"] = 164] = "VolumeMute";
46
+ AndroidKeyCode[AndroidKeyCode["AppSwitch"] = 187] = "AppSwitch";
47
+ })(AndroidKeyCode = AndroidKeyCode || (AndroidKeyCode = {}));
48
+ export const ScrcpyInjectKeyCodeControlMessage = new Struct()
49
+ .uint8('type', ScrcpyControlMessageType.InjectKeyCode)
50
+ .uint8('action', placeholder())
51
+ .uint32('keyCode')
52
+ .uint32('repeat')
53
+ .uint32('metaState');
54
+ //# sourceMappingURL=inject-keycode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-keycode.js","sourceRoot":"","sources":["../../src/control/inject-keycode.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,CAAN,IAAY,qBAGX;AAHD,WAAY,qBAAqB;IAC7B,iEAAQ,CAAA;IACR,6DAAM,CAAA;AACV,CAAC,EAHW,qBAAqB,GAArB,qBAAqB,KAArB,qBAAqB,QAGhC;AAED,oHAAoH;AACpH,MAAM,CAAN,IAAY,cAqCX;AArCD,WAAY,cAAc;IACtB,mDAAQ,CAAA;IACR,mDAAQ,CAAA;IACR,4DAAa,CAAA;IACb,gEAAU,CAAA;IACV,8CAAM,CAAA;IACN,8CAAC,CAAA;IACD,8CAAC,CAAA;IACD,8CAAC,CAAA;IACD,8CAAC,CAAA;IACD,8CAAC,CAAA;IACD,8CAAC,CAAA;IACD,8CAAC,CAAA;IACD,8CAAC,CAAA;IACD,8CAAC,CAAA;IACD,8CAAC,CAAA;IACD,8CAAC,CAAA;IACD,8CAAC,CAAA;IACD,8CAAC,CAAA;IACD,8CAAC,CAAA;IACD,8CAAC,CAAA;IACD,8CAAC,CAAA;IACD,8CAAC,CAAA;IACD,8CAAC,CAAA;IACD,8CAAC,CAAA;IACD,8CAAC,CAAA;IACD,8CAAC,CAAA;IACD,8CAAC,CAAA;IACD,8CAAC,CAAA;IACD,8CAAC,CAAA;IACD,8CAAC,CAAA;IACD,kDAAQ,CAAA;IACR,sDAAK,CAAA;IACL,sDAAU,CAAA;IACV,wDAAM,CAAA;IACN,iEAAgB,CAAA;IAChB,+DAAe,CAAA;AACnB,CAAC,EArCW,cAAc,GAAd,cAAc,KAAd,cAAc,QAqCzB;AAED,MAAM,CAAC,MAAM,iCAAiC,GAC1C,IAAI,MAAM,EAAE;KACP,KAAK,CAAC,MAAM,EAAE,wBAAwB,CAAC,aAAsB,CAAC;KAC9D,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAyB,CAAC;KACrD,MAAM,CAAC,SAAS,CAAC;KACjB,MAAM,CAAC,QAAQ,CAAC;KAChB,MAAM,CAAC,WAAW,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import Struct from '@yume-chan/struct';
2
+ import { ScrcpyControlMessageType } from './type.js';
3
+ export declare const ScrcpyInjectTextControlMessage: Struct<{
4
+ type: ScrcpyControlMessageType.InjectText;
5
+ length: number;
6
+ text: string;
7
+ }, "length", {}, undefined>;
8
+ export declare type ScrcpyInjectTextControlMessage = typeof ScrcpyInjectTextControlMessage['TInit'];
9
+ //# sourceMappingURL=inject-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-text.d.ts","sourceRoot":"","sources":["../../src/control/inject-text.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,eAAO,MAAM,8BAA8B;;;;2BAIO,CAAC;AAEnD,oBAAY,8BAA8B,GACtC,OAAO,8BAA8B,CAAC,OAAO,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import Struct from '@yume-chan/struct';
2
+ import { ScrcpyControlMessageType } from './type.js';
3
+ export const ScrcpyInjectTextControlMessage = new Struct()
4
+ .uint8('type', ScrcpyControlMessageType.InjectText)
5
+ .uint32('length')
6
+ .string('text', { lengthField: 'length' });
7
+ //# sourceMappingURL=inject-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-text.js","sourceRoot":"","sources":["../../src/control/inject-text.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,CAAC,MAAM,8BAA8B,GACvC,IAAI,MAAM,EAAE;KACP,KAAK,CAAC,MAAM,EAAE,wBAAwB,CAAC,UAAmB,CAAC;KAC3D,MAAM,CAAC,QAAQ,CAAC;KAChB,MAAM,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC"}
@@ -0,0 +1,30 @@
1
+ import Struct from '@yume-chan/struct';
2
+ import { ScrcpyControlMessageType } from './type.js';
3
+ export declare enum AndroidMotionEventAction {
4
+ Down = 0,
5
+ Up = 1,
6
+ Move = 2,
7
+ Cancel = 3,
8
+ Outside = 4,
9
+ PointerDown = 5,
10
+ PointerUp = 6,
11
+ HoverMove = 7,
12
+ Scroll = 8,
13
+ HoverEnter = 9,
14
+ HoverExit = 10,
15
+ ButtonPress = 11,
16
+ ButtonRelease = 12
17
+ }
18
+ export declare const ScrcpyInjectTouchControlMessage: Struct<{
19
+ type: ScrcpyControlMessageType.InjectTouch;
20
+ action: AndroidMotionEventAction;
21
+ pointerId: bigint;
22
+ pointerX: number;
23
+ pointerY: number;
24
+ screenWidth: number;
25
+ screenHeight: number;
26
+ pressure: number;
27
+ buttons: number;
28
+ }, never, {}, undefined>;
29
+ export declare type ScrcpyInjectTouchControlMessage = typeof ScrcpyInjectTouchControlMessage['TInit'];
30
+ //# sourceMappingURL=inject-touch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-touch.d.ts","sourceRoot":"","sources":["../../src/control/inject-touch.ts"],"names":[],"mappings":"AAAA,OAAO,MAAuB,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAGrD,oBAAY,wBAAwB;IAChC,IAAI,IAAA;IACJ,EAAE,IAAA;IACF,IAAI,IAAA;IACJ,MAAM,IAAA;IACN,OAAO,IAAA;IACP,WAAW,IAAA;IACX,SAAS,IAAA;IACT,SAAS,IAAA;IACT,MAAM,IAAA;IACN,UAAU,IAAA;IACV,SAAS,KAAA;IACT,WAAW,KAAA;IACX,aAAa,KAAA;CAChB;AAED,eAAO,MAAM,+BAA+B;;;;;;;;;;wBAUlB,CAAC;AAE3B,oBAAY,+BAA+B,GACvC,OAAO,+BAA+B,CAAC,OAAO,CAAC,CAAC"}
@@ -0,0 +1,30 @@
1
+ import Struct, { placeholder } from '@yume-chan/struct';
2
+ import { ScrcpyControlMessageType } from './type.js';
3
+ // https://developer.android.com/reference/android/view/MotionEvent#constants_1
4
+ export var AndroidMotionEventAction;
5
+ (function (AndroidMotionEventAction) {
6
+ AndroidMotionEventAction[AndroidMotionEventAction["Down"] = 0] = "Down";
7
+ AndroidMotionEventAction[AndroidMotionEventAction["Up"] = 1] = "Up";
8
+ AndroidMotionEventAction[AndroidMotionEventAction["Move"] = 2] = "Move";
9
+ AndroidMotionEventAction[AndroidMotionEventAction["Cancel"] = 3] = "Cancel";
10
+ AndroidMotionEventAction[AndroidMotionEventAction["Outside"] = 4] = "Outside";
11
+ AndroidMotionEventAction[AndroidMotionEventAction["PointerDown"] = 5] = "PointerDown";
12
+ AndroidMotionEventAction[AndroidMotionEventAction["PointerUp"] = 6] = "PointerUp";
13
+ AndroidMotionEventAction[AndroidMotionEventAction["HoverMove"] = 7] = "HoverMove";
14
+ AndroidMotionEventAction[AndroidMotionEventAction["Scroll"] = 8] = "Scroll";
15
+ AndroidMotionEventAction[AndroidMotionEventAction["HoverEnter"] = 9] = "HoverEnter";
16
+ AndroidMotionEventAction[AndroidMotionEventAction["HoverExit"] = 10] = "HoverExit";
17
+ AndroidMotionEventAction[AndroidMotionEventAction["ButtonPress"] = 11] = "ButtonPress";
18
+ AndroidMotionEventAction[AndroidMotionEventAction["ButtonRelease"] = 12] = "ButtonRelease";
19
+ })(AndroidMotionEventAction = AndroidMotionEventAction || (AndroidMotionEventAction = {}));
20
+ export const ScrcpyInjectTouchControlMessage = new Struct()
21
+ .uint8('type', ScrcpyControlMessageType.InjectTouch)
22
+ .uint8('action', placeholder())
23
+ .uint64('pointerId')
24
+ .uint32('pointerX')
25
+ .uint32('pointerY')
26
+ .uint16('screenWidth')
27
+ .uint16('screenHeight')
28
+ .uint16('pressure')
29
+ .uint32('buttons');
30
+ //# sourceMappingURL=inject-touch.js.map