@yume-chan/scrcpy 0.0.18 → 0.0.20

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 (288) hide show
  1. package/CHANGELOG.json +33 -0
  2. package/CHANGELOG.md +18 -1
  3. package/README.md +157 -183
  4. package/bin/scrcpy-server +0 -0
  5. package/bin/version.d.ts +1 -1
  6. package/bin/version.js +1 -1
  7. package/esm/codec/av1.d.ts +33 -0
  8. package/esm/codec/av1.d.ts.map +1 -0
  9. package/esm/codec/av1.js +35 -0
  10. package/esm/codec/av1.js.map +1 -0
  11. package/esm/codec/h264.d.ts +78 -0
  12. package/esm/codec/h264.d.ts.map +1 -0
  13. package/esm/codec/h264.js +256 -0
  14. package/esm/codec/h264.js.map +1 -0
  15. package/esm/codec/h265.d.ts +490 -0
  16. package/esm/codec/h265.d.ts.map +1 -0
  17. package/esm/codec/h265.js +1098 -0
  18. package/esm/codec/h265.js.map +1 -0
  19. package/esm/codec/index.d.ts +5 -0
  20. package/esm/codec/index.d.ts.map +1 -0
  21. package/esm/codec/index.js +5 -0
  22. package/esm/codec/index.js.map +1 -0
  23. package/esm/codec/nalu.d.ts +44 -0
  24. package/esm/codec/nalu.d.ts.map +1 -0
  25. package/esm/codec/nalu.js +310 -0
  26. package/esm/codec/nalu.js.map +1 -0
  27. package/esm/control/back-or-screen-on.d.ts +2 -2
  28. package/esm/control/back-or-screen-on.d.ts.map +1 -1
  29. package/esm/control/back-or-screen-on.js +1 -1
  30. package/esm/control/basic.d.ts +5 -0
  31. package/esm/control/basic.d.ts.map +1 -0
  32. package/esm/control/basic.js +3 -0
  33. package/esm/control/basic.js.map +1 -0
  34. package/esm/control/hover-helper.d.ts +17 -17
  35. package/esm/control/hover-helper.d.ts.map +1 -1
  36. package/esm/control/hover-helper.js +43 -43
  37. package/esm/control/hover-helper.js.map +1 -1
  38. package/esm/control/index.d.ts +13 -11
  39. package/esm/control/index.d.ts.map +1 -1
  40. package/esm/control/index.js +13 -11
  41. package/esm/control/index.js.map +1 -1
  42. package/esm/control/inject-keycode.d.ts +193 -60
  43. package/esm/control/inject-keycode.d.ts.map +1 -1
  44. package/esm/control/inject-keycode.js +198 -61
  45. package/esm/control/inject-keycode.js.map +1 -1
  46. package/esm/control/inject-scroll.d.ts +2 -2
  47. package/esm/control/inject-scroll.d.ts.map +1 -1
  48. package/esm/control/inject-scroll.js +1 -1
  49. package/esm/control/inject-text.d.ts +7 -8
  50. package/esm/control/inject-text.d.ts.map +1 -1
  51. package/esm/control/inject-text.js +5 -6
  52. package/esm/control/inject-text.js.map +1 -1
  53. package/esm/control/inject-touch.d.ts +32 -37
  54. package/esm/control/inject-touch.d.ts.map +1 -1
  55. package/esm/control/inject-touch.js +35 -62
  56. package/esm/control/inject-touch.js.map +1 -1
  57. package/esm/control/rotate-device.d.ts +4 -6
  58. package/esm/control/rotate-device.d.ts.map +1 -1
  59. package/esm/control/rotate-device.js +2 -4
  60. package/esm/control/rotate-device.js.map +1 -1
  61. package/esm/control/serializer.d.ts +25 -33
  62. package/esm/control/serializer.d.ts.map +1 -1
  63. package/esm/control/serializer.js +53 -78
  64. package/esm/control/serializer.js.map +1 -1
  65. package/esm/control/set-clipboard.d.ts +2 -2
  66. package/esm/control/set-clipboard.d.ts.map +1 -1
  67. package/esm/control/set-clipboard.js +1 -1
  68. package/esm/control/set-screen-power-mode.d.ts +10 -11
  69. package/esm/control/set-screen-power-mode.d.ts.map +1 -1
  70. package/esm/control/set-screen-power-mode.js +10 -11
  71. package/esm/control/set-screen-power-mode.js.map +1 -1
  72. package/esm/control/type.d.ts +28 -14
  73. package/esm/control/type.d.ts.map +1 -1
  74. package/esm/control/type.js +40 -18
  75. package/esm/control/type.js.map +1 -1
  76. package/esm/control/writer.d.ts +28 -0
  77. package/esm/control/writer.d.ts.map +1 -0
  78. package/esm/control/writer.js +53 -0
  79. package/esm/control/writer.js.map +1 -0
  80. package/esm/device-message/ack-clipboard.d.ts +8 -8
  81. package/esm/device-message/ack-clipboard.d.ts.map +1 -1
  82. package/esm/device-message/ack-clipboard.js +5 -5
  83. package/esm/device-message/clipboard.d.ts +9 -9
  84. package/esm/device-message/clipboard.d.ts.map +1 -1
  85. package/esm/device-message/clipboard.js +6 -6
  86. package/esm/device-message/index.d.ts +4 -4
  87. package/esm/device-message/index.js +4 -4
  88. package/esm/device-message/stream.d.ts +7 -7
  89. package/esm/device-message/stream.d.ts.map +1 -1
  90. package/esm/device-message/stream.js +34 -19
  91. package/esm/device-message/stream.js.map +1 -1
  92. package/esm/device-message/type.d.ts +4 -4
  93. package/esm/device-message/type.js +6 -6
  94. package/esm/index.d.ts +4 -5
  95. package/esm/index.d.ts.map +1 -1
  96. package/esm/index.js +4 -5
  97. package/esm/index.js.map +1 -1
  98. package/esm/options/1_16/codec-options.d.ts +19 -19
  99. package/esm/options/1_16/codec-options.d.ts.map +1 -1
  100. package/esm/options/1_16/codec-options.js +25 -25
  101. package/esm/options/1_16/codec-options.js.map +1 -1
  102. package/esm/options/1_16/float-to-uint16.d.ts +5 -0
  103. package/esm/options/1_16/float-to-uint16.d.ts.map +1 -0
  104. package/esm/options/1_16/float-to-uint16.js +27 -0
  105. package/esm/options/1_16/float-to-uint16.js.map +1 -0
  106. package/esm/options/1_16/index.d.ts +6 -4
  107. package/esm/options/1_16/index.d.ts.map +1 -1
  108. package/esm/options/1_16/index.js +6 -4
  109. package/esm/options/1_16/index.js.map +1 -1
  110. package/esm/options/1_16/init.d.ts +66 -0
  111. package/esm/options/1_16/init.d.ts.map +1 -0
  112. package/esm/options/1_16/init.js +16 -0
  113. package/esm/options/1_16/init.js.map +1 -0
  114. package/esm/options/1_16/message.d.ts +32 -0
  115. package/esm/options/1_16/message.d.ts.map +1 -0
  116. package/esm/options/1_16/message.js +37 -0
  117. package/esm/options/1_16/message.js.map +1 -0
  118. package/esm/options/1_16/options.d.ts +48 -93
  119. package/esm/options/1_16/options.d.ts.map +1 -1
  120. package/esm/options/1_16/options.js +152 -189
  121. package/esm/options/1_16/options.js.map +1 -1
  122. package/esm/options/1_16/scroll.d.ts +26 -26
  123. package/esm/options/1_16/scroll.d.ts.map +1 -1
  124. package/esm/options/1_16/scroll.js +54 -55
  125. package/esm/options/1_16/scroll.js.map +1 -1
  126. package/esm/options/1_17.d.ts +33 -0
  127. package/esm/options/1_17.d.ts.map +1 -0
  128. package/esm/options/1_17.js +42 -0
  129. package/esm/options/1_17.js.map +1 -0
  130. package/esm/options/1_18.d.ts +59 -19
  131. package/esm/options/1_18.d.ts.map +1 -1
  132. package/esm/options/1_18.js +78 -45
  133. package/esm/options/1_18.js.map +1 -1
  134. package/esm/options/1_21.d.ts +41 -20
  135. package/esm/options/1_21.d.ts.map +1 -1
  136. package/esm/options/1_21.js +51 -36
  137. package/esm/options/1_21.js.map +1 -1
  138. package/esm/options/1_22/index.d.ts +3 -2
  139. package/esm/options/1_22/index.d.ts.map +1 -1
  140. package/esm/options/1_22/index.js +3 -2
  141. package/esm/options/1_22/index.js.map +1 -1
  142. package/esm/options/1_22/init.d.ts +17 -0
  143. package/esm/options/1_22/init.d.ts.map +1 -0
  144. package/esm/options/1_22/init.js +2 -0
  145. package/esm/options/1_22/init.js.map +1 -0
  146. package/esm/options/1_22/options.d.ts +35 -28
  147. package/esm/options/1_22/options.d.ts.map +1 -1
  148. package/esm/options/1_22/options.js +36 -25
  149. package/esm/options/1_22/options.js.map +1 -1
  150. package/esm/options/1_22/scroll.d.ts +16 -16
  151. package/esm/options/1_22/scroll.d.ts.map +1 -1
  152. package/esm/options/1_22/scroll.js +14 -14
  153. package/esm/options/1_23.d.ts +36 -11
  154. package/esm/options/1_23.d.ts.map +1 -1
  155. package/esm/options/1_23.js +44 -34
  156. package/esm/options/1_23.js.map +1 -1
  157. package/esm/options/1_24.d.ts +34 -8
  158. package/esm/options/1_24.d.ts.map +1 -1
  159. package/esm/options/1_24.js +22 -12
  160. package/esm/options/1_24.js.map +1 -1
  161. package/esm/options/1_25/index.d.ts +2 -2
  162. package/esm/options/1_25/index.js +2 -2
  163. package/esm/options/1_25/options.d.ts +10 -5
  164. package/esm/options/1_25/options.d.ts.map +1 -1
  165. package/esm/options/1_25/options.js +21 -7
  166. package/esm/options/1_25/options.js.map +1 -1
  167. package/esm/options/1_25/scroll.d.ts +19 -18
  168. package/esm/options/1_25/scroll.d.ts.map +1 -1
  169. package/esm/options/1_25/scroll.js +33 -32
  170. package/esm/options/1_25/scroll.js.map +1 -1
  171. package/esm/options/2_0.d.ts +91 -0
  172. package/esm/options/2_0.d.ts.map +1 -0
  173. package/esm/options/2_0.js +244 -0
  174. package/esm/options/2_0.js.map +1 -0
  175. package/esm/options/codec.d.ts +52 -0
  176. package/esm/options/codec.d.ts.map +1 -0
  177. package/esm/options/codec.js +26 -0
  178. package/esm/options/codec.js.map +1 -0
  179. package/esm/options/index.d.ts +12 -8
  180. package/esm/options/index.d.ts.map +1 -1
  181. package/esm/options/index.js +12 -8
  182. package/esm/options/index.js.map +1 -1
  183. package/esm/options/latest.d.ts +12 -0
  184. package/esm/options/latest.d.ts.map +1 -0
  185. package/esm/options/latest.js +8 -0
  186. package/esm/options/latest.js.map +1 -0
  187. package/esm/options/types.d.ts +86 -46
  188. package/esm/options/types.d.ts.map +1 -1
  189. package/esm/options/types.js +69 -17
  190. package/esm/options/types.js.map +1 -1
  191. package/package.json +10 -16
  192. package/src/codec/av1.ts +33 -0
  193. package/src/codec/h264.ts +317 -0
  194. package/src/codec/h265.ts +1375 -0
  195. package/src/codec/index.ts +4 -0
  196. package/src/codec/nalu.ts +373 -0
  197. package/src/control/back-or-screen-on.ts +1 -1
  198. package/src/control/basic.ts +3 -0
  199. package/src/control/hover-helper.ts +2 -4
  200. package/src/control/index.ts +2 -0
  201. package/src/control/inject-keycode.ts +194 -51
  202. package/src/control/inject-scroll.ts +1 -1
  203. package/src/control/inject-text.ts +6 -9
  204. package/src/control/inject-touch.ts +16 -55
  205. package/src/control/rotate-device.ts +3 -7
  206. package/src/control/serializer.ts +49 -105
  207. package/src/control/set-clipboard.ts +1 -1
  208. package/src/control/set-screen-power-mode.ts +6 -9
  209. package/src/control/type.ts +32 -0
  210. package/src/control/writer.ts +87 -0
  211. package/src/device-message/ack-clipboard.ts +1 -1
  212. package/src/device-message/clipboard.ts +1 -1
  213. package/src/device-message/stream.ts +32 -12
  214. package/src/index.ts +4 -5
  215. package/src/options/1_16/codec-options.ts +5 -8
  216. package/src/options/1_16/float-to-uint16.ts +33 -0
  217. package/src/options/1_16/index.ts +3 -1
  218. package/src/options/1_16/init.ts +80 -0
  219. package/src/options/1_16/message.ts +55 -0
  220. package/src/options/1_16/options.ts +152 -256
  221. package/src/options/1_16/scroll.ts +2 -5
  222. package/src/options/1_17.ts +66 -0
  223. package/src/options/1_18.ts +106 -42
  224. package/src/options/1_21.ts +51 -30
  225. package/src/options/1_22/index.ts +1 -0
  226. package/src/options/1_22/init.ts +19 -0
  227. package/src/options/1_22/options.ts +40 -46
  228. package/src/options/1_22/scroll.ts +2 -2
  229. package/src/options/1_23.ts +33 -23
  230. package/src/options/1_24.ts +25 -11
  231. package/src/options/1_25/options.ts +25 -6
  232. package/src/options/1_25/scroll.ts +5 -7
  233. package/src/options/2_0.ts +342 -0
  234. package/src/options/codec.ts +98 -0
  235. package/src/options/index.ts +7 -3
  236. package/src/options/latest.ts +14 -0
  237. package/src/options/types.ts +158 -48
  238. package/tsconfig.build.json +9 -1
  239. package/tsconfig.build.tsbuildinfo +1 -1
  240. package/esm/adb/client.d.ts +0 -41
  241. package/esm/adb/client.d.ts.map +0 -1
  242. package/esm/adb/client.js +0 -243
  243. package/esm/adb/client.js.map +0 -1
  244. package/esm/adb/connection.d.ts +0 -47
  245. package/esm/adb/connection.d.ts.map +0 -1
  246. package/esm/adb/connection.js +0 -110
  247. package/esm/adb/connection.js.map +0 -1
  248. package/esm/adb/index.d.ts +0 -4
  249. package/esm/adb/index.d.ts.map +0 -1
  250. package/esm/adb/index.js +0 -4
  251. package/esm/adb/index.js.map +0 -1
  252. package/esm/adb/options/1_16.d.ts +0 -8
  253. package/esm/adb/options/1_16.d.ts.map +0 -1
  254. package/esm/adb/options/1_16.js +0 -20
  255. package/esm/adb/options/1_16.js.map +0 -1
  256. package/esm/adb/options/1_22.d.ts +0 -8
  257. package/esm/adb/options/1_22.d.ts.map +0 -1
  258. package/esm/adb/options/1_22.js +0 -17
  259. package/esm/adb/options/1_22.js.map +0 -1
  260. package/esm/adb/options/index.d.ts +0 -4
  261. package/esm/adb/options/index.d.ts.map +0 -1
  262. package/esm/adb/options/index.js +0 -4
  263. package/esm/adb/options/index.js.map +0 -1
  264. package/esm/adb/options/types.d.ts +0 -24
  265. package/esm/adb/options/types.d.ts.map +0 -1
  266. package/esm/adb/options/types.js +0 -37
  267. package/esm/adb/options/types.js.map +0 -1
  268. package/esm/codec.d.ts +0 -34
  269. package/esm/codec.d.ts.map +0 -1
  270. package/esm/codec.js +0 -37
  271. package/esm/codec.js.map +0 -1
  272. package/esm/options/1_16/h264-configuration.d.ts +0 -49
  273. package/esm/options/1_16/h264-configuration.d.ts.map +0 -1
  274. package/esm/options/1_16/h264-configuration.js +0 -414
  275. package/esm/options/1_16/h264-configuration.js.map +0 -1
  276. package/esm/options/1_16/sps.d.ts +0 -22
  277. package/esm/options/1_16/sps.d.ts.map +0 -1
  278. package/esm/options/1_16/sps.js +0 -263
  279. package/esm/options/1_16/sps.js.map +0 -1
  280. package/src/adb/client.ts +0 -345
  281. package/src/adb/connection.ts +0 -192
  282. package/src/adb/index.ts +0 -3
  283. package/src/adb/options/1_16.ts +0 -30
  284. package/src/adb/options/1_22.ts +0 -26
  285. package/src/adb/options/index.ts +0 -3
  286. package/src/adb/options/types.ts +0 -75
  287. package/src/codec.ts +0 -35
  288. package/src/options/1_16/h264-configuration.ts +0 -485
@@ -0,0 +1,42 @@
1
+ import { ScrcpyOptions1_16 } from "./1_16/index.js";
2
+ import { ScrcpyOptionsBase } from "./types.js";
3
+ class ScrcpyOptions1_17 extends ScrcpyOptionsBase {
4
+ static DEFAULTS = {
5
+ ...ScrcpyOptions1_16.DEFAULTS,
6
+ encoderName: undefined,
7
+ };
8
+ static SERIALIZE_ORDER = [
9
+ ...ScrcpyOptions1_16.SERIALIZE_ORDER,
10
+ "encoderName",
11
+ ];
12
+ static parseEncoder(line, encoderNameRegex) {
13
+ const match = line.match(encoderNameRegex);
14
+ if (match) {
15
+ return { type: "video", name: match[1] };
16
+ }
17
+ return undefined;
18
+ }
19
+ get defaults() {
20
+ return ScrcpyOptions1_17.DEFAULTS;
21
+ }
22
+ constructor(init) {
23
+ super(new ScrcpyOptions1_16(init), {
24
+ ...ScrcpyOptions1_17.DEFAULTS,
25
+ ...init,
26
+ });
27
+ }
28
+ serialize() {
29
+ return ScrcpyOptions1_16.serialize(this.value, ScrcpyOptions1_17.SERIALIZE_ORDER);
30
+ }
31
+ setListEncoders() {
32
+ // Set to an invalid value
33
+ // Server will print valid values before crashing
34
+ // (server will crash after opening video and control sockets)
35
+ this.value.encoderName = "_";
36
+ }
37
+ parseEncoder(line) {
38
+ return ScrcpyOptions1_17.parseEncoder(line, /\s+scrcpy --encoder-name '(.*?)'/);
39
+ }
40
+ }
41
+ export { ScrcpyOptions1_17 };
42
+ //# sourceMappingURL=1_17.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1_17.js","sourceRoot":"","sources":["../../src/options/1_17.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAM/C,MAAa,iBAAkB,SAAQ,iBAGtC;IACU,MAAM,CAAU,QAAQ,GAAG;QAC9B,GAAG,iBAAiB,CAAC,QAAQ;QAC7B,WAAW,EAAE,SAAS;KAC0B,CAAC;IAE9C,MAAM,CAAU,eAAe,GAAG;QACrC,GAAG,iBAAiB,CAAC,eAAe;QACpC,aAAa;KAC4C,CAAC;IAEvD,MAAM,CAAC,YAAY,CACtB,IAAY,EACZ,gBAAwB;QAExB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC3C,IAAI,KAAK,EAAE;YACP,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,CAAC;SAC7C;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAoB,QAAQ;QACxB,OAAO,iBAAiB,CAAC,QAAQ,CAAC;IACtC,CAAC;IAED,YAAmB,IAA2B;QAC1C,KAAK,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE;YAC/B,GAAG,iBAAiB,CAAC,QAAQ;YAC7B,GAAG,IAAI;SACV,CAAC,CAAC;IACP,CAAC;IAEe,SAAS;QACrB,OAAO,iBAAiB,CAAC,SAAS,CAC9B,IAAI,CAAC,KAAK,EACV,iBAAiB,CAAC,eAAe,CACpC,CAAC;IACN,CAAC;IAEe,eAAe;QAC3B,0BAA0B;QAC1B,iDAAiD;QACjD,8DAA8D;QAC9D,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC;IACjC,CAAC;IAEe,YAAY,CAAC,IAAY;QACrC,OAAO,iBAAiB,CAAC,YAAY,CACjC,IAAI,EACJ,kCAAkC,CACrC,CAAC;IACN,CAAC;;SAvDQ,iBAAiB"}
@@ -1,20 +1,60 @@
1
- import Struct from "@yume-chan/struct";
2
- import { ScrcpyControlMessageType, type AndroidKeyEventAction, type ScrcpyBackOrScreenOnControlMessage } from "../control/index.js";
3
- import { ScrcpyOptions1_16, type ScrcpyOptionsInit1_16 } from "./1_16/options.js";
4
- export interface ScrcpyOptionsInit1_18 extends ScrcpyOptionsInit1_16 {
5
- powerOffOnClose: boolean;
6
- }
7
- export declare const ScrcpyBackOrScreenOnControlMessage1_18: Struct<{
8
- type: ScrcpyControlMessageType.BackOrScreenOn;
9
- action: AndroidKeyEventAction;
10
- }, never, Record<never, never>, undefined>;
11
- export type ScrcpyBackOrScreenOnControlMessage1_18 = typeof ScrcpyBackOrScreenOnControlMessage1_18["TInit"];
12
- export declare class ScrcpyOptions1_18<T extends ScrcpyOptionsInit1_18 = ScrcpyOptionsInit1_18> extends ScrcpyOptions1_16<T> {
13
- constructor(value: Partial<ScrcpyOptionsInit1_18>);
14
- protected getArgumentOrder(): (keyof T)[];
15
- getDefaultValue(): T;
16
- getOutputEncoderNameRegex(): RegExp;
17
- getControlMessageTypes(): ScrcpyControlMessageType[];
18
- serializeBackOrScreenOnControlMessage(message: ScrcpyBackOrScreenOnControlMessage): Uint8Array;
19
- }
1
+ import Struct from "@yume-chan/struct";
2
+ import type { AndroidKeyEventAction, ScrcpyBackOrScreenOnControlMessage } from "../control/index.js";
3
+ import { ScrcpyControlMessageType } from "../control/index.js";
4
+ import type { ScrcpyOptionsInit1_17 } from "./1_17.js";
5
+ import { ScrcpyOptions1_17 } from "./1_17.js";
6
+ import type { ScrcpyEncoder } from "./types.js";
7
+ import { ScrcpyOptionsBase } from "./types.js";
8
+ export declare enum ScrcpyLogLevel1_18 {
9
+ Verbose = "verbose",
10
+ Debug = "debug",
11
+ Info = "info",
12
+ Warn = "warn",
13
+ Error = "error"
14
+ }
15
+ export declare enum ScrcpyVideoOrientation1_18 {
16
+ Initial = -2,
17
+ Unlocked = -1,
18
+ Portrait = 0,
19
+ Landscape = 1,
20
+ PortraitFlipped = 2,
21
+ LandscapeFlipped = 3
22
+ }
23
+ export interface ScrcpyOptionsInit1_18 extends Omit<ScrcpyOptionsInit1_17, "logLevel" | "lockVideoOrientation"> {
24
+ logLevel?: ScrcpyLogLevel1_18;
25
+ lockVideoOrientation?: ScrcpyVideoOrientation1_18;
26
+ powerOffOnClose?: boolean;
27
+ }
28
+ export declare const ScrcpyBackOrScreenOnControlMessage1_18: Struct<{
29
+ type: number;
30
+ action: AndroidKeyEventAction;
31
+ }, never, Record<never, never>, undefined>;
32
+ export type ScrcpyBackOrScreenOnControlMessage1_18 = (typeof ScrcpyBackOrScreenOnControlMessage1_18)["TInit"];
33
+ export declare const SCRCPY_CONTROL_MESSAGE_TYPES_1_18: ScrcpyControlMessageType[];
34
+ export declare class ScrcpyOptions1_18 extends ScrcpyOptionsBase<ScrcpyOptionsInit1_18, ScrcpyOptions1_17> {
35
+ static readonly DEFAULTS: {
36
+ readonly logLevel: ScrcpyLogLevel1_18.Debug;
37
+ readonly lockVideoOrientation: ScrcpyVideoOrientation1_18.Unlocked;
38
+ readonly powerOffOnClose: false;
39
+ readonly encoderName: undefined;
40
+ readonly maxSize: 0;
41
+ readonly bitRate: 8000000;
42
+ readonly maxFps: 0;
43
+ readonly tunnelForward: false;
44
+ readonly crop: undefined;
45
+ readonly sendFrameMeta: true;
46
+ readonly control: true;
47
+ readonly displayId: 0;
48
+ readonly showTouches: false;
49
+ readonly stayAwake: false;
50
+ readonly codecOptions: import("./1_16/codec-options.js").CodecOptions;
51
+ };
52
+ static readonly SERIALIZE_ORDER: readonly ["logLevel", "maxSize", "bitRate", "maxFps", "lockVideoOrientation", "tunnelForward", "crop", "sendFrameMeta", "control", "displayId", "showTouches", "stayAwake", "codecOptions", "encoderName", "powerOffOnClose"];
53
+ get defaults(): Required<ScrcpyOptionsInit1_18>;
54
+ get controlMessageTypes(): ScrcpyControlMessageType[];
55
+ constructor(init: ScrcpyOptionsInit1_18);
56
+ serialize(): string[];
57
+ parseEncoder(line: string): ScrcpyEncoder | undefined;
58
+ serializeBackOrScreenOnControlMessage(message: ScrcpyBackOrScreenOnControlMessage): Uint8Array;
59
+ }
20
60
  //# sourceMappingURL=1_18.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"1_18.d.ts","sourceRoot":"","sources":["../../src/options/1_18.ts"],"names":[],"mappings":"AAAA,OAAO,MAAuB,MAAM,mBAAmB,CAAC;AAExD,OAAO,EACH,wBAAwB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,kCAAkC,EAC1C,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAEH,iBAAiB,EACjB,KAAK,qBAAqB,EAC7B,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAChE,eAAe,EAAE,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,sCAAsC;;;0CAEO,CAAC;AAE3D,MAAM,MAAM,sCAAsC,GAC9C,OAAO,sCAAsC,CAAC,OAAO,CAAC,CAAC;AAE3D,qBAAa,iBAAiB,CAC1B,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CACzD,SAAQ,iBAAiB,CAAC,CAAC,CAAC;gBACd,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC;cAI9B,gBAAgB,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;IAIlC,eAAe,IAAI,CAAC;IAOpB,yBAAyB,IAAI,MAAM;IAInC,sBAAsB,IAAI,wBAAwB,EAAE;IAoBpD,qCAAqC,CACjD,OAAO,EAAE,kCAAkC;CAIlD"}
1
+ {"version":3,"file":"1_18.d.ts","sourceRoot":"","sources":["../../src/options/1_18.ts"],"names":[],"mappings":"AAAA,OAAO,MAAuB,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EACR,qBAAqB,EACrB,kCAAkC,EACrC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAS/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,oBAAY,kBAAkB;IAC1B,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAClB;AAED,oBAAY,0BAA0B;IAClC,OAAO,KAAK;IACZ,QAAQ,KAAK;IACb,QAAQ,IAAI;IACZ,SAAS,IAAI;IACb,eAAe,IAAI;IACnB,gBAAgB,IAAI;CACvB;AAED,MAAM,WAAW,qBACb,SAAQ,IAAI,CAAC,qBAAqB,EAAE,UAAU,GAAG,sBAAsB,CAAC;IACxE,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAE9B,oBAAoB,CAAC,EAAE,0BAA0B,CAAC;IAElD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,sCAAsC;;;0CAEO,CAAC;AAE3D,MAAM,MAAM,sCAAsC,GAC9C,CAAC,OAAO,sCAAsC,CAAC,CAAC,OAAO,CAAC,CAAC;AAE7D,eAAO,MAAM,iCAAiC,4BACD,CAAC;AA0B9C,qBAAa,iBAAkB,SAAQ,iBAAiB,CACpD,qBAAqB,EACrB,iBAAiB,CACpB;IACG,gBAAuB,QAAQ;;;;;;;;;;;;;;;;MAKsB;IAErD,gBAAuB,eAAe,gOAGwB;IAE9D,IAAoB,QAAQ,IAAI,QAAQ,CAAC,qBAAqB,CAAC,CAE9D;IAED,IAAoB,mBAAmB,+BAEtC;gBAEW,IAAI,EAAE,qBAAqB;IAahC,SAAS,IAAI,MAAM,EAAE;IAOZ,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAOrD,qCAAqC,CACjD,OAAO,EAAE,kCAAkC;CAIlD"}
@@ -1,46 +1,79 @@
1
- import Struct, { placeholder } from "@yume-chan/struct";
2
- import { ScrcpyControlMessageType, } from "../control/index.js";
3
- import { ScrcpyBackOrScreenOnControlMessage1_16, ScrcpyOptions1_16, } from "./1_16/options.js";
4
- export const ScrcpyBackOrScreenOnControlMessage1_18 = new Struct()
5
- .fields(ScrcpyBackOrScreenOnControlMessage1_16)
6
- .uint8("action", placeholder());
7
- export class ScrcpyOptions1_18 extends ScrcpyOptions1_16 {
8
- constructor(value) {
9
- super(value);
10
- }
11
- getArgumentOrder() {
12
- return super.getArgumentOrder().concat(["powerOffOnClose"]);
13
- }
14
- getDefaultValue() {
15
- return {
16
- ...super.getDefaultValue(),
17
- powerOffOnClose: false,
18
- };
19
- }
20
- getOutputEncoderNameRegex() {
21
- return /\s+scrcpy --encoder '(.*?)'/;
22
- }
23
- getControlMessageTypes() {
24
- /**
25
- * 0 InjectKeycode
26
- * 1 InjectText
27
- * 2 InjectTouch
28
- * 3 InjectScroll
29
- * 4 BackOrScreenOn
30
- * 5 ExpandNotificationPanel
31
- * 6 ExpandSettingsPanel
32
- * 7 CollapseNotificationPanel
33
- * 8 GetClipboard
34
- * 9 SetClipboard
35
- * 10 SetScreenPowerMode
36
- * 11 RotateDevice
37
- */
38
- const types = super.getControlMessageTypes();
39
- types.splice(6, 0, ScrcpyControlMessageType.ExpandSettingPanel);
40
- return types;
41
- }
42
- serializeBackOrScreenOnControlMessage(message) {
43
- return ScrcpyBackOrScreenOnControlMessage1_18.serialize(message);
44
- }
45
- }
1
+ import Struct, { placeholder } from "@yume-chan/struct";
2
+ import { ScrcpyControlMessageType } from "../control/index.js";
3
+ import { SCRCPY_CONTROL_MESSAGE_TYPES_1_16, ScrcpyBackOrScreenOnControlMessage1_16, ScrcpyLogLevel1_16, ScrcpyOptions1_16, ScrcpyVideoOrientation1_16, } from "./1_16/index.js";
4
+ import { ScrcpyOptions1_17 } from "./1_17.js";
5
+ import { ScrcpyOptionsBase } from "./types.js";
6
+ export var ScrcpyLogLevel1_18;
7
+ (function (ScrcpyLogLevel1_18) {
8
+ ScrcpyLogLevel1_18["Verbose"] = "verbose";
9
+ ScrcpyLogLevel1_18["Debug"] = "debug";
10
+ ScrcpyLogLevel1_18["Info"] = "info";
11
+ ScrcpyLogLevel1_18["Warn"] = "warn";
12
+ ScrcpyLogLevel1_18["Error"] = "error";
13
+ })(ScrcpyLogLevel1_18 = ScrcpyLogLevel1_18 || (ScrcpyLogLevel1_18 = {}));
14
+ export var ScrcpyVideoOrientation1_18;
15
+ (function (ScrcpyVideoOrientation1_18) {
16
+ ScrcpyVideoOrientation1_18[ScrcpyVideoOrientation1_18["Initial"] = -2] = "Initial";
17
+ ScrcpyVideoOrientation1_18[ScrcpyVideoOrientation1_18["Unlocked"] = -1] = "Unlocked";
18
+ ScrcpyVideoOrientation1_18[ScrcpyVideoOrientation1_18["Portrait"] = 0] = "Portrait";
19
+ ScrcpyVideoOrientation1_18[ScrcpyVideoOrientation1_18["Landscape"] = 1] = "Landscape";
20
+ ScrcpyVideoOrientation1_18[ScrcpyVideoOrientation1_18["PortraitFlipped"] = 2] = "PortraitFlipped";
21
+ ScrcpyVideoOrientation1_18[ScrcpyVideoOrientation1_18["LandscapeFlipped"] = 3] = "LandscapeFlipped";
22
+ })(ScrcpyVideoOrientation1_18 = ScrcpyVideoOrientation1_18 || (ScrcpyVideoOrientation1_18 = {}));
23
+ export const ScrcpyBackOrScreenOnControlMessage1_18 = new Struct()
24
+ .concat(ScrcpyBackOrScreenOnControlMessage1_16)
25
+ .uint8("action", placeholder());
26
+ export const SCRCPY_CONTROL_MESSAGE_TYPES_1_18 = SCRCPY_CONTROL_MESSAGE_TYPES_1_16.slice();
27
+ SCRCPY_CONTROL_MESSAGE_TYPES_1_18.splice(6, 0, ScrcpyControlMessageType.ExpandSettingPanel);
28
+ const LOG_LEVEL_MAP = {
29
+ [ScrcpyLogLevel1_18.Verbose]: ScrcpyLogLevel1_16.Debug,
30
+ [ScrcpyLogLevel1_18.Debug]: ScrcpyLogLevel1_16.Debug,
31
+ [ScrcpyLogLevel1_18.Info]: ScrcpyLogLevel1_16.Info,
32
+ [ScrcpyLogLevel1_18.Warn]: ScrcpyLogLevel1_16.Warn,
33
+ [ScrcpyLogLevel1_18.Error]: ScrcpyLogLevel1_16.Error,
34
+ };
35
+ const VIDEO_ORIENTATION_MAP = {
36
+ [ScrcpyVideoOrientation1_18.Initial]: ScrcpyVideoOrientation1_16.Unlocked,
37
+ [ScrcpyVideoOrientation1_18.Unlocked]: ScrcpyVideoOrientation1_16.Unlocked,
38
+ [ScrcpyVideoOrientation1_18.Portrait]: ScrcpyVideoOrientation1_16.Portrait,
39
+ [ScrcpyVideoOrientation1_18.Landscape]: ScrcpyVideoOrientation1_16.Landscape,
40
+ [ScrcpyVideoOrientation1_18.PortraitFlipped]: ScrcpyVideoOrientation1_16.PortraitFlipped,
41
+ [ScrcpyVideoOrientation1_18.LandscapeFlipped]: ScrcpyVideoOrientation1_16.LandscapeFlipped,
42
+ };
43
+ class ScrcpyOptions1_18 extends ScrcpyOptionsBase {
44
+ static DEFAULTS = {
45
+ ...ScrcpyOptions1_17.DEFAULTS,
46
+ logLevel: ScrcpyLogLevel1_18.Debug,
47
+ lockVideoOrientation: ScrcpyVideoOrientation1_18.Unlocked,
48
+ powerOffOnClose: false,
49
+ };
50
+ static SERIALIZE_ORDER = [
51
+ ...ScrcpyOptions1_17.SERIALIZE_ORDER,
52
+ "powerOffOnClose",
53
+ ];
54
+ get defaults() {
55
+ return ScrcpyOptions1_18.DEFAULTS;
56
+ }
57
+ get controlMessageTypes() {
58
+ return SCRCPY_CONTROL_MESSAGE_TYPES_1_18;
59
+ }
60
+ constructor(init) {
61
+ const value = { ...ScrcpyOptions1_18.DEFAULTS, ...init };
62
+ super(new ScrcpyOptions1_17({
63
+ ...init,
64
+ logLevel: LOG_LEVEL_MAP[value.logLevel],
65
+ lockVideoOrientation: VIDEO_ORIENTATION_MAP[value.lockVideoOrientation],
66
+ }), value);
67
+ }
68
+ serialize() {
69
+ return ScrcpyOptions1_16.serialize(this.value, ScrcpyOptions1_18.SERIALIZE_ORDER);
70
+ }
71
+ parseEncoder(line) {
72
+ return ScrcpyOptions1_17.parseEncoder(line, /\s+scrcpy --encoder '(.*?)'/);
73
+ }
74
+ serializeBackOrScreenOnControlMessage(message) {
75
+ return ScrcpyBackOrScreenOnControlMessage1_18.serialize(message);
76
+ }
77
+ }
78
+ export { ScrcpyOptions1_18 };
46
79
  //# sourceMappingURL=1_18.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"1_18.js","sourceRoot":"","sources":["../../src/options/1_18.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EACH,wBAAwB,GAG3B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACH,sCAAsC,EACtC,iBAAiB,GAEpB,MAAM,mBAAmB,CAAC;AAM3B,MAAM,CAAC,MAAM,sCAAsC,GAAG,IAAI,MAAM,EAAE;KAC7D,MAAM,CAAC,sCAAsC,CAAC;KAC9C,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAyB,CAAC,CAAC;AAK3D,MAAM,OAAO,iBAEX,SAAQ,iBAAoB;IAC1B,YAAY,KAAqC;QAC7C,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAEkB,gBAAgB;QAC/B,OAAO,KAAK,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAChE,CAAC;IAEe,eAAe;QAC3B,OAAO;YACH,GAAG,KAAK,CAAC,eAAe,EAAE;YAC1B,eAAe,EAAE,KAAK;SACzB,CAAC;IACN,CAAC;IAEe,yBAAyB;QACrC,OAAO,6BAA6B,CAAC;IACzC,CAAC;IAEe,sBAAsB;QAClC;;;;;;;;;;;;;WAaG;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,sBAAsB,EAAE,CAAC;QAC7C,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;QAChE,OAAO,KAAK,CAAC;IACjB,CAAC;IAEe,qCAAqC,CACjD,OAA2C;QAE3C,OAAO,sCAAsC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC;CACJ"}
1
+ {"version":3,"file":"1_18.js","sourceRoot":"","sources":["../../src/options/1_18.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,42 @@
1
- import Struct from "@yume-chan/struct";
2
- import { ScrcpyControlMessageType, type ScrcpySetClipboardControlMessage } from "../control/index.js";
3
- import { ScrcpyOptions1_18, type ScrcpyOptionsInit1_18 } from "./1_18.js";
4
- export interface ScrcpyOptionsInit1_21 extends ScrcpyOptionsInit1_18 {
5
- clipboardAutosync?: boolean;
6
- }
7
- export declare const ScrcpySetClipboardControlMessage1_21: Struct<{
8
- type: ScrcpyControlMessageType.SetClipboard;
9
- sequence: bigint;
10
- paste: number;
11
- length: number;
12
- content: string;
13
- }, "length", Record<never, never>, undefined>;
14
- export type ScrcpySetClipboardControlMessage1_21 = typeof ScrcpySetClipboardControlMessage1_21["TInit"];
15
- export declare class ScrcpyOptions1_21<T extends ScrcpyOptionsInit1_21 = ScrcpyOptionsInit1_21> extends ScrcpyOptions1_18<T> {
16
- constructor(init: Partial<ScrcpyOptionsInit1_21>);
17
- getDefaultValue(): T;
18
- formatServerArguments(): string[];
19
- serializeSetClipboardControlMessage(message: ScrcpySetClipboardControlMessage): Uint8Array;
20
- }
1
+ import Struct from "@yume-chan/struct";
2
+ import type { ScrcpySetClipboardControlMessage } from "../control/index.js";
3
+ import type { ScrcpyOptionsInit1_18 } from "./1_18.js";
4
+ import { ScrcpyOptions1_18 } from "./1_18.js";
5
+ import { ScrcpyOptionsBase } from "./types.js";
6
+ export interface ScrcpyOptionsInit1_21 extends ScrcpyOptionsInit1_18 {
7
+ clipboardAutosync?: boolean;
8
+ }
9
+ export declare const ScrcpySetClipboardControlMessage1_21: Struct<{
10
+ type: number;
11
+ sequence: bigint;
12
+ paste: boolean;
13
+ length: number;
14
+ content: string;
15
+ }, "length", Record<never, never>, undefined>;
16
+ export type ScrcpySetClipboardControlMessage1_21 = (typeof ScrcpySetClipboardControlMessage1_21)["TInit"];
17
+ export declare class ScrcpyOptions1_21 extends ScrcpyOptionsBase<ScrcpyOptionsInit1_21, ScrcpyOptions1_18> {
18
+ static readonly DEFAULTS: {
19
+ readonly clipboardAutosync: true;
20
+ readonly logLevel: import("./1_18.js").ScrcpyLogLevel1_18.Debug;
21
+ readonly lockVideoOrientation: import("./1_18.js").ScrcpyVideoOrientation1_18.Unlocked;
22
+ readonly powerOffOnClose: false;
23
+ readonly encoderName: undefined;
24
+ readonly maxSize: 0;
25
+ readonly bitRate: 8000000;
26
+ readonly maxFps: 0;
27
+ readonly tunnelForward: false;
28
+ readonly crop: undefined;
29
+ readonly sendFrameMeta: true;
30
+ readonly control: true;
31
+ readonly displayId: 0;
32
+ readonly showTouches: false;
33
+ readonly stayAwake: false;
34
+ readonly codecOptions: import("./index.js").CodecOptions;
35
+ };
36
+ static serialize<T extends object>(options: T, defaults: Required<T>): string[];
37
+ get defaults(): Required<ScrcpyOptionsInit1_21>;
38
+ constructor(init: ScrcpyOptionsInit1_21);
39
+ serialize(): string[];
40
+ serializeSetClipboardControlMessage(message: ScrcpySetClipboardControlMessage): Uint8Array;
41
+ }
21
42
  //# sourceMappingURL=1_21.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"1_21.d.ts","sourceRoot":"","sources":["../../src/options/1_21.ts"],"names":[],"mappings":"AAEA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EACH,wBAAwB,EACxB,KAAK,gCAAgC,EACxC,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAG1E,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAChE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAMD,eAAO,MAAM,oCAAoC;;;;;;6CAKA,CAAC;AAElD,MAAM,MAAM,oCAAoC,GAC5C,OAAO,oCAAoC,CAAC,OAAO,CAAC,CAAC;AAEzD,qBAAa,iBAAiB,CAC1B,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CACzD,SAAQ,iBAAiB,CAAC,CAAC,CAAC;gBACP,IAAI,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAIvC,eAAe,IAAI,CAAC;IAOpB,qBAAqB,IAAI,MAAM,EAAE;IAYjC,mCAAmC,CAC/C,OAAO,EAAE,gCAAgC,GAC1C,UAAU;CAGhB"}
1
+ {"version":3,"file":"1_21.d.ts","sourceRoot":"","sources":["../../src/options/1_21.ts"],"names":[],"mappings":"AAEA,OAAO,MAAuB,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAE5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAuB,MAAM,YAAY,CAAC;AAEpE,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAChE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAMD,eAAO,MAAM,oCAAoC;;;;;;6CAKA,CAAC;AAElD,MAAM,MAAM,oCAAoC,GAC5C,CAAC,OAAO,oCAAoC,CAAC,CAAC,OAAO,CAAC,CAAC;AAE3D,qBAAa,iBAAkB,SAAQ,iBAAiB,CACpD,qBAAqB,EACrB,iBAAiB,CACpB;IACG,gBAAuB,QAAQ;;;;;;;;;;;;;;;;;MAGsB;WAEvC,SAAS,CAAC,CAAC,SAAS,MAAM,EACpC,OAAO,EAAE,CAAC,EACV,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GACtB,MAAM,EAAE;IAsBX,IAAoB,QAAQ,IAAI,QAAQ,CAAC,qBAAqB,CAAC,CAE9D;gBAEkB,IAAI,EAAE,qBAAqB;IAO9B,SAAS,IAAI,MAAM,EAAE;IAIrB,mCAAmC,CAC/C,OAAO,EAAE,gCAAgC,GAC1C,UAAU;CAGhB"}
@@ -1,37 +1,52 @@
1
- // cspell: ignore autosync
2
- import Struct from "@yume-chan/struct";
3
- import { ScrcpyControlMessageType, } from "../control/index.js";
4
- import { ScrcpyOptions1_18 } from "./1_18.js";
5
- import { toScrcpyOptionValue } from "./types.js";
6
- function toSnakeCase(input) {
7
- return input.replace(/([A-Z])/g, "_$1").toLowerCase();
8
- }
9
- export const ScrcpySetClipboardControlMessage1_21 = new Struct()
10
- .uint8("type", ScrcpyControlMessageType.SetClipboard)
11
- .uint64("sequence")
12
- .int8("paste")
13
- .uint32("length")
14
- .string("content", { lengthField: "length" });
15
- export class ScrcpyOptions1_21 extends ScrcpyOptions1_18 {
16
- constructor(init) {
17
- super(init);
18
- }
19
- getDefaultValue() {
20
- return {
21
- ...super.getDefaultValue(),
22
- clipboardAutosync: true,
23
- };
24
- }
25
- formatServerArguments() {
26
- // 1.21 changed the format of arguments
27
- // So `getArgumentOrder()` is no longer needed
28
- return Object.entries(this.value)
29
- .map(([key, value]) => [key, toScrcpyOptionValue(value, undefined)])
30
- .filter((pair) => pair[1] !== undefined)
31
- .map(([key, value]) => `${toSnakeCase(key)}=${value}`);
32
- }
33
- serializeSetClipboardControlMessage(message) {
34
- return ScrcpySetClipboardControlMessage1_21.serialize(message);
35
- }
36
- }
1
+ // cspell: ignore autosync
2
+ import Struct, { placeholder } from "@yume-chan/struct";
3
+ import { ScrcpyOptions1_18 } from "./1_18.js";
4
+ import { ScrcpyOptionsBase, toScrcpyOptionValue } from "./types.js";
5
+ function toSnakeCase(input) {
6
+ return input.replace(/([A-Z])/g, "_$1").toLowerCase();
7
+ }
8
+ export const ScrcpySetClipboardControlMessage1_21 = new Struct()
9
+ .uint8("type")
10
+ .uint64("sequence")
11
+ .int8("paste", placeholder())
12
+ .uint32("length")
13
+ .string("content", { lengthField: "length" });
14
+ class ScrcpyOptions1_21 extends ScrcpyOptionsBase {
15
+ static DEFAULTS = {
16
+ ...ScrcpyOptions1_18.DEFAULTS,
17
+ clipboardAutosync: true,
18
+ };
19
+ static serialize(options, defaults) {
20
+ // 1.21 changed the format of arguments
21
+ const result = [];
22
+ for (const [key, value] of Object.entries(options)) {
23
+ const serializedValue = toScrcpyOptionValue(value, undefined);
24
+ if (!serializedValue) {
25
+ continue;
26
+ }
27
+ const defaultValue = toScrcpyOptionValue(defaults[key], undefined);
28
+ if (serializedValue == defaultValue) {
29
+ continue;
30
+ }
31
+ result.push(`${toSnakeCase(key)}=${serializedValue}`);
32
+ }
33
+ return result;
34
+ }
35
+ get defaults() {
36
+ return ScrcpyOptions1_21.DEFAULTS;
37
+ }
38
+ constructor(init) {
39
+ super(new ScrcpyOptions1_18(init), {
40
+ ...ScrcpyOptions1_21.DEFAULTS,
41
+ ...init,
42
+ });
43
+ }
44
+ serialize() {
45
+ return ScrcpyOptions1_21.serialize(this.value, this.defaults);
46
+ }
47
+ serializeSetClipboardControlMessage(message) {
48
+ return ScrcpySetClipboardControlMessage1_21.serialize(message);
49
+ }
50
+ }
51
+ export { ScrcpyOptions1_21 };
37
52
  //# sourceMappingURL=1_21.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"1_21.js","sourceRoot":"","sources":["../../src/options/1_21.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EACH,wBAAwB,GAE3B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAA8B,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAMjD,SAAS,WAAW,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,MAAM,oCAAoC,GAAG,IAAI,MAAM,EAAE;KAC3D,KAAK,CAAC,MAAM,EAAE,wBAAwB,CAAC,YAAqB,CAAC;KAC7D,MAAM,CAAC,UAAU,CAAC;KAClB,IAAI,CAAC,OAAO,CAAC;KACb,MAAM,CAAC,QAAQ,CAAC;KAChB,MAAM,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;AAKlD,MAAM,OAAO,iBAEX,SAAQ,iBAAoB;IAC1B,YAAmB,IAAoC;QACnD,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEe,eAAe;QAC3B,OAAO;YACH,GAAG,KAAK,CAAC,eAAe,EAAE;YAC1B,iBAAiB,EAAE,IAAI;SAC1B,CAAC;IACN,CAAC;IAEe,qBAAqB;QACjC,uCAAuC;QACvC,8CAA8C;QAC9C,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;aAC5B,GAAG,CACA,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CACb,CAAC,GAAG,EAAE,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAU,CAC5D;aACA,MAAM,CAAC,CAAC,IAAI,EAA4B,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;aACjE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;IAEe,mCAAmC,CAC/C,OAAyC;QAEzC,OAAO,oCAAoC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;CACJ"}
1
+ {"version":3,"file":"1_21.js","sourceRoot":"","sources":["../../src/options/1_21.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAMpE,SAAS,WAAW,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,MAAM,oCAAoC,GAAG,IAAI,MAAM,EAAE;KAC3D,KAAK,CAAC,MAAM,CAAC;KACb,MAAM,CAAC,UAAU,CAAC;KAClB,IAAI,CAAC,OAAO,EAAE,WAAW,EAAW,CAAC;KACrC,MAAM,CAAC,QAAQ,CAAC;KAChB,MAAM,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;AAKlD,MAAa,iBAAkB,SAAQ,iBAGtC;IACU,MAAM,CAAU,QAAQ,GAAG;QAC9B,GAAG,iBAAiB,CAAC,QAAQ;QAC7B,iBAAiB,EAAE,IAAI;KACyB,CAAC;IAE9C,MAAM,CAAC,SAAS,CACnB,OAAU,EACV,QAAqB;QAErB,uCAAuC;QACvC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAChD,MAAM,eAAe,GAAG,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC9D,IAAI,CAAC,eAAe,EAAE;gBAClB,SAAS;aACZ;YAED,MAAM,YAAY,GAAG,mBAAmB,CACpC,QAAQ,CAAC,GAAc,CAAC,EACxB,SAAS,CACZ,CAAC;YACF,IAAI,eAAe,IAAI,YAAY,EAAE;gBACjC,SAAS;aACZ;YAED,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;SACzD;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAoB,QAAQ;QACxB,OAAO,iBAAiB,CAAC,QAAQ,CAAC;IACtC,CAAC;IAED,YAAmB,IAA2B;QAC1C,KAAK,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE;YAC/B,GAAG,iBAAiB,CAAC,QAAQ;YAC7B,GAAG,IAAI;SACV,CAAC,CAAC;IACP,CAAC;IAEe,SAAS;QACrB,OAAO,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;IAEe,mCAAmC,CAC/C,OAAyC;QAEzC,OAAO,oCAAoC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;;SArDQ,iBAAiB"}
@@ -1,3 +1,4 @@
1
- export * from "./options.js";
2
- export * from "./scroll.js";
1
+ export * from "./init.js";
2
+ export * from "./options.js";
3
+ export * from "./scroll.js";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/options/1_22/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/options/1_22/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
@@ -1,3 +1,4 @@
1
- export * from "./options.js";
2
- export * from "./scroll.js";
1
+ export * from "./init.js";
2
+ export * from "./options.js";
3
+ export * from "./scroll.js";
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/options/1_22/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/options/1_22/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { ScrcpyOptionsInit1_21 } from "../1_21.js";
2
+ export interface ScrcpyOptionsInit1_22 extends ScrcpyOptionsInit1_21 {
3
+ downsizeOnError?: boolean;
4
+ /**
5
+ * Send device name and size at start of video stream.
6
+ *
7
+ * @default true
8
+ */
9
+ sendDeviceMeta?: boolean;
10
+ /**
11
+ * Send a `0` byte on start of video stream to detect connection issues
12
+ *
13
+ * @default true
14
+ */
15
+ sendDummyByte?: boolean;
16
+ }
17
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/options/1_22/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAChE,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/options/1_22/init.ts"],"names":[],"mappings":""}
@@ -1,29 +1,36 @@
1
- import { type ScrcpyScrollController } from "../1_16/index.js";
2
- import { ScrcpyOptions1_21, type ScrcpyOptionsInit1_21 } from "../1_21.js";
3
- export interface ScrcpyOptionsInit1_22 extends ScrcpyOptionsInit1_21 {
4
- downsizeOnError: boolean;
5
- /**
6
- * Send device name and size at start of video stream.
7
- *
8
- * @default true
9
- */
10
- sendDeviceMeta: boolean;
11
- /**
12
- * Send a `0` byte on start of video stream to detect connection issues
13
- *
14
- * @default true
15
- */
16
- sendDummyByte: boolean;
17
- /**
18
- * Implies `sendDeviceMeta: false`, `sendFrameMeta: false` and `sendDummyByte: false`
19
- *
20
- * @default false
21
- */
22
- rawVideoStream: boolean;
23
- }
24
- export declare class ScrcpyOptions1_22<T extends ScrcpyOptionsInit1_22 = ScrcpyOptionsInit1_22> extends ScrcpyOptions1_21<T> {
25
- constructor(init: Partial<ScrcpyOptionsInit1_22>);
26
- getDefaultValue(): T;
27
- getScrollController(): ScrcpyScrollController;
28
- }
1
+ import type { ReadableStream } from "@yume-chan/stream-extra";
2
+ import type { ValueOrPromise } from "@yume-chan/struct";
3
+ import type { ScrcpyScrollController } from "../1_16/index.js";
4
+ import { ScrcpyOptions1_21 } from "../1_21.js";
5
+ import type { ScrcpyVideoStream } from "../codec.js";
6
+ import { ScrcpyOptionsBase } from "../types.js";
7
+ import type { ScrcpyOptionsInit1_22 } from "./init.js";
8
+ export declare class ScrcpyOptions1_22 extends ScrcpyOptionsBase<ScrcpyOptionsInit1_22, ScrcpyOptions1_21> {
9
+ static readonly DEFAULTS: {
10
+ readonly downsizeOnError: true;
11
+ readonly sendDeviceMeta: true;
12
+ readonly sendDummyByte: true;
13
+ readonly clipboardAutosync: true;
14
+ readonly logLevel: import("../1_18.js").ScrcpyLogLevel1_18.Debug;
15
+ readonly lockVideoOrientation: import("../1_18.js").ScrcpyVideoOrientation1_18.Unlocked;
16
+ readonly powerOffOnClose: false;
17
+ readonly encoderName: undefined;
18
+ readonly maxSize: 0;
19
+ readonly bitRate: 8000000;
20
+ readonly maxFps: 0;
21
+ readonly tunnelForward: false;
22
+ readonly crop: undefined;
23
+ readonly sendFrameMeta: true;
24
+ readonly control: true;
25
+ readonly displayId: 0;
26
+ readonly showTouches: false;
27
+ readonly stayAwake: false;
28
+ readonly codecOptions: import("../1_16/codec-options.js").CodecOptions;
29
+ };
30
+ get defaults(): Required<ScrcpyOptionsInit1_22>;
31
+ constructor(init: ScrcpyOptionsInit1_22);
32
+ parseVideoStreamMetadata(stream: ReadableStream<Uint8Array>): ValueOrPromise<ScrcpyVideoStream>;
33
+ serialize(): string[];
34
+ createScrollController(): ScrcpyScrollController;
35
+ }
29
36
  //# sourceMappingURL=options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/options/1_22/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAI3E,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAChE,eAAe,EAAE,OAAO,CAAC;IAEzB;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,iBAAiB,CAC1B,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CACzD,SAAQ,iBAAiB,CAAC,CAAC,CAAC;gBACP,IAAI,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAWvC,eAAe,IAAI,CAAC;IAUpB,mBAAmB,IAAI,sBAAsB;CAGhE"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/options/1_22/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAGvD,qBAAa,iBAAkB,SAAQ,iBAAiB,CACpD,qBAAqB,EACrB,iBAAiB,CACpB;IACG,gBAAuB,QAAQ;;;;;;;;;;;;;;;;;;;;MAKsB;IAErD,IAAoB,QAAQ,IAAI,QAAQ,CAAC,qBAAqB,CAAC,CAE9D;gBAEkB,IAAI,EAAE,qBAAqB;IAO9B,wBAAwB,CACpC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,cAAc,CAAC,iBAAiB,CAAC;IAQpB,SAAS,IAAI,MAAM,EAAE;IAIrB,sBAAsB,IAAI,sBAAsB;CAGnE"}