@yume-chan/scrcpy 2.1.0 → 2.2.0

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 (180) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +3 -0
  3. package/esm/1_15/impl/clipboard-stream.d.ts +2 -1
  4. package/esm/1_15/impl/clipboard-stream.d.ts.map +1 -1
  5. package/esm/1_15/impl/clipboard-stream.js +4 -7
  6. package/esm/1_15/impl/clipboard-stream.js.map +1 -1
  7. package/esm/1_15/impl/scroll-controller.d.ts.map +1 -1
  8. package/esm/1_15/impl/scroll-controller.js +22 -21
  9. package/esm/1_15/impl/scroll-controller.js.map +1 -1
  10. package/esm/1_15/options.d.ts +2 -3
  11. package/esm/1_15/options.d.ts.map +1 -1
  12. package/esm/1_15/options.js +6 -15
  13. package/esm/1_15/options.js.map +1 -1
  14. package/esm/1_17/options.d.ts +2 -3
  15. package/esm/1_17/options.d.ts.map +1 -1
  16. package/esm/1_17/options.js +6 -15
  17. package/esm/1_17/options.js.map +1 -1
  18. package/esm/1_18/options.d.ts +2 -3
  19. package/esm/1_18/options.d.ts.map +1 -1
  20. package/esm/1_18/options.js +6 -15
  21. package/esm/1_18/options.js.map +1 -1
  22. package/esm/1_21/impl/set-clipboard.d.ts +2 -1
  23. package/esm/1_21/impl/set-clipboard.d.ts.map +1 -1
  24. package/esm/1_21/impl/set-clipboard.js +2 -5
  25. package/esm/1_21/impl/set-clipboard.js.map +1 -1
  26. package/esm/1_21/options.d.ts +2 -3
  27. package/esm/1_21/options.d.ts.map +1 -1
  28. package/esm/1_21/options.js +7 -21
  29. package/esm/1_21/options.js.map +1 -1
  30. package/esm/1_22/options.d.ts +2 -3
  31. package/esm/1_22/options.d.ts.map +1 -1
  32. package/esm/1_22/options.js +7 -21
  33. package/esm/1_22/options.js.map +1 -1
  34. package/esm/1_23/options.d.ts +2 -3
  35. package/esm/1_23/options.d.ts.map +1 -1
  36. package/esm/1_23/options.js +7 -21
  37. package/esm/1_23/options.js.map +1 -1
  38. package/esm/1_24/options.d.ts +2 -3
  39. package/esm/1_24/options.d.ts.map +1 -1
  40. package/esm/1_24/options.js +7 -21
  41. package/esm/1_24/options.js.map +1 -1
  42. package/esm/1_25/options.d.ts +2 -3
  43. package/esm/1_25/options.d.ts.map +1 -1
  44. package/esm/1_25/options.js +7 -21
  45. package/esm/1_25/options.js.map +1 -1
  46. package/esm/2_0/options.d.ts +2 -3
  47. package/esm/2_0/options.d.ts.map +1 -1
  48. package/esm/2_0/options.js +7 -21
  49. package/esm/2_0/options.js.map +1 -1
  50. package/esm/2_1/options.d.ts +2 -3
  51. package/esm/2_1/options.d.ts.map +1 -1
  52. package/esm/2_1/options.js +7 -21
  53. package/esm/2_1/options.js.map +1 -1
  54. package/esm/2_2/options.d.ts +2 -3
  55. package/esm/2_2/options.d.ts.map +1 -1
  56. package/esm/2_2/options.js +7 -21
  57. package/esm/2_2/options.js.map +1 -1
  58. package/esm/2_3/options.d.ts +2 -3
  59. package/esm/2_3/options.d.ts.map +1 -1
  60. package/esm/2_3/options.js +7 -21
  61. package/esm/2_3/options.js.map +1 -1
  62. package/esm/2_4/impl/uhid-output-stream.d.ts +2 -1
  63. package/esm/2_4/impl/uhid-output-stream.d.ts.map +1 -1
  64. package/esm/2_4/impl/uhid-output-stream.js +2 -5
  65. package/esm/2_4/impl/uhid-output-stream.js.map +1 -1
  66. package/esm/2_4/options.d.ts +2 -3
  67. package/esm/2_4/options.d.ts.map +1 -1
  68. package/esm/2_4/options.js +8 -27
  69. package/esm/2_4/options.js.map +1 -1
  70. package/esm/2_6/options.d.ts +2 -3
  71. package/esm/2_6/options.d.ts.map +1 -1
  72. package/esm/2_6/options.js +8 -22
  73. package/esm/2_6/options.js.map +1 -1
  74. package/esm/2_7/impl/serialize-uhid-create.d.ts +2 -2
  75. package/esm/2_7/impl/serialize-uhid-create.d.ts.map +1 -1
  76. package/esm/2_7/impl/serialize-uhid-create.js +3 -4
  77. package/esm/2_7/impl/serialize-uhid-create.js.map +1 -1
  78. package/esm/2_7/options.d.ts +2 -3
  79. package/esm/2_7/options.d.ts.map +1 -1
  80. package/esm/2_7/options.js +8 -22
  81. package/esm/2_7/options.js.map +1 -1
  82. package/esm/3_0/options.d.ts +2 -3
  83. package/esm/3_0/options.d.ts.map +1 -1
  84. package/esm/3_0/options.js +8 -22
  85. package/esm/3_0/options.js.map +1 -1
  86. package/esm/3_1/impl/serialize-uhid-create.d.ts +2 -2
  87. package/esm/3_1/impl/serialize-uhid-create.d.ts.map +1 -1
  88. package/esm/3_1/impl/serialize-uhid-create.js +3 -4
  89. package/esm/3_1/impl/serialize-uhid-create.js.map +1 -1
  90. package/esm/3_1/options.d.ts +2 -3
  91. package/esm/3_1/options.d.ts.map +1 -1
  92. package/esm/3_1/options.js +8 -22
  93. package/esm/3_1/options.js.map +1 -1
  94. package/esm/3_2/options.d.ts +2 -3
  95. package/esm/3_2/options.d.ts.map +1 -1
  96. package/esm/3_2/options.js +8 -22
  97. package/esm/3_2/options.js.map +1 -1
  98. package/esm/3_3.d.ts +8 -0
  99. package/esm/3_3.d.ts.map +1 -0
  100. package/esm/3_3.js +7 -0
  101. package/esm/3_3.js.map +1 -0
  102. package/esm/3_3_1/impl/index.d.ts +3 -0
  103. package/esm/3_3_1/impl/index.d.ts.map +1 -0
  104. package/esm/3_3_1/impl/index.js +3 -0
  105. package/esm/3_3_1/impl/index.js.map +1 -0
  106. package/esm/3_3_1/impl/prev.d.ts +2 -0
  107. package/esm/3_3_1/impl/prev.d.ts.map +1 -0
  108. package/esm/3_3_1/impl/prev.js +2 -0
  109. package/esm/3_3_1/impl/prev.js.map +1 -0
  110. package/esm/3_3_1/impl/scroll-controller.d.ts +7 -0
  111. package/esm/3_3_1/impl/scroll-controller.d.ts.map +1 -0
  112. package/esm/3_3_1/impl/scroll-controller.js +15 -0
  113. package/esm/3_3_1/impl/scroll-controller.js.map +1 -0
  114. package/esm/3_3_1/index.d.ts +2 -0
  115. package/esm/3_3_1/index.d.ts.map +1 -0
  116. package/esm/3_3_1/index.js +2 -0
  117. package/esm/3_3_1/index.js.map +1 -0
  118. package/esm/3_3_1/options.d.ts +90 -0
  119. package/esm/3_3_1/options.d.ts.map +1 -0
  120. package/esm/3_3_1/options.js +78 -0
  121. package/esm/3_3_1/options.js.map +1 -0
  122. package/esm/3_3_2.d.ts +8 -0
  123. package/esm/3_3_2.d.ts.map +1 -0
  124. package/esm/3_3_2.js +7 -0
  125. package/esm/3_3_2.js.map +1 -0
  126. package/esm/base/device-message.d.ts +10 -1
  127. package/esm/base/device-message.d.ts.map +1 -1
  128. package/esm/base/device-message.js +40 -1
  129. package/esm/base/device-message.js.map +1 -1
  130. package/esm/base/options.d.ts +2 -3
  131. package/esm/base/options.d.ts.map +1 -1
  132. package/esm/control/message-type-map.d.ts +2 -2
  133. package/esm/control/message-type-map.d.ts.map +1 -1
  134. package/esm/control/message-type-map.js.map +1 -1
  135. package/esm/index.d.ts +3 -0
  136. package/esm/index.d.ts.map +1 -1
  137. package/esm/index.js +3 -0
  138. package/esm/index.js.map +1 -1
  139. package/esm/latest.d.ts +5 -5
  140. package/esm/latest.d.ts.map +1 -1
  141. package/esm/latest.js +3 -3
  142. package/esm/latest.js.map +1 -1
  143. package/package.json +4 -4
  144. package/src/1_15/impl/clipboard-stream.ts +5 -7
  145. package/src/1_15/impl/scroll-controller.ts +22 -19
  146. package/src/1_15/options.ts +9 -21
  147. package/src/1_17/options.ts +9 -21
  148. package/src/1_18/options.ts +9 -21
  149. package/src/1_21/impl/set-clipboard.ts +2 -5
  150. package/src/1_21/options.ts +13 -28
  151. package/src/1_22/options.ts +13 -28
  152. package/src/1_23/options.ts +13 -28
  153. package/src/1_24/options.ts +13 -28
  154. package/src/1_25/options.ts +13 -28
  155. package/src/2_0/options.ts +13 -28
  156. package/src/2_1/options.ts +13 -28
  157. package/src/2_2/options.ts +13 -28
  158. package/src/2_3/options.ts +13 -28
  159. package/src/2_4/impl/uhid-output-stream.ts +3 -6
  160. package/src/2_4/options.ts +16 -35
  161. package/src/2_6/options.ts +16 -29
  162. package/src/2_7/impl/serialize-uhid-create.ts +9 -11
  163. package/src/2_7/options.ts +16 -29
  164. package/src/3_0/options.ts +16 -29
  165. package/src/3_1/impl/serialize-uhid-create.ts +11 -13
  166. package/src/3_1/options.ts +16 -29
  167. package/src/3_2/options.ts +16 -29
  168. package/src/3_3.ts +14 -0
  169. package/src/3_3_1/impl/index.ts +6 -0
  170. package/src/3_3_1/impl/prev.ts +1 -0
  171. package/src/3_3_1/impl/scroll-controller.ts +21 -0
  172. package/src/3_3_1/index.ts +1 -0
  173. package/src/3_3_1/options.ts +177 -0
  174. package/src/3_3_2.ts +14 -0
  175. package/src/base/device-message.ts +50 -1
  176. package/src/base/options.ts +3 -8
  177. package/src/control/message-type-map.ts +3 -3
  178. package/src/index.ts +3 -0
  179. package/src/latest.ts +5 -5
  180. package/tsconfig.build.tsbuildinfo +1 -1
@@ -1,7 +1,7 @@
1
1
  import type { MaybePromiseLike } from "@yume-chan/async";
2
2
  import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
3
- import type { AsyncExactReadable, ExactReadable } from "@yume-chan/struct";
4
3
  import type { ScrcpyAudioStreamMetadata, ScrcpyControlMessageType, ScrcpyDisplay, ScrcpyEncoder, ScrcpyMediaStreamPacket, ScrcpyOptions, ScrcpyOptionsListEncoders, ScrcpyScrollController, ScrcpyVideoStream } from "../base/index.js";
4
+ import { ScrcpyDeviceMessageParsers } from "../base/index.js";
5
5
  import type { ScrcpyBackOrScreenOnControlMessage, ScrcpyInjectTouchControlMessage, ScrcpySetClipboardControlMessage, ScrcpyUHidCreateControlMessage, ScrcpyUHidOutputDeviceMessage } from "../latest.js";
6
6
  import type { Init } from "./impl/index.js";
7
7
  export declare class ScrcpyOptions3_0<TVideo extends boolean> implements ScrcpyOptions<Init<TVideo>>, ScrcpyOptionsListEncoders {
@@ -64,6 +64,7 @@ export declare class ScrcpyOptions3_0<TVideo extends boolean> implements ScrcpyO
64
64
  get controlMessageTypes(): readonly ScrcpyControlMessageType[];
65
65
  get clipboard(): ReadableStream<string> | undefined;
66
66
  get uHidOutput(): ReadableStream<ScrcpyUHidOutputDeviceMessage> | undefined;
67
+ get deviceMessageParsers(): ScrcpyDeviceMessageParsers;
67
68
  constructor(init: Init<TVideo>);
68
69
  serialize(): string[];
69
70
  setListDisplays(): void;
@@ -72,8 +73,6 @@ export declare class ScrcpyOptions3_0<TVideo extends boolean> implements ScrcpyO
72
73
  parseEncoder(line: string): ScrcpyEncoder | undefined;
73
74
  parseVideoStreamMetadata(stream: ReadableStream<Uint8Array>): MaybePromiseLike<ScrcpyVideoStream>;
74
75
  parseAudioStreamMetadata(stream: ReadableStream<Uint8Array>): MaybePromiseLike<ScrcpyAudioStreamMetadata>;
75
- parseDeviceMessage(id: number, stream: ExactReadable | AsyncExactReadable): Promise<void>;
76
- endDeviceMessageStream(e?: unknown): void;
77
76
  createMediaStreamTransformer(): TransformStream<Uint8Array, ScrcpyMediaStreamPacket>;
78
77
  serializeInjectTouchControlMessage(message: ScrcpyInjectTouchControlMessage): Uint8Array;
79
78
  serializeBackOrScreenOnControlMessage(message: ScrcpyBackOrScreenOnControlMessage): Uint8Array | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/3_0/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE3E,OAAO,KAAK,EACR,yBAAyB,EACzB,wBAAwB,EACxB,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACR,kCAAkC,EAClC,+BAA+B,EAC/B,gCAAgC,EAChC,8BAA8B,EAC9B,6BAA6B,EAChC,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAqB5C,qBAAa,gBAAgB,CAAC,MAAM,SAAS,OAAO,CAChD,YAAW,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,yBAAyB;;IAEjE,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAY;IAEpC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvC,IAAI,mBAAmB,IAAI,SAAS,wBAAwB,EAAE,CAE7D;IAGD,IAAI,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,SAAS,CAElD;IAKD,IAAI,UAAU,IACR,cAAc,CAAC,6BAA6B,CAAC,GAC7C,SAAS,CAEd;gBAEW,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IAqB9B,SAAS,IAAI,MAAM,EAAE;IAIrB,eAAe,IAAI,IAAI;IAIvB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD,eAAe;IAIf,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,gBAAgB,CAAC,iBAAiB,CAAC;IAItC,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,gBAAgB,CAAC,yBAAyB,CAAC;IAIxC,kBAAkB,CACpB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,aAAa,GAAG,kBAAkB,GAC3C,OAAO,CAAC,IAAI,CAAC;IAYhB,sBAAsB,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAUzC,4BAA4B,IAAI,eAAe,CAC3C,UAAU,EACV,uBAAuB,CAC1B;IAID,kCAAkC,CAC9B,OAAO,EAAE,+BAA+B,GACzC,UAAU;IAIb,qCAAqC,CACjC,OAAO,EAAE,kCAAkC,GAC5C,UAAU,GAAG,SAAS;IAIzB,mCAAmC,CAC/B,OAAO,EAAE,gCAAgC,GAC1C,UAAU,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAM3C,sBAAsB,IAAI,sBAAsB;IAIhD,iCAAiC,CAC7B,OAAO,EAAE,8BAA8B,GACxC,UAAU;CAGhB;AAED,KAAK,KAAK,CAAC,MAAM,SAAS,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;AAElD,yBAAiB,gBAAgB,CAAC;IAC9B,KAAY,IAAI,CAAC,MAAM,SAAS,OAAO,GAAG,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;CACtE"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/3_0/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/E,OAAO,KAAK,EACR,yBAAyB,EACzB,wBAAwB,EACxB,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EACR,kCAAkC,EAClC,+BAA+B,EAC/B,gCAAgC,EAChC,8BAA8B,EAC9B,6BAA6B,EAChC,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAqB5C,qBAAa,gBAAgB,CAAC,MAAM,SAAS,OAAO,CAChD,YAAW,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,yBAAyB;;IAEjE,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAY;IAEpC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvC,IAAI,mBAAmB,IAAI,SAAS,wBAAwB,EAAE,CAE7D;IAGD,IAAI,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,SAAS,CAElD;IAKD,IAAI,UAAU,IACR,cAAc,CAAC,6BAA6B,CAAC,GAC7C,SAAS,CAEd;IAGD,IAAI,oBAAoB,+BAEvB;gBAEW,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IA4B9B,SAAS,IAAI,MAAM,EAAE;IAIrB,eAAe,IAAI,IAAI;IAIvB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD,eAAe;IAIf,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,gBAAgB,CAAC,iBAAiB,CAAC;IAItC,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,gBAAgB,CAAC,yBAAyB,CAAC;IAI9C,4BAA4B,IAAI,eAAe,CAC3C,UAAU,EACV,uBAAuB,CAC1B;IAID,kCAAkC,CAC9B,OAAO,EAAE,+BAA+B,GACzC,UAAU;IAIb,qCAAqC,CACjC,OAAO,EAAE,kCAAkC,GAC5C,UAAU,GAAG,SAAS;IAIzB,mCAAmC,CAC/B,OAAO,EAAE,gCAAgC,GAC1C,UAAU,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAM3C,sBAAsB,IAAI,sBAAsB;IAIhD,iCAAiC,CAC7B,OAAO,EAAE,8BAA8B,GACxC,UAAU;CAGhB;AAED,KAAK,KAAK,CAAC,MAAM,SAAS,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;AAElD,yBAAiB,gBAAgB,CAAC;IAC9B,KAAY,IAAI,CAAC,MAAM,SAAS,OAAO,GAAG,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;CACtE"}
@@ -1,3 +1,4 @@
1
+ import { ScrcpyDeviceMessageParsers } from "../base/index.js";
1
2
  import { AckClipboardHandler, ClipboardStream, ControlMessageTypes, createMediaStreamTransformer, createScrollController, Defaults, parseAudioStreamMetadata, parseDisplay, parseEncoder, parseVideoStreamMetadata, serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, serializeUHidCreateControlMessage, setListDisplays, setListEncoders, UHidOutputStream, } from "./impl/index.js";
2
3
  export class ScrcpyOptions3_0 {
3
4
  static Defaults = Defaults;
@@ -14,6 +15,10 @@ export class ScrcpyOptions3_0 {
14
15
  get uHidOutput() {
15
16
  return this.#uHidOutput;
16
17
  }
18
+ #deviceMessageParsers = new ScrcpyDeviceMessageParsers();
19
+ get deviceMessageParsers() {
20
+ return this.#deviceMessageParsers;
21
+ }
17
22
  constructor(init) {
18
23
  this.value = { ...Defaults, ...init };
19
24
  if (this.value.videoSource === "camera") {
@@ -24,10 +29,10 @@ export class ScrcpyOptions3_0 {
24
29
  }
25
30
  if (this.value.control) {
26
31
  if (this.value.clipboardAutosync) {
27
- this.#clipboard = new ClipboardStream();
28
- this.#ackClipboardHandler = new AckClipboardHandler();
32
+ this.#clipboard = this.#deviceMessageParsers.add(new ClipboardStream());
33
+ this.#ackClipboardHandler = this.#deviceMessageParsers.add(new AckClipboardHandler());
29
34
  }
30
- this.#uHidOutput = new UHidOutputStream();
35
+ this.#uHidOutput = this.#deviceMessageParsers.add(new UHidOutputStream());
31
36
  }
32
37
  }
33
38
  serialize() {
@@ -51,25 +56,6 @@ export class ScrcpyOptions3_0 {
51
56
  parseAudioStreamMetadata(stream) {
52
57
  return parseAudioStreamMetadata(stream, this.value);
53
58
  }
54
- async parseDeviceMessage(id, stream) {
55
- if (await this.#clipboard?.parse(id, stream)) {
56
- return;
57
- }
58
- if (await this.#ackClipboardHandler?.parse(id, stream)) {
59
- return;
60
- }
61
- throw new Error("Unknown device message");
62
- }
63
- endDeviceMessageStream(e) {
64
- if (e) {
65
- this.#clipboard?.error(e);
66
- this.#ackClipboardHandler?.error(e);
67
- }
68
- else {
69
- this.#clipboard?.close();
70
- this.#ackClipboardHandler?.close();
71
- }
72
- }
73
59
  createMediaStreamTransformer() {
74
60
  return createMediaStreamTransformer(this.value);
75
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/3_0/options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/3_0/options.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  import type { StructInit } from "@yume-chan/struct";
2
2
  import type { ScrcpyUHidCreateControlMessage } from "../../latest.js";
3
3
  export declare const UHidCreateControlMessage: import("@yume-chan/struct").Struct<{
4
- type: import("@yume-chan/struct").Field<12, never, never, number>;
4
+ type: import("@yume-chan/struct").NumberField<number>;
5
5
  id: import("@yume-chan/struct").NumberField<number>;
6
6
  vendorId: import("@yume-chan/struct").NumberField<number>;
7
7
  productId: import("@yume-chan/struct").NumberField<number>;
8
8
  name: import("@yume-chan/struct").Field<string, string, never, string>;
9
9
  data: import("@yume-chan/struct").Field<Uint8Array<ArrayBufferLike>, string, never, Uint8Array<ArrayBufferLike>>;
10
10
  }, undefined, import("@yume-chan/struct").FieldsValue<{
11
- type: import("@yume-chan/struct").Field<12, never, never, number>;
11
+ type: import("@yume-chan/struct").NumberField<number>;
12
12
  id: import("@yume-chan/struct").NumberField<number>;
13
13
  vendorId: import("@yume-chan/struct").NumberField<number>;
14
14
  productId: import("@yume-chan/struct").NumberField<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"serialize-uhid-create.d.ts","sourceRoot":"","sources":["../../../src/3_1/impl/serialize-uhid-create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIpD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAEtE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;GAW7B,CAAC;AAET,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAC7C,OAAO,wBAAwB,CAClC,CAAC;AAEF,wBAAgB,iCAAiC,CAC7C,OAAO,EAAE,8BAA8B,+BAG1C"}
1
+ {"version":3,"file":"serialize-uhid-create.d.ts","sourceRoot":"","sources":["../../../src/3_1/impl/serialize-uhid-create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAEtE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;GAUpC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAC7C,OAAO,wBAAwB,CAClC,CAAC;AAEF,wBAAgB,iCAAiC,CAC7C,OAAO,EAAE,8BAA8B,+BAG1C"}
@@ -1,13 +1,12 @@
1
1
  import { buffer, string, struct, u16, u8 } from "@yume-chan/struct";
2
- import { ScrcpyControlMessageType } from "../../base/control-message-type.js";
3
- export const UHidCreateControlMessage = /* #__PURE__ */ (() => struct({
4
- type: u8(ScrcpyControlMessageType.UHidCreate),
2
+ export const UHidCreateControlMessage = struct({
3
+ type: u8,
5
4
  id: u16,
6
5
  vendorId: u16,
7
6
  productId: u16,
8
7
  name: string(u8),
9
8
  data: buffer(u16),
10
- }, { littleEndian: false }))();
9
+ }, { littleEndian: false });
11
10
  export function serializeUHidCreateControlMessage(message) {
12
11
  return UHidCreateControlMessage.serialize(message);
13
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"serialize-uhid-create.js","sourceRoot":"","sources":["../../../src/3_1/impl/serialize-uhid-create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAG9E,MAAM,CAAC,MAAM,wBAAwB,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,CAC1D,MAAM,CACF;IACI,IAAI,EAAE,EAAE,CAAC,wBAAwB,CAAC,UAAU,CAAC;IAC7C,EAAE,EAAE,GAAG;IACP,QAAQ,EAAE,GAAG;IACb,SAAS,EAAE,GAAG;IACd,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC;CACpB,EACD,EAAE,YAAY,EAAE,KAAK,EAAE,CAC1B,CAAC,EAAE,CAAC;AAMT,MAAM,UAAU,iCAAiC,CAC7C,OAAuC;IAEvC,OAAO,wBAAwB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"serialize-uhid-create.js","sourceRoot":"","sources":["../../../src/3_1/impl/serialize-uhid-create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAIpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAC1C;IACI,IAAI,EAAE,EAAE;IACR,EAAE,EAAE,GAAG;IACP,QAAQ,EAAE,GAAG;IACb,SAAS,EAAE,GAAG;IACd,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC;CACpB,EACD,EAAE,YAAY,EAAE,KAAK,EAAE,CAC1B,CAAC;AAMF,MAAM,UAAU,iCAAiC,CAC7C,OAAuC;IAEvC,OAAO,wBAAwB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACvD,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { MaybePromiseLike } from "@yume-chan/async";
2
2
  import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
3
- import type { AsyncExactReadable, ExactReadable } from "@yume-chan/struct";
4
3
  import type { ScrcpyAudioStreamMetadata, ScrcpyControlMessageType, ScrcpyDisplay, ScrcpyEncoder, ScrcpyMediaStreamPacket, ScrcpyOptions, ScrcpyOptionsListEncoders, ScrcpyScrollController, ScrcpyVideoStream } from "../base/index.js";
4
+ import { ScrcpyDeviceMessageParsers } from "../base/index.js";
5
5
  import type { ScrcpyBackOrScreenOnControlMessage, ScrcpyInjectTouchControlMessage, ScrcpySetClipboardControlMessage, ScrcpyUHidCreateControlMessage, ScrcpyUHidOutputDeviceMessage } from "../latest.js";
6
6
  import type { Init } from "./impl/index.js";
7
7
  export declare class ScrcpyOptions3_1<TVideo extends boolean> implements ScrcpyOptions<Init<TVideo>>, ScrcpyOptionsListEncoders {
@@ -65,6 +65,7 @@ export declare class ScrcpyOptions3_1<TVideo extends boolean> implements ScrcpyO
65
65
  get controlMessageTypes(): readonly ScrcpyControlMessageType[];
66
66
  get clipboard(): ReadableStream<string> | undefined;
67
67
  get uHidOutput(): ReadableStream<ScrcpyUHidOutputDeviceMessage> | undefined;
68
+ get deviceMessageParsers(): ScrcpyDeviceMessageParsers;
68
69
  constructor(init: Init<TVideo>);
69
70
  serialize(): string[];
70
71
  setListDisplays(): void;
@@ -73,8 +74,6 @@ export declare class ScrcpyOptions3_1<TVideo extends boolean> implements ScrcpyO
73
74
  parseEncoder(line: string): ScrcpyEncoder | undefined;
74
75
  parseVideoStreamMetadata(stream: ReadableStream<Uint8Array>): MaybePromiseLike<ScrcpyVideoStream>;
75
76
  parseAudioStreamMetadata(stream: ReadableStream<Uint8Array>): MaybePromiseLike<ScrcpyAudioStreamMetadata>;
76
- parseDeviceMessage(id: number, stream: ExactReadable | AsyncExactReadable): Promise<void>;
77
- endDeviceMessageStream(e?: unknown): void;
78
77
  createMediaStreamTransformer(): TransformStream<Uint8Array, ScrcpyMediaStreamPacket>;
79
78
  serializeInjectTouchControlMessage(message: ScrcpyInjectTouchControlMessage): Uint8Array;
80
79
  serializeBackOrScreenOnControlMessage(message: ScrcpyBackOrScreenOnControlMessage): Uint8Array | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/3_1/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE3E,OAAO,KAAK,EACR,yBAAyB,EACzB,wBAAwB,EACxB,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACR,kCAAkC,EAClC,+BAA+B,EAC/B,gCAAgC,EAChC,8BAA8B,EAC9B,6BAA6B,EAChC,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAqB5C,qBAAa,gBAAgB,CAAC,MAAM,SAAS,OAAO,CAChD,YAAW,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,yBAAyB;;IAEjE,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAY;IAEpC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvC,IAAI,mBAAmB,IAAI,SAAS,wBAAwB,EAAE,CAE7D;IAGD,IAAI,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,SAAS,CAElD;IAKD,IAAI,UAAU,IACR,cAAc,CAAC,6BAA6B,CAAC,GAC7C,SAAS,CAEd;gBAEW,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IAqB9B,SAAS,IAAI,MAAM,EAAE;IAIrB,eAAe,IAAI,IAAI;IAIvB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD,eAAe;IAIf,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,gBAAgB,CAAC,iBAAiB,CAAC;IAItC,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,gBAAgB,CAAC,yBAAyB,CAAC;IAIxC,kBAAkB,CACpB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,aAAa,GAAG,kBAAkB,GAC3C,OAAO,CAAC,IAAI,CAAC;IAYhB,sBAAsB,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAUzC,4BAA4B,IAAI,eAAe,CAC3C,UAAU,EACV,uBAAuB,CAC1B;IAID,kCAAkC,CAC9B,OAAO,EAAE,+BAA+B,GACzC,UAAU;IAIb,qCAAqC,CACjC,OAAO,EAAE,kCAAkC,GAC5C,UAAU,GAAG,SAAS;IAIzB,mCAAmC,CAC/B,OAAO,EAAE,gCAAgC,GAC1C,UAAU,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAM3C,sBAAsB,IAAI,sBAAsB;IAIhD,iCAAiC,CAC7B,OAAO,EAAE,8BAA8B,GACxC,UAAU;CAGhB;AAED,KAAK,KAAK,CAAC,MAAM,SAAS,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;AAElD,yBAAiB,gBAAgB,CAAC;IAC9B,KAAY,IAAI,CAAC,MAAM,SAAS,OAAO,GAAG,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;CACtE"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/3_1/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/E,OAAO,KAAK,EACR,yBAAyB,EACzB,wBAAwB,EACxB,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EACR,kCAAkC,EAClC,+BAA+B,EAC/B,gCAAgC,EAChC,8BAA8B,EAC9B,6BAA6B,EAChC,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAqB5C,qBAAa,gBAAgB,CAAC,MAAM,SAAS,OAAO,CAChD,YAAW,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,yBAAyB;;IAEjE,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAY;IAEpC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvC,IAAI,mBAAmB,IAAI,SAAS,wBAAwB,EAAE,CAE7D;IAGD,IAAI,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,SAAS,CAElD;IAKD,IAAI,UAAU,IACR,cAAc,CAAC,6BAA6B,CAAC,GAC7C,SAAS,CAEd;IAGD,IAAI,oBAAoB,+BAEvB;gBAEW,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IA4B9B,SAAS,IAAI,MAAM,EAAE;IAIrB,eAAe,IAAI,IAAI;IAIvB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD,eAAe;IAIf,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,gBAAgB,CAAC,iBAAiB,CAAC;IAItC,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,gBAAgB,CAAC,yBAAyB,CAAC;IAI9C,4BAA4B,IAAI,eAAe,CAC3C,UAAU,EACV,uBAAuB,CAC1B;IAID,kCAAkC,CAC9B,OAAO,EAAE,+BAA+B,GACzC,UAAU;IAIb,qCAAqC,CACjC,OAAO,EAAE,kCAAkC,GAC5C,UAAU,GAAG,SAAS;IAIzB,mCAAmC,CAC/B,OAAO,EAAE,gCAAgC,GAC1C,UAAU,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAM3C,sBAAsB,IAAI,sBAAsB;IAIhD,iCAAiC,CAC7B,OAAO,EAAE,8BAA8B,GACxC,UAAU;CAGhB;AAED,KAAK,KAAK,CAAC,MAAM,SAAS,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;AAElD,yBAAiB,gBAAgB,CAAC;IAC9B,KAAY,IAAI,CAAC,MAAM,SAAS,OAAO,GAAG,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;CACtE"}
@@ -1,3 +1,4 @@
1
+ import { ScrcpyDeviceMessageParsers } from "../base/index.js";
1
2
  import { AckClipboardHandler, ClipboardStream, ControlMessageTypes, createMediaStreamTransformer, createScrollController, Defaults, parseAudioStreamMetadata, parseDisplay, parseEncoder, parseVideoStreamMetadata, serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, serializeUHidCreateControlMessage, setListDisplays, setListEncoders, UHidOutputStream, } from "./impl/index.js";
2
3
  export class ScrcpyOptions3_1 {
3
4
  static Defaults = Defaults;
@@ -14,6 +15,10 @@ export class ScrcpyOptions3_1 {
14
15
  get uHidOutput() {
15
16
  return this.#uHidOutput;
16
17
  }
18
+ #deviceMessageParsers = new ScrcpyDeviceMessageParsers();
19
+ get deviceMessageParsers() {
20
+ return this.#deviceMessageParsers;
21
+ }
17
22
  constructor(init) {
18
23
  this.value = { ...Defaults, ...init };
19
24
  if (this.value.videoSource === "camera") {
@@ -24,10 +29,10 @@ export class ScrcpyOptions3_1 {
24
29
  }
25
30
  if (this.value.control) {
26
31
  if (this.value.clipboardAutosync) {
27
- this.#clipboard = new ClipboardStream();
28
- this.#ackClipboardHandler = new AckClipboardHandler();
32
+ this.#clipboard = this.#deviceMessageParsers.add(new ClipboardStream());
33
+ this.#ackClipboardHandler = this.#deviceMessageParsers.add(new AckClipboardHandler());
29
34
  }
30
- this.#uHidOutput = new UHidOutputStream();
35
+ this.#uHidOutput = this.#deviceMessageParsers.add(new UHidOutputStream());
31
36
  }
32
37
  }
33
38
  serialize() {
@@ -51,25 +56,6 @@ export class ScrcpyOptions3_1 {
51
56
  parseAudioStreamMetadata(stream) {
52
57
  return parseAudioStreamMetadata(stream, this.value);
53
58
  }
54
- async parseDeviceMessage(id, stream) {
55
- if (await this.#clipboard?.parse(id, stream)) {
56
- return;
57
- }
58
- if (await this.#ackClipboardHandler?.parse(id, stream)) {
59
- return;
60
- }
61
- throw new Error("Unknown device message");
62
- }
63
- endDeviceMessageStream(e) {
64
- if (e) {
65
- this.#clipboard?.error(e);
66
- this.#ackClipboardHandler?.error(e);
67
- }
68
- else {
69
- this.#clipboard?.close();
70
- this.#ackClipboardHandler?.close();
71
- }
72
- }
73
59
  createMediaStreamTransformer() {
74
60
  return createMediaStreamTransformer(this.value);
75
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/3_1/options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/3_1/options.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { MaybePromiseLike } from "@yume-chan/async";
2
2
  import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
3
- import type { AsyncExactReadable, ExactReadable } from "@yume-chan/struct";
4
3
  import type { ScrcpyAudioStreamMetadata, ScrcpyControlMessageType, ScrcpyDisplay, ScrcpyEncoder, ScrcpyMediaStreamPacket, ScrcpyOptions, ScrcpyOptionsListEncoders, ScrcpyScrollController, ScrcpyVideoStream } from "../base/index.js";
4
+ import { ScrcpyDeviceMessageParsers } from "../base/index.js";
5
5
  import type { ScrcpyBackOrScreenOnControlMessage, ScrcpyInjectTouchControlMessage, ScrcpySetClipboardControlMessage, ScrcpyUHidCreateControlMessage, ScrcpyUHidOutputDeviceMessage } from "../latest.js";
6
6
  import type { Init } from "./impl/index.js";
7
7
  export declare class ScrcpyOptions3_2<TVideo extends boolean> implements ScrcpyOptions<Init<TVideo>>, ScrcpyOptionsListEncoders {
@@ -66,6 +66,7 @@ export declare class ScrcpyOptions3_2<TVideo extends boolean> implements ScrcpyO
66
66
  get controlMessageTypes(): readonly ScrcpyControlMessageType[];
67
67
  get clipboard(): ReadableStream<string> | undefined;
68
68
  get uHidOutput(): ReadableStream<ScrcpyUHidOutputDeviceMessage> | undefined;
69
+ get deviceMessageParsers(): ScrcpyDeviceMessageParsers;
69
70
  constructor(init: Init<TVideo>);
70
71
  serialize(): string[];
71
72
  setListDisplays(): void;
@@ -74,8 +75,6 @@ export declare class ScrcpyOptions3_2<TVideo extends boolean> implements ScrcpyO
74
75
  parseEncoder(line: string): ScrcpyEncoder | undefined;
75
76
  parseVideoStreamMetadata(stream: ReadableStream<Uint8Array>): MaybePromiseLike<ScrcpyVideoStream>;
76
77
  parseAudioStreamMetadata(stream: ReadableStream<Uint8Array>): MaybePromiseLike<ScrcpyAudioStreamMetadata>;
77
- parseDeviceMessage(id: number, stream: ExactReadable | AsyncExactReadable): Promise<void>;
78
- endDeviceMessageStream(e?: unknown): void;
79
78
  createMediaStreamTransformer(): TransformStream<Uint8Array, ScrcpyMediaStreamPacket>;
80
79
  serializeInjectTouchControlMessage(message: ScrcpyInjectTouchControlMessage): Uint8Array;
81
80
  serializeBackOrScreenOnControlMessage(message: ScrcpyBackOrScreenOnControlMessage): Uint8Array | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/3_2/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE3E,OAAO,KAAK,EACR,yBAAyB,EACzB,wBAAwB,EACxB,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACR,kCAAkC,EAClC,+BAA+B,EAC/B,gCAAgC,EAChC,8BAA8B,EAC9B,6BAA6B,EAChC,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAqB5C,qBAAa,gBAAgB,CAAC,MAAM,SAAS,OAAO,CAChD,YAAW,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,yBAAyB;;IAEjE,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAY;IAEpC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvC,IAAI,mBAAmB,IAAI,SAAS,wBAAwB,EAAE,CAE7D;IAGD,IAAI,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,SAAS,CAElD;IAKD,IAAI,UAAU,IACR,cAAc,CAAC,6BAA6B,CAAC,GAC7C,SAAS,CAEd;gBAEW,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IAqB9B,SAAS,IAAI,MAAM,EAAE;IAIrB,eAAe,IAAI,IAAI;IAIvB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD,eAAe;IAIf,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,gBAAgB,CAAC,iBAAiB,CAAC;IAItC,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,gBAAgB,CAAC,yBAAyB,CAAC;IAIxC,kBAAkB,CACpB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,aAAa,GAAG,kBAAkB,GAC3C,OAAO,CAAC,IAAI,CAAC;IAYhB,sBAAsB,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAUzC,4BAA4B,IAAI,eAAe,CAC3C,UAAU,EACV,uBAAuB,CAC1B;IAID,kCAAkC,CAC9B,OAAO,EAAE,+BAA+B,GACzC,UAAU;IAIb,qCAAqC,CACjC,OAAO,EAAE,kCAAkC,GAC5C,UAAU,GAAG,SAAS;IAIzB,mCAAmC,CAC/B,OAAO,EAAE,gCAAgC,GAC1C,UAAU,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAM3C,sBAAsB,IAAI,sBAAsB;IAIhD,iCAAiC,CAC7B,OAAO,EAAE,8BAA8B,GACxC,UAAU;CAGhB;AAED,KAAK,KAAK,CAAC,MAAM,SAAS,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;AAElD,yBAAiB,gBAAgB,CAAC;IAC9B,KAAY,IAAI,CAAC,MAAM,SAAS,OAAO,GAAG,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;CACtE"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/3_2/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/E,OAAO,KAAK,EACR,yBAAyB,EACzB,wBAAwB,EACxB,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EACR,kCAAkC,EAClC,+BAA+B,EAC/B,gCAAgC,EAChC,8BAA8B,EAC9B,6BAA6B,EAChC,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAqB5C,qBAAa,gBAAgB,CAAC,MAAM,SAAS,OAAO,CAChD,YAAW,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,yBAAyB;;IAEjE,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAY;IAEpC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvC,IAAI,mBAAmB,IAAI,SAAS,wBAAwB,EAAE,CAE7D;IAGD,IAAI,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,SAAS,CAElD;IAKD,IAAI,UAAU,IACR,cAAc,CAAC,6BAA6B,CAAC,GAC7C,SAAS,CAEd;IAGD,IAAI,oBAAoB,+BAEvB;gBAEW,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IA4B9B,SAAS,IAAI,MAAM,EAAE;IAIrB,eAAe,IAAI,IAAI;IAIvB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD,eAAe;IAIf,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,gBAAgB,CAAC,iBAAiB,CAAC;IAItC,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,gBAAgB,CAAC,yBAAyB,CAAC;IAI9C,4BAA4B,IAAI,eAAe,CAC3C,UAAU,EACV,uBAAuB,CAC1B;IAID,kCAAkC,CAC9B,OAAO,EAAE,+BAA+B,GACzC,UAAU;IAIb,qCAAqC,CACjC,OAAO,EAAE,kCAAkC,GAC5C,UAAU,GAAG,SAAS;IAIzB,mCAAmC,CAC/B,OAAO,EAAE,gCAAgC,GAC1C,UAAU,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAM3C,sBAAsB,IAAI,sBAAsB;IAIhD,iCAAiC,CAC7B,OAAO,EAAE,8BAA8B,GACxC,UAAU;CAGhB;AAED,KAAK,KAAK,CAAC,MAAM,SAAS,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;AAElD,yBAAiB,gBAAgB,CAAC;IAC9B,KAAY,IAAI,CAAC,MAAM,SAAS,OAAO,GAAG,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;CACtE"}
@@ -1,3 +1,4 @@
1
+ import { ScrcpyDeviceMessageParsers } from "../base/index.js";
1
2
  import { AckClipboardHandler, ClipboardStream, ControlMessageTypes, createMediaStreamTransformer, createScrollController, Defaults, parseAudioStreamMetadata, parseDisplay, parseEncoder, parseVideoStreamMetadata, serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, serializeUHidCreateControlMessage, setListDisplays, setListEncoders, UHidOutputStream, } from "./impl/index.js";
2
3
  export class ScrcpyOptions3_2 {
3
4
  static Defaults = Defaults;
@@ -14,6 +15,10 @@ export class ScrcpyOptions3_2 {
14
15
  get uHidOutput() {
15
16
  return this.#uHidOutput;
16
17
  }
18
+ #deviceMessageParsers = new ScrcpyDeviceMessageParsers();
19
+ get deviceMessageParsers() {
20
+ return this.#deviceMessageParsers;
21
+ }
17
22
  constructor(init) {
18
23
  this.value = { ...Defaults, ...init };
19
24
  if (this.value.videoSource === "camera") {
@@ -24,10 +29,10 @@ export class ScrcpyOptions3_2 {
24
29
  }
25
30
  if (this.value.control) {
26
31
  if (this.value.clipboardAutosync) {
27
- this.#clipboard = new ClipboardStream();
28
- this.#ackClipboardHandler = new AckClipboardHandler();
32
+ this.#clipboard = this.#deviceMessageParsers.add(new ClipboardStream());
33
+ this.#ackClipboardHandler = this.#deviceMessageParsers.add(new AckClipboardHandler());
29
34
  }
30
- this.#uHidOutput = new UHidOutputStream();
35
+ this.#uHidOutput = this.#deviceMessageParsers.add(new UHidOutputStream());
31
36
  }
32
37
  }
33
38
  serialize() {
@@ -51,25 +56,6 @@ export class ScrcpyOptions3_2 {
51
56
  parseAudioStreamMetadata(stream) {
52
57
  return parseAudioStreamMetadata(stream, this.value);
53
58
  }
54
- async parseDeviceMessage(id, stream) {
55
- if (await this.#clipboard?.parse(id, stream)) {
56
- return;
57
- }
58
- if (await this.#ackClipboardHandler?.parse(id, stream)) {
59
- return;
60
- }
61
- throw new Error("Unknown device message");
62
- }
63
- endDeviceMessageStream(e) {
64
- if (e) {
65
- this.#clipboard?.error(e);
66
- this.#ackClipboardHandler?.error(e);
67
- }
68
- else {
69
- this.#clipboard?.close();
70
- this.#ackClipboardHandler?.close();
71
- }
72
- }
73
59
  createMediaStreamTransformer() {
74
60
  return createMediaStreamTransformer(this.value);
75
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/3_2/options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/3_2/options.ts"],"names":[],"mappings":"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"}
package/esm/3_3.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ import { ScrcpyOptions3_2 } from "./3_2/index.js";
2
+ export declare class ScrcpyOptions3_3<TVideo extends boolean> extends ScrcpyOptions3_2<TVideo> {
3
+ constructor(init: ScrcpyOptions3_2.Init<TVideo>);
4
+ }
5
+ export declare namespace ScrcpyOptions3_3 {
6
+ type Init<TVideo extends boolean = boolean> = ScrcpyOptions3_2.Init<TVideo>;
7
+ }
8
+ //# sourceMappingURL=3_3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"3_3.d.ts","sourceRoot":"","sources":["../src/3_3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,qBAAa,gBAAgB,CACzB,MAAM,SAAS,OAAO,CACxB,SAAQ,gBAAgB,CAAC,MAAM,CAAC;gBAClB,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;CAGlD;AAED,yBAAiB,gBAAgB,CAAC;IAC9B,KAAY,IAAI,CAAC,MAAM,SAAS,OAAO,GAAG,OAAO,IAC7C,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;CACrC"}
package/esm/3_3.js ADDED
@@ -0,0 +1,7 @@
1
+ import { ScrcpyOptions3_2 } from "./3_2/index.js";
2
+ export class ScrcpyOptions3_3 extends ScrcpyOptions3_2 {
3
+ constructor(init) {
4
+ super(init);
5
+ }
6
+ }
7
+ //# sourceMappingURL=3_3.js.map
package/esm/3_3.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"3_3.js","sourceRoot":"","sources":["../src/3_3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,OAAO,gBAEX,SAAQ,gBAAwB;IAC9B,YAAY,IAAmC;QAC3C,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;CACJ"}
@@ -0,0 +1,3 @@
1
+ export * from "../../3_2/impl/index.js";
2
+ export { createScrollController, ScrollController, } from "./scroll-controller.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/3_3_1/impl/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AAExC,OAAO,EACH,sBAAsB,EACtB,gBAAgB,GACnB,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "../../3_2/impl/index.js";
2
+ export { createScrollController, ScrollController, } from "./scroll-controller.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/3_3_1/impl/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AAExC,OAAO,EACH,sBAAsB,EACtB,gBAAgB,GACnB,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * as PrevImpl from "../../3_2/impl/index.js";
2
+ //# sourceMappingURL=prev.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prev.d.ts","sourceRoot":"","sources":["../../../src/3_3_1/impl/prev.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * as PrevImpl from "../../3_2/impl/index.js";
2
+ //# sourceMappingURL=prev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prev.js","sourceRoot":"","sources":["../../../src/3_3_1/impl/prev.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ScrcpyScrollController } from "../../base/index.js";
2
+ import type { ScrcpyInjectScrollControlMessage } from "../../latest.js";
3
+ export declare class ScrollController implements ScrcpyScrollController {
4
+ serializeScrollMessage(message: ScrcpyInjectScrollControlMessage): Uint8Array | undefined;
5
+ }
6
+ export declare function createScrollController(): ScrcpyScrollController;
7
+ //# sourceMappingURL=scroll-controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-controller.d.ts","sourceRoot":"","sources":["../../../src/3_3_1/impl/scroll-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,iBAAiB,CAAC;AAIxE,qBAAa,gBAAiB,YAAW,sBAAsB;IAC3D,sBAAsB,CAClB,OAAO,EAAE,gCAAgC,GAC1C,UAAU,GAAG,SAAS;CAQ5B;AAED,wBAAgB,sBAAsB,IAAI,sBAAsB,CAE/D"}
@@ -0,0 +1,15 @@
1
+ import { PrevImpl } from "./prev.js";
2
+ export class ScrollController {
3
+ serializeScrollMessage(message) {
4
+ message = {
5
+ ...message,
6
+ scrollX: message.scrollX / 16,
7
+ scrollY: message.scrollY / 16,
8
+ };
9
+ return PrevImpl.InjectScrollControlMessage.serialize(message);
10
+ }
11
+ }
12
+ export function createScrollController() {
13
+ return new ScrollController();
14
+ }
15
+ //# sourceMappingURL=scroll-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-controller.js","sourceRoot":"","sources":["../../../src/3_3_1/impl/scroll-controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,MAAM,OAAO,gBAAgB;IACzB,sBAAsB,CAClB,OAAyC;QAEzC,OAAO,GAAG;YACN,GAAG,OAAO;YACV,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,EAAE;YAC7B,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,EAAE;SAChC,CAAC;QACF,OAAO,QAAQ,CAAC,0BAA0B,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC;CACJ;AAED,MAAM,UAAU,sBAAsB;IAClC,OAAO,IAAI,gBAAgB,EAAE,CAAC;AAClC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./options.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/3_3_1/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./options.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/3_3_1/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -0,0 +1,90 @@
1
+ import type { MaybePromiseLike } from "@yume-chan/async";
2
+ import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
3
+ import type { ScrcpyAudioStreamMetadata, ScrcpyControlMessageType, ScrcpyDisplay, ScrcpyEncoder, ScrcpyMediaStreamPacket, ScrcpyOptions, ScrcpyOptionsListEncoders, ScrcpyScrollController, ScrcpyVideoStream } from "../base/index.js";
4
+ import { ScrcpyDeviceMessageParsers } from "../base/index.js";
5
+ import type { ScrcpyBackOrScreenOnControlMessage, ScrcpyInjectTouchControlMessage, ScrcpySetClipboardControlMessage, ScrcpyUHidCreateControlMessage, ScrcpyUHidOutputDeviceMessage } from "../latest.js";
6
+ import type { Init } from "./impl/index.js";
7
+ export declare class ScrcpyOptions3_3_1<TVideo extends boolean> implements ScrcpyOptions<Init<TVideo>>, ScrcpyOptionsListEncoders {
8
+ #private;
9
+ static readonly Defaults: {
10
+ readonly displayImePolicy: undefined;
11
+ readonly vdDestroyContent: false;
12
+ readonly captureOrientation: undefined;
13
+ readonly angle: 0;
14
+ readonly screenOffTimeout: undefined;
15
+ readonly listApps: false;
16
+ readonly newDisplay: undefined;
17
+ readonly vdSystemDecorations: true;
18
+ readonly audioDup: false;
19
+ readonly videoSource: "display";
20
+ readonly displayId: 0;
21
+ readonly cameraId: undefined;
22
+ readonly cameraSize: undefined;
23
+ readonly cameraFacing: undefined;
24
+ readonly cameraAr: undefined;
25
+ readonly cameraFps: undefined;
26
+ readonly cameraHighSpeed: false;
27
+ readonly listCameras: false;
28
+ readonly listCameraSizes: false;
29
+ readonly video: true;
30
+ readonly audioSource: "output";
31
+ readonly scid: undefined;
32
+ readonly videoCodec: "h264";
33
+ readonly videoBitRate: 8000000;
34
+ readonly videoCodecOptions: undefined;
35
+ readonly videoEncoder: undefined;
36
+ readonly audio: true;
37
+ readonly audioCodec: "opus";
38
+ readonly audioBitRate: 128000;
39
+ readonly audioCodecOptions: undefined;
40
+ readonly audioEncoder: undefined;
41
+ readonly listEncoders: false;
42
+ readonly listDisplays: false;
43
+ readonly sendCodecMeta: true;
44
+ readonly powerOn: true;
45
+ readonly cleanup: true;
46
+ readonly downsizeOnError: true;
47
+ readonly sendDeviceMeta: true;
48
+ readonly sendDummyByte: true;
49
+ readonly clipboardAutosync: true;
50
+ readonly logLevel: "debug";
51
+ readonly lockVideoOrientation: -1;
52
+ readonly powerOffOnClose: false;
53
+ readonly encoderName: undefined;
54
+ readonly maxSize: 0;
55
+ readonly bitRate: 8000000;
56
+ readonly maxFps: 0;
57
+ readonly tunnelForward: false;
58
+ readonly crop: undefined;
59
+ readonly sendFrameMeta: true;
60
+ readonly control: true;
61
+ readonly showTouches: false;
62
+ readonly stayAwake: false;
63
+ readonly codecOptions: undefined;
64
+ };
65
+ readonly value: Required<Init<TVideo>>;
66
+ get controlMessageTypes(): readonly ScrcpyControlMessageType[];
67
+ get clipboard(): ReadableStream<string> | undefined;
68
+ get uHidOutput(): ReadableStream<ScrcpyUHidOutputDeviceMessage> | undefined;
69
+ get deviceMessageParsers(): ScrcpyDeviceMessageParsers;
70
+ constructor(init: Init<TVideo>);
71
+ serialize(): string[];
72
+ setListDisplays(): void;
73
+ parseDisplay(line: string): ScrcpyDisplay | undefined;
74
+ setListEncoders(): void;
75
+ parseEncoder(line: string): ScrcpyEncoder | undefined;
76
+ parseVideoStreamMetadata(stream: ReadableStream<Uint8Array>): MaybePromiseLike<ScrcpyVideoStream>;
77
+ parseAudioStreamMetadata(stream: ReadableStream<Uint8Array>): MaybePromiseLike<ScrcpyAudioStreamMetadata>;
78
+ createMediaStreamTransformer(): TransformStream<Uint8Array, ScrcpyMediaStreamPacket>;
79
+ serializeInjectTouchControlMessage(message: ScrcpyInjectTouchControlMessage): Uint8Array;
80
+ serializeBackOrScreenOnControlMessage(message: ScrcpyBackOrScreenOnControlMessage): Uint8Array | undefined;
81
+ serializeSetClipboardControlMessage(message: ScrcpySetClipboardControlMessage): Uint8Array | [Uint8Array, Promise<void>];
82
+ createScrollController(): ScrcpyScrollController;
83
+ serializeUHidCreateControlMessage(message: ScrcpyUHidCreateControlMessage): Uint8Array;
84
+ }
85
+ type Init_<TVideo extends boolean> = Init<TVideo>;
86
+ export declare namespace ScrcpyOptions3_3_1 {
87
+ type Init<TVideo extends boolean = boolean> = Init_<TVideo>;
88
+ }
89
+ export {};
90
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/3_3_1/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/E,OAAO,KAAK,EACR,yBAAyB,EACzB,wBAAwB,EACxB,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EACR,kCAAkC,EAClC,+BAA+B,EAC/B,gCAAgC,EAChC,8BAA8B,EAC9B,6BAA6B,EAChC,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAqB5C,qBAAa,kBAAkB,CAAC,MAAM,SAAS,OAAO,CAClD,YAAW,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,yBAAyB;;IAEjE,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAY;IAEpC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvC,IAAI,mBAAmB,IAAI,SAAS,wBAAwB,EAAE,CAE7D;IAGD,IAAI,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,SAAS,CAElD;IAKD,IAAI,UAAU,IACR,cAAc,CAAC,6BAA6B,CAAC,GAC7C,SAAS,CAEd;IAGD,IAAI,oBAAoB,+BAEvB;gBAEW,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IA4B9B,SAAS,IAAI,MAAM,EAAE;IAIrB,eAAe,IAAI,IAAI;IAIvB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD,eAAe;IAIf,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,gBAAgB,CAAC,iBAAiB,CAAC;IAItC,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,gBAAgB,CAAC,yBAAyB,CAAC;IAI9C,4BAA4B,IAAI,eAAe,CAC3C,UAAU,EACV,uBAAuB,CAC1B;IAID,kCAAkC,CAC9B,OAAO,EAAE,+BAA+B,GACzC,UAAU;IAIb,qCAAqC,CACjC,OAAO,EAAE,kCAAkC,GAC5C,UAAU,GAAG,SAAS;IAIzB,mCAAmC,CAC/B,OAAO,EAAE,gCAAgC,GAC1C,UAAU,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAM3C,sBAAsB,IAAI,sBAAsB;IAIhD,iCAAiC,CAC7B,OAAO,EAAE,8BAA8B,GACxC,UAAU;CAGhB;AAED,KAAK,KAAK,CAAC,MAAM,SAAS,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;AAElD,yBAAiB,kBAAkB,CAAC;IAChC,KAAY,IAAI,CAAC,MAAM,SAAS,OAAO,GAAG,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;CACtE"}