@yume-chan/scrcpy 0.0.19 → 0.0.21

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 (278) hide show
  1. package/CHANGELOG.json +30 -0
  2. package/CHANGELOG.md +17 -1
  3. package/README.md +76 -266
  4. package/esm/codec/av1.js +2 -2
  5. package/esm/codec/av1.js.map +1 -1
  6. package/esm/codec/h264.d.ts +1 -21
  7. package/esm/codec/h264.d.ts.map +1 -1
  8. package/esm/codec/h264.js +15 -236
  9. package/esm/codec/h264.js.map +1 -1
  10. package/esm/codec/h265.d.ts +454 -0
  11. package/esm/codec/h265.d.ts.map +1 -1
  12. package/esm/codec/h265.js +1062 -2
  13. package/esm/codec/h265.js.map +1 -1
  14. package/esm/codec/index.d.ts +1 -0
  15. package/esm/codec/index.d.ts.map +1 -1
  16. package/esm/codec/index.js +1 -0
  17. package/esm/codec/index.js.map +1 -1
  18. package/esm/codec/nalu.d.ts +37 -0
  19. package/esm/codec/nalu.d.ts.map +1 -0
  20. package/esm/codec/nalu.js +323 -0
  21. package/esm/codec/nalu.js.map +1 -0
  22. package/esm/control/back-or-screen-on.d.ts +1 -1
  23. package/esm/control/back-or-screen-on.d.ts.map +1 -1
  24. package/esm/control/hover-helper.d.ts +1 -1
  25. package/esm/control/hover-helper.d.ts.map +1 -1
  26. package/esm/control/hover-helper.js +8 -9
  27. package/esm/control/hover-helper.js.map +1 -1
  28. package/esm/control/index.d.ts +2 -0
  29. package/esm/control/index.d.ts.map +1 -1
  30. package/esm/control/index.js +2 -0
  31. package/esm/control/index.js.map +1 -1
  32. package/esm/control/inject-keycode.d.ts +1 -2
  33. package/esm/control/inject-keycode.d.ts.map +1 -1
  34. package/esm/control/inject-keycode.js +4 -5
  35. package/esm/control/inject-keycode.js.map +1 -1
  36. package/esm/control/inject-text.d.ts +1 -2
  37. package/esm/control/inject-text.d.ts.map +1 -1
  38. package/esm/control/inject-text.js +1 -2
  39. package/esm/control/inject-text.js.map +1 -1
  40. package/esm/control/inject-touch.d.ts +15 -20
  41. package/esm/control/inject-touch.d.ts.map +1 -1
  42. package/esm/control/inject-touch.js +16 -43
  43. package/esm/control/inject-touch.js.map +1 -1
  44. package/esm/control/rotate-device.d.ts +2 -4
  45. package/esm/control/rotate-device.d.ts.map +1 -1
  46. package/esm/control/rotate-device.js +2 -3
  47. package/esm/control/rotate-device.js.map +1 -1
  48. package/esm/control/serializer.d.ts +11 -23
  49. package/esm/control/serializer.d.ts.map +1 -1
  50. package/esm/control/serializer.js +23 -52
  51. package/esm/control/serializer.js.map +1 -1
  52. package/esm/control/set-screen-power-mode.d.ts +1 -2
  53. package/esm/control/set-screen-power-mode.d.ts.map +1 -1
  54. package/esm/control/set-screen-power-mode.js +2 -3
  55. package/esm/control/set-screen-power-mode.js.map +1 -1
  56. package/esm/control/type.d.ts +14 -0
  57. package/esm/control/type.d.ts.map +1 -1
  58. package/esm/control/type.js +23 -1
  59. package/esm/control/type.js.map +1 -1
  60. package/esm/control/writer.d.ts +26 -0
  61. package/esm/control/writer.d.ts.map +1 -0
  62. package/esm/control/writer.js +53 -0
  63. package/esm/control/writer.js.map +1 -0
  64. package/esm/device-message/stream.d.ts.map +1 -1
  65. package/esm/device-message/stream.js +23 -8
  66. package/esm/device-message/stream.js.map +1 -1
  67. package/esm/device-message/type.js +1 -1
  68. package/esm/device-message/type.js.map +1 -1
  69. package/esm/index.d.ts +1 -2
  70. package/esm/index.d.ts.map +1 -1
  71. package/esm/index.js +1 -2
  72. package/esm/index.js.map +1 -1
  73. package/esm/options/1_16/codec-options.d.ts +2 -3
  74. package/esm/options/1_16/codec-options.d.ts.map +1 -1
  75. package/esm/options/1_16/codec-options.js.map +1 -1
  76. package/esm/options/1_16/index.d.ts +3 -1
  77. package/esm/options/1_16/index.d.ts.map +1 -1
  78. package/esm/options/1_16/index.js +3 -1
  79. package/esm/options/1_16/index.js.map +1 -1
  80. package/esm/options/1_16/init.js +2 -2
  81. package/esm/options/1_16/init.js.map +1 -1
  82. package/esm/options/1_16/options.d.ts +42 -96
  83. package/esm/options/1_16/options.d.ts.map +1 -1
  84. package/esm/options/1_16/options.js +104 -142
  85. package/esm/options/1_16/options.js.map +1 -1
  86. package/esm/options/1_16/scroll.d.ts +2 -4
  87. package/esm/options/1_16/scroll.d.ts.map +1 -1
  88. package/esm/options/1_16/scroll.js +13 -14
  89. package/esm/options/1_16/scroll.js.map +1 -1
  90. package/esm/options/1_17.d.ts +1 -0
  91. package/esm/options/1_17.d.ts.map +1 -1
  92. package/esm/options/1_17.js +8 -3
  93. package/esm/options/1_17.js.map +1 -1
  94. package/esm/options/1_18.d.ts +49 -11
  95. package/esm/options/1_18.d.ts.map +1 -1
  96. package/esm/options/1_18.js +64 -32
  97. package/esm/options/1_18.js.map +1 -1
  98. package/esm/options/1_21.d.ts +26 -7
  99. package/esm/options/1_21.d.ts.map +1 -1
  100. package/esm/options/1_21.js +34 -20
  101. package/esm/options/1_21.js.map +1 -1
  102. package/esm/options/1_22/index.d.ts +1 -0
  103. package/esm/options/1_22/index.d.ts.map +1 -1
  104. package/esm/options/1_22/index.js +1 -0
  105. package/esm/options/1_22/index.js.map +1 -1
  106. package/esm/options/1_22/options.d.ts +32 -26
  107. package/esm/options/1_22/options.d.ts.map +1 -1
  108. package/esm/options/1_22/options.js +26 -16
  109. package/esm/options/1_22/options.js.map +1 -1
  110. package/esm/options/1_22/scroll.d.ts +1 -1
  111. package/esm/options/1_22/scroll.d.ts.map +1 -1
  112. package/esm/options/1_22/scroll.js +1 -1
  113. package/esm/options/1_22/scroll.js.map +1 -1
  114. package/esm/options/1_23.d.ts +32 -8
  115. package/esm/options/1_23.d.ts.map +1 -1
  116. package/esm/options/1_23.js +23 -14
  117. package/esm/options/1_23.js.map +1 -1
  118. package/esm/options/1_24.d.ts +29 -4
  119. package/esm/options/1_24.d.ts.map +1 -1
  120. package/esm/options/1_24.js +16 -7
  121. package/esm/options/1_24.js.map +1 -1
  122. package/esm/options/1_25/options.d.ts +6 -2
  123. package/esm/options/1_25/options.d.ts.map +1 -1
  124. package/esm/options/1_25/options.js +16 -2
  125. package/esm/options/1_25/options.js.map +1 -1
  126. package/esm/options/1_25/scroll.d.ts.map +1 -1
  127. package/esm/options/1_25/scroll.js +2 -1
  128. package/esm/options/1_25/scroll.js.map +1 -1
  129. package/esm/options/2_0.d.ts +12 -8
  130. package/esm/options/2_0.d.ts.map +1 -1
  131. package/esm/options/2_0.js +82 -15
  132. package/esm/options/2_0.js.map +1 -1
  133. package/esm/options/2_1.d.ts +48 -0
  134. package/esm/options/2_1.d.ts.map +1 -0
  135. package/esm/options/2_1.js +23 -0
  136. package/esm/options/2_1.js.map +1 -0
  137. package/esm/options/codec.d.ts +4 -4
  138. package/esm/options/codec.d.ts.map +1 -1
  139. package/esm/options/codec.js +5 -6
  140. package/esm/options/codec.js.map +1 -1
  141. package/esm/options/index.d.ts +5 -0
  142. package/esm/options/index.d.ts.map +1 -1
  143. package/esm/options/index.js +5 -0
  144. package/esm/options/index.js.map +1 -1
  145. package/esm/options/latest.d.ts +4 -5
  146. package/esm/options/latest.d.ts.map +1 -1
  147. package/esm/options/latest.js +2 -3
  148. package/esm/options/latest.js.map +1 -1
  149. package/esm/options/types.d.ts +74 -33
  150. package/esm/options/types.d.ts.map +1 -1
  151. package/esm/options/types.js +62 -0
  152. package/esm/options/types.js.map +1 -1
  153. package/package.json +9 -19
  154. package/src/codec/av1.ts +33 -0
  155. package/src/codec/h264.ts +317 -0
  156. package/src/codec/h265.ts +1375 -0
  157. package/src/codec/index.ts +4 -0
  158. package/src/codec/nalu.ts +391 -0
  159. package/src/control/back-or-screen-on.ts +1 -1
  160. package/{esm/control/simple.js → src/control/basic.ts} +3 -3
  161. package/src/control/hover-helper.ts +10 -11
  162. package/src/control/index.ts +2 -0
  163. package/src/control/inject-keycode.ts +1 -3
  164. package/src/control/inject-text.ts +1 -3
  165. package/src/control/inject-touch.ts +16 -55
  166. package/src/control/rotate-device.ts +2 -7
  167. package/src/control/serializer.ts +50 -113
  168. package/src/control/set-screen-power-mode.ts +1 -3
  169. package/src/control/type.ts +32 -0
  170. package/src/control/writer.ts +85 -0
  171. package/src/device-message/stream.ts +32 -12
  172. package/src/index.ts +1 -2
  173. package/src/options/1_16/codec-options.ts +6 -7
  174. package/src/options/1_16/float-to-uint16.ts +33 -0
  175. package/src/options/1_16/index.ts +3 -1
  176. package/src/options/1_16/init.ts +80 -0
  177. package/src/options/1_16/message.ts +55 -0
  178. package/src/options/1_16/options.ts +147 -260
  179. package/src/options/1_16/scroll.ts +17 -18
  180. package/src/options/1_17.ts +66 -0
  181. package/src/options/1_18.ts +103 -39
  182. package/src/options/1_21.ts +49 -27
  183. package/src/options/1_22/index.ts +1 -0
  184. package/src/options/1_22/init.ts +19 -0
  185. package/src/options/1_22/options.ts +38 -45
  186. package/src/options/1_22/scroll.ts +3 -3
  187. package/src/options/1_23.ts +34 -22
  188. package/src/options/1_24.ts +23 -11
  189. package/src/options/1_25/options.ts +22 -4
  190. package/src/options/1_25/scroll.ts +4 -3
  191. package/src/options/2_0.ts +342 -0
  192. package/src/options/2_1.ts +35 -0
  193. package/src/options/codec.ts +98 -0
  194. package/src/options/index.ts +5 -0
  195. package/src/options/latest.ts +12 -0
  196. package/src/options/types.ts +164 -43
  197. package/tsconfig.build.json +9 -1
  198. package/tsconfig.build.tsbuildinfo +1 -1
  199. package/bin/scrcpy-server +0 -0
  200. package/bin/version.d.ts +0 -1
  201. package/bin/version.js +0 -1
  202. package/esm/adb/client.d.ts +0 -41
  203. package/esm/adb/client.d.ts.map +0 -1
  204. package/esm/adb/client.js +0 -224
  205. package/esm/adb/client.js.map +0 -1
  206. package/esm/adb/connection.d.ts +0 -49
  207. package/esm/adb/connection.d.ts.map +0 -1
  208. package/esm/adb/connection.js +0 -122
  209. package/esm/adb/connection.js.map +0 -1
  210. package/esm/adb/index.d.ts +0 -4
  211. package/esm/adb/index.d.ts.map +0 -1
  212. package/esm/adb/index.js +0 -4
  213. package/esm/adb/index.js.map +0 -1
  214. package/esm/adb/options/1_16.d.ts +0 -8
  215. package/esm/adb/options/1_16.d.ts.map +0 -1
  216. package/esm/adb/options/1_16.js +0 -20
  217. package/esm/adb/options/1_16.js.map +0 -1
  218. package/esm/adb/options/1_22.d.ts +0 -8
  219. package/esm/adb/options/1_22.d.ts.map +0 -1
  220. package/esm/adb/options/1_22.js +0 -17
  221. package/esm/adb/options/1_22.js.map +0 -1
  222. package/esm/adb/options/1_26.d.ts +0 -9
  223. package/esm/adb/options/1_26.d.ts.map +0 -1
  224. package/esm/adb/options/1_26.js +0 -11
  225. package/esm/adb/options/1_26.js.map +0 -1
  226. package/esm/adb/options/2_0.d.ts +0 -8
  227. package/esm/adb/options/2_0.d.ts.map +0 -1
  228. package/esm/adb/options/2_0.js +0 -13
  229. package/esm/adb/options/2_0.js.map +0 -1
  230. package/esm/adb/options/index.d.ts +0 -4
  231. package/esm/adb/options/index.d.ts.map +0 -1
  232. package/esm/adb/options/index.js +0 -4
  233. package/esm/adb/options/index.js.map +0 -1
  234. package/esm/adb/options/types.d.ts +0 -24
  235. package/esm/adb/options/types.d.ts.map +0 -1
  236. package/esm/adb/options/types.js +0 -37
  237. package/esm/adb/options/types.js.map +0 -1
  238. package/esm/codec.d.ts +0 -34
  239. package/esm/codec.d.ts.map +0 -1
  240. package/esm/codec.js +0 -37
  241. package/esm/codec.js.map +0 -1
  242. package/esm/control/simple.d.ts +0 -5
  243. package/esm/control/simple.d.ts.map +0 -1
  244. package/esm/control/simple.js.map +0 -1
  245. package/esm/decoder.d.ts +0 -2
  246. package/esm/decoder.d.ts.map +0 -1
  247. package/esm/decoder.js +0 -2
  248. package/esm/decoder.js.map +0 -1
  249. package/esm/options/1.17.d.ts +0 -3
  250. package/esm/options/1.17.d.ts.map +0 -1
  251. package/esm/options/1.17.js +0 -2
  252. package/esm/options/1.17.js.map +0 -1
  253. package/esm/options/1_16/h264-configuration.d.ts +0 -49
  254. package/esm/options/1_16/h264-configuration.d.ts.map +0 -1
  255. package/esm/options/1_16/h264-configuration.js +0 -414
  256. package/esm/options/1_16/h264-configuration.js.map +0 -1
  257. package/esm/options/1_16/sps.d.ts +0 -22
  258. package/esm/options/1_16/sps.d.ts.map +0 -1
  259. package/esm/options/1_16/sps.js +0 -263
  260. package/esm/options/1_16/sps.js.map +0 -1
  261. package/esm/options/1_26.d.ts +0 -57
  262. package/esm/options/1_26.d.ts.map +0 -1
  263. package/esm/options/1_26.js +0 -67
  264. package/esm/options/1_26.js.map +0 -1
  265. package/esm/options/2.d.ts +0 -57
  266. package/esm/options/2.d.ts.map +0 -1
  267. package/esm/options/2.js +0 -67
  268. package/esm/options/2.js.map +0 -1
  269. package/scripts/fetch-server.cjs +0 -38
  270. package/src/adb/client.ts +0 -329
  271. package/src/adb/connection.ts +0 -209
  272. package/src/adb/index.ts +0 -3
  273. package/src/adb/options/1_16.ts +0 -32
  274. package/src/adb/options/1_22.ts +0 -26
  275. package/src/adb/options/index.ts +0 -3
  276. package/src/adb/options/types.ts +0 -75
  277. package/src/codec.ts +0 -35
  278. package/src/options/1_16/h264-configuration.ts +0 -485
@@ -0,0 +1,53 @@
1
+ import { ConsumableWritableStream } from "@yume-chan/stream-extra";
2
+ import { ScrcpyControlMessageSerializer } from "./serializer.js";
3
+ export class ScrcpyControlMessageWriter {
4
+ #writer;
5
+ #serializer;
6
+ constructor(writer, options) {
7
+ this.#writer = writer;
8
+ this.#serializer = new ScrcpyControlMessageSerializer(options);
9
+ }
10
+ async #write(message) {
11
+ await ConsumableWritableStream.write(this.#writer, message);
12
+ }
13
+ async injectKeyCode(message) {
14
+ await this.#write(this.#serializer.injectKeyCode(message));
15
+ }
16
+ async injectText(text) {
17
+ await this.#write(this.#serializer.injectText(text));
18
+ }
19
+ /**
20
+ * `pressure` is a float value between 0 and 1.
21
+ */
22
+ async injectTouch(message) {
23
+ await this.#write(this.#serializer.injectTouch(message));
24
+ }
25
+ /**
26
+ * `scrollX` and `scrollY` are float values between 0 and 1.
27
+ */
28
+ async injectScroll(message) {
29
+ const data = this.#serializer.injectScroll(message);
30
+ if (data) {
31
+ await this.#write(data);
32
+ }
33
+ }
34
+ async backOrScreenOn(action) {
35
+ const data = this.#serializer.backOrScreenOn(action);
36
+ if (data) {
37
+ await this.#write(data);
38
+ }
39
+ }
40
+ async setScreenPowerMode(mode) {
41
+ await this.#write(this.#serializer.setScreenPowerMode(mode));
42
+ }
43
+ async rotateDevice() {
44
+ await this.#write(this.#serializer.rotateDevice());
45
+ }
46
+ releaseLock() {
47
+ this.#writer.releaseLock();
48
+ }
49
+ async close() {
50
+ await this.#writer.close();
51
+ }
52
+ }
53
+ //# sourceMappingURL=writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/control/writer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAUnE,OAAO,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAGjE,MAAM,OAAO,0BAA0B;IACnC,OAAO,CAAsD;IAC7D,WAAW,CAAiC;IAE5C,YACI,MAA2D,EAC3D,OAA8B;QAE9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,8BAA8B,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAmB;QAC5B,MAAM,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,aAAa,CACf,OAAwD;QAExD,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY;QACzB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,OAAsD;QACpE,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CACd,OAAuD;QAEvD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,IAAI,EAAE;YACN,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC3B;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAA6B;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,IAAI,EAAE;YACN,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC3B;IACL,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAA4B;QACjD,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,YAAY;QACd,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,WAAW;QACP,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,KAAK;QACP,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/device-message/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAG9D,MAAM,MAAM,mBAAmB,GACzB,4BAA4B,GAC5B,+BAA+B,CAAC;AAEtC,qBAAa,oCAAqC,SAAQ,uBAAuB,CAAC,mBAAmB,CAAC;;CAkBrG"}
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/device-message/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAOlE,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAG9D,MAAM,MAAM,mBAAmB,GACzB,4BAA4B,GAC5B,+BAA+B,CAAC;AAEtC,qBAAa,oCAAqC,SAAQ,uBAAuB,CAAC,mBAAmB,CAAC;;CAiCrG"}
@@ -1,18 +1,33 @@
1
1
  import { BufferedTransformStream } from "@yume-chan/stream-extra";
2
+ import { ExactReadableEndedError, StructEmptyError, StructNotEnoughDataError, } from "@yume-chan/struct";
2
3
  import { ScrcpyAckClipboardDeviceMessage } from "./ack-clipboard.js";
3
4
  import { ScrcpyClipboardDeviceMessage } from "./clipboard.js";
4
5
  import { ScrcpyDeviceMessageType } from "./type.js";
5
6
  export class ScrcpyDeviceMessageDeserializeStream extends BufferedTransformStream {
6
7
  constructor() {
7
8
  super(async (stream) => {
8
- const type = await stream.read(1);
9
- switch (type[0]) {
10
- case ScrcpyDeviceMessageType.Clipboard:
11
- return await ScrcpyClipboardDeviceMessage.deserialize(stream);
12
- case ScrcpyDeviceMessageType.AckClipboard:
13
- return await ScrcpyAckClipboardDeviceMessage.deserialize(stream);
14
- default:
15
- throw new Error("unknown control message type");
9
+ try {
10
+ const type = await stream.readExactly(1);
11
+ switch (type[0]) {
12
+ case ScrcpyDeviceMessageType.Clipboard:
13
+ return await ScrcpyClipboardDeviceMessage.deserialize(stream);
14
+ case ScrcpyDeviceMessageType.AckClipboard:
15
+ return await ScrcpyAckClipboardDeviceMessage.deserialize(stream);
16
+ default:
17
+ throw new Error("Unsupported control message type");
18
+ }
19
+ }
20
+ catch (e) {
21
+ // Can't read the `type` byte
22
+ if (e instanceof ExactReadableEndedError) {
23
+ throw new StructEmptyError();
24
+ }
25
+ // Can't read struct body,
26
+ // treat as not enough data because `type` byte is already read
27
+ if (e instanceof StructEmptyError) {
28
+ throw new StructNotEnoughDataError();
29
+ }
30
+ throw e;
16
31
  }
17
32
  });
18
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/device-message/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAMpD,MAAM,OAAO,oCAAqC,SAAQ,uBAA4C;IAClG;QACI,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACnB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClC,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE;gBACb,KAAK,uBAAuB,CAAC,SAAS;oBAClC,OAAO,MAAM,4BAA4B,CAAC,WAAW,CACjD,MAAM,CACT,CAAC;gBACN,KAAK,uBAAuB,CAAC,YAAY;oBACrC,OAAO,MAAM,+BAA+B,CAAC,WAAW,CACpD,MAAM,CACT,CAAC;gBACN;oBACI,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;aACvD;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/device-message/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EACH,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,GAC3B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAMpD,MAAM,OAAO,oCAAqC,SAAQ,uBAA4C;IAClG;QACI,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACnB,IAAI;gBACA,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACzC,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE;oBACb,KAAK,uBAAuB,CAAC,SAAS;wBAClC,OAAO,MAAM,4BAA4B,CAAC,WAAW,CACjD,MAAM,CACT,CAAC;oBACN,KAAK,uBAAuB,CAAC,YAAY;wBACrC,OAAO,MAAM,+BAA+B,CAAC,WAAW,CACpD,MAAM,CACT,CAAC;oBACN;wBACI,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;iBAC3D;aACJ;YAAC,OAAO,CAAC,EAAE;gBACR,6BAA6B;gBAC7B,IAAI,CAAC,YAAY,uBAAuB,EAAE;oBACtC,MAAM,IAAI,gBAAgB,EAAE,CAAC;iBAChC;gBAED,0BAA0B;gBAC1B,+DAA+D;gBAC/D,IAAI,CAAC,YAAY,gBAAgB,EAAE;oBAC/B,MAAM,IAAI,wBAAwB,EAAE,CAAC;iBACxC;gBAED,MAAM,CAAC,CAAC;aACX;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -3,5 +3,5 @@ export var ScrcpyDeviceMessageType;
3
3
  (function (ScrcpyDeviceMessageType) {
4
4
  ScrcpyDeviceMessageType[ScrcpyDeviceMessageType["Clipboard"] = 0] = "Clipboard";
5
5
  ScrcpyDeviceMessageType[ScrcpyDeviceMessageType["AckClipboard"] = 1] = "AckClipboard";
6
- })(ScrcpyDeviceMessageType = ScrcpyDeviceMessageType || (ScrcpyDeviceMessageType = {}));
6
+ })(ScrcpyDeviceMessageType || (ScrcpyDeviceMessageType = {}));
7
7
  //# sourceMappingURL=type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/device-message/type.ts"],"names":[],"mappings":"AAAA,sJAAsJ;AACtJ,MAAM,CAAN,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IAC/B,+EAAS,CAAA;IACT,qFAAY,CAAA;AAChB,CAAC,EAHW,uBAAuB,GAAvB,uBAAuB,KAAvB,uBAAuB,QAGlC"}
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/device-message/type.ts"],"names":[],"mappings":"AAAA,sJAAsJ;AACtJ,MAAM,CAAN,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IAC/B,+EAAS,CAAA;IACT,qFAAY,CAAA;AAChB,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,QAGlC"}
package/esm/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
- export * from "./adb/index.js";
2
- export * from "./codec.js";
1
+ export * from "./codec/index.js";
3
2
  export * from "./control/index.js";
4
3
  export * from "./device-message/index.js";
5
4
  export * from "./options/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC"}
package/esm/index.js CHANGED
@@ -1,5 +1,4 @@
1
- export * from "./adb/index.js";
2
- export * from "./codec.js";
1
+ export * from "./codec/index.js";
3
2
  export * from "./control/index.js";
4
3
  export * from "./device-message/index.js";
5
4
  export * from "./options/index.js";
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC"}
@@ -1,12 +1,11 @@
1
- import type { AndroidCodecLevel, AndroidCodecProfile } from "../../codec.js";
2
1
  import type { ScrcpyOptionValue } from "../types.js";
3
2
  /**
4
3
  * If the option you need is not in this type,
5
4
  * please file an issue on GitHub.
6
5
  */
7
6
  export interface CodecOptionsInit {
8
- profile: AndroidCodecProfile;
9
- level: AndroidCodecLevel;
7
+ profile: number;
8
+ level: number;
10
9
  iFrameInterval: number;
11
10
  maxBframes: number;
12
11
  repeatPreviousFrameAfter: number;
@@ -1 +1 @@
1
- {"version":3,"file":"codec-options.d.ts","sourceRoot":"","sources":["../../../src/options/1_16/codec-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,KAAK,EAAE,iBAAiB,CAAC;IAEzB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,wBAAwB,EAAE,MAAM,CAAC;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;CAC9B;AAaD,qBAAa,YAAa,YAAW,iBAAiB;IAC3C,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;gBAErB,KAAK,GAAE,OAAO,CAAC,gBAAgB,CAAM;IAIjD,aAAa,IAAI,MAAM,GAAG,SAAS;CAgB7C"}
1
+ {"version":3,"file":"codec-options.d.ts","sourceRoot":"","sources":["../../../src/options/1_16/codec-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IAEd,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,wBAAwB,EAAE,MAAM,CAAC;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;CAC9B;AAaD,qBAAa,YAAa,YAAW,iBAAiB;IAClD,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;gBAErB,KAAK,GAAE,OAAO,CAAC,gBAAgB,CAAM;IAIjD,aAAa,IAAI,MAAM,GAAG,SAAS;CAgBtC"}
@@ -1 +1 @@
1
- {"version":3,"file":"codec-options.js","sourceRoot":"","sources":["../../../src/options/1_16/codec-options.ts"],"names":[],"mappings":"AAkBA,SAAS,UAAU,CAAC,KAAa;IAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,kBAAkB,GAEpB;IACA,wBAAwB,EAAE,MAAM;IAChC,kBAAkB,EAAE,MAAM;CAC7B,CAAC;AAEF,MAAM,OAAO,YAAY;IACd,KAAK,CAA4B;IAExC,YAAmB,QAAmC,EAAE;QACpD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEM,aAAa;QAChB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CACrC,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,OAAO;aACT,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAClB,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAA6B,CAAC,CAAC;YAC/D,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,EAAE,CAAC;QAClE,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;CACJ"}
1
+ {"version":3,"file":"codec-options.js","sourceRoot":"","sources":["../../../src/options/1_16/codec-options.ts"],"names":[],"mappings":"AAiBA,SAAS,UAAU,CAAC,KAAa;IAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,kBAAkB,GAEpB;IACA,wBAAwB,EAAE,MAAM;IAChC,kBAAkB,EAAE,MAAM;CAC7B,CAAC;AAEF,MAAM,OAAO,YAAY;IACrB,KAAK,CAA4B;IAEjC,YAAY,QAAmC,EAAE;QAC7C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,aAAa;QACT,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CACrC,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,OAAO;aACT,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAClB,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAA6B,CAAC,CAAC;YAC/D,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,EAAE,CAAC;QAClE,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;CACJ"}
@@ -1,5 +1,7 @@
1
1
  export * from "./codec-options.js";
2
- export * from "./h264-configuration.js";
2
+ export * from "./float-to-uint16.js";
3
+ export * from "./init.js";
4
+ export * from "./message.js";
3
5
  export * from "./options.js";
4
6
  export * from "./scroll.js";
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/options/1_16/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/options/1_16/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
@@ -1,5 +1,7 @@
1
1
  export * from "./codec-options.js";
2
- export * from "./h264-configuration.js";
2
+ export * from "./float-to-uint16.js";
3
+ export * from "./init.js";
4
+ export * from "./message.js";
3
5
  export * from "./options.js";
4
6
  export * from "./scroll.js";
5
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/options/1_16/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/options/1_16/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
@@ -4,7 +4,7 @@ export var ScrcpyLogLevel1_16;
4
4
  ScrcpyLogLevel1_16["Info"] = "info";
5
5
  ScrcpyLogLevel1_16["Warn"] = "warn";
6
6
  ScrcpyLogLevel1_16["Error"] = "error";
7
- })(ScrcpyLogLevel1_16 = ScrcpyLogLevel1_16 || (ScrcpyLogLevel1_16 = {}));
7
+ })(ScrcpyLogLevel1_16 || (ScrcpyLogLevel1_16 = {}));
8
8
  export var ScrcpyVideoOrientation1_16;
9
9
  (function (ScrcpyVideoOrientation1_16) {
10
10
  ScrcpyVideoOrientation1_16[ScrcpyVideoOrientation1_16["Unlocked"] = -1] = "Unlocked";
@@ -12,5 +12,5 @@ export var ScrcpyVideoOrientation1_16;
12
12
  ScrcpyVideoOrientation1_16[ScrcpyVideoOrientation1_16["Landscape"] = 1] = "Landscape";
13
13
  ScrcpyVideoOrientation1_16[ScrcpyVideoOrientation1_16["PortraitFlipped"] = 2] = "PortraitFlipped";
14
14
  ScrcpyVideoOrientation1_16[ScrcpyVideoOrientation1_16["LandscapeFlipped"] = 3] = "LandscapeFlipped";
15
- })(ScrcpyVideoOrientation1_16 = ScrcpyVideoOrientation1_16 || (ScrcpyVideoOrientation1_16 = {}));
15
+ })(ScrcpyVideoOrientation1_16 || (ScrcpyVideoOrientation1_16 = {}));
16
16
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/options/1_16/init.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC1B,qCAAe,CAAA;IACf,mCAAa,CAAA;IACb,mCAAa,CAAA;IACb,qCAAe,CAAA;AACnB,CAAC,EALW,kBAAkB,GAAlB,kBAAkB,KAAlB,kBAAkB,QAK7B;AAED,MAAM,CAAN,IAAY,0BAMX;AAND,WAAY,0BAA0B;IAClC,oFAAa,CAAA;IACb,mFAAY,CAAA;IACZ,qFAAa,CAAA;IACb,iGAAmB,CAAA;IACnB,mGAAoB,CAAA;AACxB,CAAC,EANW,0BAA0B,GAA1B,0BAA0B,KAA1B,0BAA0B,QAMrC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/options/1_16/init.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC1B,qCAAe,CAAA;IACf,mCAAa,CAAA;IACb,mCAAa,CAAA;IACb,qCAAe,CAAA;AACnB,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B;AAED,MAAM,CAAN,IAAY,0BAMX;AAND,WAAY,0BAA0B;IAClC,oFAAa,CAAA;IACb,mFAAY,CAAA;IACZ,qFAAa,CAAA;IACb,iGAAmB,CAAA;IACnB,mGAAoB,CAAA;AACxB,CAAC,EANW,0BAA0B,KAA1B,0BAA0B,QAMrC"}
@@ -1,103 +1,49 @@
1
+ import type { ReadableStream } from "@yume-chan/stream-extra";
1
2
  import { TransformStream } from "@yume-chan/stream-extra";
2
- import Struct from "@yume-chan/struct";
3
- import type { ScrcpyBackOrScreenOnControlMessage, ScrcpySetClipboardControlMessage } from "../../control/index.js";
4
- import { ScrcpyControlMessageType } from "../../control/index.js";
5
- import type { ScrcpyOptions, ScrcpyVideoStreamPacket } from "../types.js";
3
+ import type { AsyncExactReadable, ValueOrPromise } from "@yume-chan/struct";
4
+ import type { ScrcpyBackOrScreenOnControlMessage, ScrcpyControlMessageType, ScrcpyInjectTouchControlMessage, ScrcpySetClipboardControlMessage } from "../../control/index.js";
5
+ import type { ScrcpyMediaStreamPacket, ScrcpyVideoStream } from "../codec.js";
6
+ import type { ScrcpyDisplay, ScrcpyEncoder, ScrcpyOptions } from "../types.js";
6
7
  import { CodecOptions } from "./codec-options.js";
8
+ import type { ScrcpyOptionsInit1_16 } from "./init.js";
9
+ import { ScrcpyLogLevel1_16, ScrcpyVideoOrientation1_16 } from "./init.js";
7
10
  import type { ScrcpyScrollController } from "./scroll.js";
8
- export declare enum ScrcpyLogLevel {
9
- Verbose = "verbose",
10
- Debug = "debug",
11
- Info = "info",
12
- Warn = "warn",
13
- Error = "error"
14
- }
15
- export declare enum ScrcpyVideoOrientation {
16
- Initial = -2,
17
- Unlocked = -1,
18
- Portrait = 0,
19
- Landscape = 1,
20
- PortraitFlipped = 2,
21
- LandscapeFlipped = 3
22
- }
23
- export interface ScrcpyOptionsInit1_16 {
24
- logLevel: ScrcpyLogLevel;
25
- /**
26
- * The maximum value of both width and height.
27
- */
28
- maxSize: number;
29
- bitRate: number;
30
- /**
31
- * 0 for unlimited.
32
- *
33
- * @default 0
34
- */
35
- maxFps: number;
36
- /**
37
- * The orientation of the video stream.
38
- *
39
- * It will not keep the device screen in specific orientation,
40
- * only the captured video will in this orientation.
41
- */
42
- lockVideoOrientation: ScrcpyVideoOrientation;
43
- /**
44
- * Use ADB forward tunnel instead of reverse tunnel.
45
- *
46
- * This option is mainly used for working around the bug that on Android <9,
47
- * ADB daemon can't create reverse tunnels if connected wirelessly (ADB over WiFi).
48
- *
49
- * When using `AdbScrcpyClient`, it can detect this situation and enable this option automatically.
50
- */
51
- tunnelForward: boolean;
52
- crop: string;
53
- /**
54
- * Send PTS so that the client may record properly
55
- *
56
- * Note: When `sendFrameMeta: false` is specified,
57
- * `onChangeEncoding` event won't fire and `onVideoData` event doesn't
58
- * merge sps/pps frame and first video frame. Which means you can't use
59
- * the shipped decoders to render the video
60
- * (You can still record the stream into a file).
61
- *
62
- * @default true
63
- */
64
- sendFrameMeta: boolean;
65
- /**
66
- * @default true
67
- */
68
- control: boolean;
69
- displayId: number;
70
- showTouches: boolean;
71
- stayAwake: boolean;
72
- codecOptions: CodecOptions;
73
- encoderName: string;
74
- }
75
- export declare const VideoPacket: Struct<{
76
- pts: bigint;
77
- size: number;
78
- data: Uint8Array;
79
- }, "size", Record<never, never>, undefined>;
80
- export declare const NO_PTS: bigint;
81
- export declare const ScrcpyBackOrScreenOnControlMessage1_16: Struct<{
82
- type: ScrcpyControlMessageType.BackOrScreenOn;
83
- }, never, Record<never, never>, undefined>;
84
- export declare const ScrcpySetClipboardControlMessage1_15: Struct<{
85
- type: ScrcpyControlMessageType.SetClipboard;
86
- length: number;
87
- content: string;
88
- }, "length", Record<never, never>, undefined>;
89
- export type ScrcpySetClipboardControlMessage1_15 = (typeof ScrcpySetClipboardControlMessage1_15)["TInit"];
90
- export declare class ScrcpyOptions1_16<T extends ScrcpyOptionsInit1_16 = ScrcpyOptionsInit1_16> implements ScrcpyOptions<T> {
91
- value: Partial<T>;
92
- constructor(value: Partial<ScrcpyOptionsInit1_16>);
93
- protected getArgumentOrder(): (keyof T)[];
94
- getDefaultValue(): T;
95
- formatServerArguments(): string[];
96
- getOutputEncoderNameRegex(): RegExp;
97
- createVideoStreamTransformer(): TransformStream<Uint8Array, ScrcpyVideoStreamPacket>;
98
- getControlMessageTypes(): ScrcpyControlMessageType[];
11
+ export declare class ScrcpyOptions1_16 implements ScrcpyOptions<ScrcpyOptionsInit1_16> {
12
+ static readonly DEFAULTS: {
13
+ readonly logLevel: ScrcpyLogLevel1_16.Debug;
14
+ readonly maxSize: 0;
15
+ readonly bitRate: 8000000;
16
+ readonly maxFps: 0;
17
+ readonly lockVideoOrientation: ScrcpyVideoOrientation1_16.Unlocked;
18
+ readonly tunnelForward: false;
19
+ readonly crop: undefined;
20
+ readonly sendFrameMeta: true;
21
+ readonly control: true;
22
+ readonly displayId: 0;
23
+ readonly showTouches: false;
24
+ readonly stayAwake: false;
25
+ readonly codecOptions: CodecOptions;
26
+ };
27
+ static readonly SERIALIZE_ORDER: readonly ["logLevel", "maxSize", "bitRate", "maxFps", "lockVideoOrientation", "tunnelForward", "crop", "sendFrameMeta", "control", "displayId", "showTouches", "stayAwake", "codecOptions"];
28
+ static serialize<T>(options: T, order: readonly (keyof T)[]): string[];
29
+ static parseCString(stream: AsyncExactReadable, maxLength: number): Promise<string>;
30
+ static parseUint16BE(stream: AsyncExactReadable): Promise<number>;
31
+ static parseUint32BE(stream: AsyncExactReadable): Promise<number>;
32
+ value: Required<ScrcpyOptionsInit1_16>;
33
+ readonly defaults: Required<ScrcpyOptionsInit1_16>;
34
+ readonly controlMessageTypes: readonly ScrcpyControlMessageType[];
35
+ constructor(init: ScrcpyOptionsInit1_16);
36
+ serialize(): string[];
37
+ setListEncoders(): void;
38
+ setListDisplays(): void;
39
+ parseEncoder(): ScrcpyEncoder | undefined;
40
+ parseDisplay(line: string): ScrcpyDisplay | undefined;
41
+ parseVideoStreamMetadata(stream: ReadableStream<Uint8Array>): ValueOrPromise<ScrcpyVideoStream>;
42
+ parseAudioStreamMetadata(): never;
43
+ createMediaStreamTransformer(): TransformStream<Uint8Array, ScrcpyMediaStreamPacket>;
44
+ serializeInjectTouchControlMessage(message: ScrcpyInjectTouchControlMessage): Uint8Array;
99
45
  serializeBackOrScreenOnControlMessage(message: ScrcpyBackOrScreenOnControlMessage): Uint8Array | undefined;
100
46
  serializeSetClipboardControlMessage(message: ScrcpySetClipboardControlMessage): Uint8Array;
101
- getScrollController(): ScrcpyScrollController;
47
+ createScrollController(): ScrcpyScrollController;
102
48
  }
103
49
  //# sourceMappingURL=options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/options/1_16/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,eAAe,EAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,KAAK,EACR,kCAAkC,EAClC,gCAAgC,EACnC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEH,wBAAwB,EAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAG1E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMlD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAG1D,oBAAY,cAAc;IACtB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAClB;AAED,oBAAY,sBAAsB;IAC9B,OAAO,KAAK;IACZ,QAAQ,KAAK;IACb,QAAQ,IAAI;IACZ,SAAS,IAAI;IACb,eAAe,IAAI;IACnB,gBAAgB,IAAI;CACvB;AAED,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,cAAc,CAAC;IAEzB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,oBAAoB,EAAE,sBAAsB,CAAC;IAE7C;;;;;;;OAOG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;;;;;;OAUG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB,SAAS,EAAE,MAAM,CAAC;IAElB,WAAW,EAAE,OAAO,CAAC;IAErB,SAAS,EAAE,OAAO,CAAC;IAEnB,YAAY,EAAE,YAAY,CAAC;IAE3B,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,WAAW;;;;2CAGwB,CAAC;AAEjD,eAAO,MAAM,MAAM,QAA0B,CAAC;AAE9C,eAAO,MAAM,sCAAsC;;0CAGlD,CAAC;AAEF,eAAO,MAAM,oCAAoC;;;;6CAGA,CAAC;AAElD,MAAM,MAAM,oCAAoC,GAC5C,CAAC,OAAO,oCAAoC,CAAC,CAAC,OAAO,CAAC,CAAC;AAE3D,qBAAa,iBAAiB,CAC1B,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CACzD,YAAW,aAAa,CAAC,CAAC,CAAC;IAElB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;gBAEN,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAkBxD,SAAS,CAAC,gBAAgB,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;IAmBlC,eAAe,IAAI,CAAC;IAmBpB,qBAAqB,IAAI,MAAM,EAAE;IAOjC,yBAAyB,IAAI,MAAM;IAInC,4BAA4B,IAAI,eAAe,CAClD,UAAU,EACV,uBAAuB,CAC1B;IAuGM,sBAAsB,IAAI,wBAAwB,EAAE;IAgBpD,qCAAqC,CACxC,OAAO,EAAE,kCAAkC;IASxC,mCAAmC,CACtC,OAAO,EAAE,gCAAgC,GAC1C,UAAU;IAIN,mBAAmB,IAAI,sBAAsB;CAGvD"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/options/1_16/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAGH,eAAe,EAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG5E,OAAO,KAAK,EACR,kCAAkC,EAClC,wBAAwB,EACxB,+BAA+B,EAC/B,gCAAgC,EACnC,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EACR,uBAAuB,EACvB,iBAAiB,EAEpB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG/E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AAS3E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAG1D,qBAAa,iBAAkB,YAAW,aAAa,CAAC,qBAAqB,CAAC;IAC1E,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;;;;;;;;;;;MAc6B;IAErD,MAAM,CAAC,QAAQ,CAAC,eAAe,8LAc+B;IAE9D,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE;WAI9C,YAAY,CACrB,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC;WAML,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;WAK1D,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAKvE,KAAK,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAEvC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CACnB;IAE/B,QAAQ,CAAC,mBAAmB,EAAE,SAAS,wBAAwB,EAAE,CAC3B;gBAE1B,IAAI,EAAE,qBAAqB;IAIvC,SAAS,IAAI,MAAM,EAAE;IAOrB,eAAe,IAAI,IAAI;IAIvB,eAAe,IAAI,IAAI;IAOvB,YAAY,IAAI,aAAa,GAAG,SAAS;IAIzC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAWrD,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,cAAc,CAAC,iBAAiB,CAAC;IAgBpC,wBAAwB,IAAI,KAAK;IAIjC,4BAA4B,IAAI,eAAe,CAC3C,UAAU,EACV,uBAAuB,CAC1B;IAwCD,kCAAkC,CAC9B,OAAO,EAAE,+BAA+B,GACzC,UAAU;IAIb,qCAAqC,CACjC,OAAO,EAAE,kCAAkC;IAS/C,mCAAmC,CAC/B,OAAO,EAAE,gCAAgC,GAC1C,UAAU;IAIb,sBAAsB,IAAI,sBAAsB;CAGnD"}