@yume-chan/scrcpy 1.1.0 → 2.0.1

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 (331) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/LICENSE +1 -1
  3. package/esm/1_15/impl/back-or-screen-on.d.ts +1 -1
  4. package/esm/1_15/impl/clipboard-stream.d.ts +3 -3
  5. package/esm/1_15/impl/inject-touch.d.ts +9 -9
  6. package/esm/1_15/impl/inject-touch.d.ts.map +1 -1
  7. package/esm/1_15/impl/inject-touch.js +14 -18
  8. package/esm/1_15/impl/inject-touch.js.map +1 -1
  9. package/esm/1_15/impl/media-stream-transformer.d.ts +3 -3
  10. package/esm/1_15/impl/scroll-controller.d.ts +5 -5
  11. package/esm/1_15/impl/scroll-controller.js +2 -2
  12. package/esm/1_15/impl/scroll-controller.js.map +1 -1
  13. package/esm/1_15/impl/set-clipboard.d.ts +3 -3
  14. package/esm/1_15/index.d.ts +0 -1
  15. package/esm/1_15/index.d.ts.map +1 -1
  16. package/esm/1_15/index.js +0 -1
  17. package/esm/1_15/index.js.map +1 -1
  18. package/esm/1_15/options.d.ts +3 -4
  19. package/esm/1_15/options.d.ts.map +1 -1
  20. package/esm/1_15/options.js +1 -3
  21. package/esm/1_15/options.js.map +1 -1
  22. package/esm/1_15_1.d.ts +4 -2
  23. package/esm/1_15_1.d.ts.map +1 -1
  24. package/esm/1_15_1.js +2 -3
  25. package/esm/1_15_1.js.map +1 -1
  26. package/esm/1_16.d.ts +4 -2
  27. package/esm/1_16.d.ts.map +1 -1
  28. package/esm/1_16.js +2 -3
  29. package/esm/1_16.js.map +1 -1
  30. package/esm/1_17/index.d.ts +0 -1
  31. package/esm/1_17/index.d.ts.map +1 -1
  32. package/esm/1_17/index.js +0 -1
  33. package/esm/1_17/index.js.map +1 -1
  34. package/esm/1_17/options.d.ts +5 -6
  35. package/esm/1_17/options.d.ts.map +1 -1
  36. package/esm/1_17/options.js +1 -3
  37. package/esm/1_17/options.js.map +1 -1
  38. package/esm/1_18/impl/back-or-screen-on.d.ts +5 -3
  39. package/esm/1_18/impl/back-or-screen-on.d.ts.map +1 -1
  40. package/esm/1_18/impl/back-or-screen-on.js +2 -5
  41. package/esm/1_18/impl/back-or-screen-on.js.map +1 -1
  42. package/esm/1_18/index.d.ts +0 -1
  43. package/esm/1_18/index.d.ts.map +1 -1
  44. package/esm/1_18/index.js +0 -1
  45. package/esm/1_18/index.js.map +1 -1
  46. package/esm/1_18/options.d.ts +5 -6
  47. package/esm/1_18/options.d.ts.map +1 -1
  48. package/esm/1_18/options.js +1 -3
  49. package/esm/1_18/options.js.map +1 -1
  50. package/esm/1_19.d.ts +4 -2
  51. package/esm/1_19.d.ts.map +1 -1
  52. package/esm/1_19.js +2 -3
  53. package/esm/1_19.js.map +1 -1
  54. package/esm/1_20.d.ts +4 -2
  55. package/esm/1_20.d.ts.map +1 -1
  56. package/esm/1_20.js +2 -3
  57. package/esm/1_20.js.map +1 -1
  58. package/esm/1_21/impl/set-clipboard.d.ts +6 -6
  59. package/esm/1_21/index.d.ts +0 -1
  60. package/esm/1_21/index.d.ts.map +1 -1
  61. package/esm/1_21/index.js +0 -1
  62. package/esm/1_21/index.js.map +1 -1
  63. package/esm/1_21/options.d.ts +5 -6
  64. package/esm/1_21/options.d.ts.map +1 -1
  65. package/esm/1_21/options.js +1 -3
  66. package/esm/1_21/options.js.map +1 -1
  67. package/esm/1_22/impl/scroll-controller.d.ts +8 -6
  68. package/esm/1_22/impl/scroll-controller.d.ts.map +1 -1
  69. package/esm/1_22/impl/scroll-controller.js +2 -5
  70. package/esm/1_22/impl/scroll-controller.js.map +1 -1
  71. package/esm/1_22/index.d.ts +0 -1
  72. package/esm/1_22/index.d.ts.map +1 -1
  73. package/esm/1_22/index.js +0 -1
  74. package/esm/1_22/index.js.map +1 -1
  75. package/esm/1_22/options.d.ts +5 -6
  76. package/esm/1_22/options.d.ts.map +1 -1
  77. package/esm/1_22/options.js +1 -3
  78. package/esm/1_22/options.js.map +1 -1
  79. package/esm/1_23/index.d.ts +0 -1
  80. package/esm/1_23/index.d.ts.map +1 -1
  81. package/esm/1_23/index.js +0 -1
  82. package/esm/1_23/index.js.map +1 -1
  83. package/esm/1_23/options.d.ts +5 -6
  84. package/esm/1_23/options.d.ts.map +1 -1
  85. package/esm/1_23/options.js +1 -3
  86. package/esm/1_23/options.js.map +1 -1
  87. package/esm/1_24/index.d.ts +0 -1
  88. package/esm/1_24/index.d.ts.map +1 -1
  89. package/esm/1_24/index.js +0 -1
  90. package/esm/1_24/index.js.map +1 -1
  91. package/esm/1_24/options.d.ts +5 -6
  92. package/esm/1_24/options.d.ts.map +1 -1
  93. package/esm/1_24/options.js +1 -3
  94. package/esm/1_24/options.js.map +1 -1
  95. package/esm/1_25/impl/scroll-controller.d.ts +11 -11
  96. package/esm/1_25/impl/scroll-controller.d.ts.map +1 -1
  97. package/esm/1_25/impl/scroll-controller.js +14 -18
  98. package/esm/1_25/impl/scroll-controller.js.map +1 -1
  99. package/esm/1_25/index.d.ts +0 -1
  100. package/esm/1_25/index.d.ts.map +1 -1
  101. package/esm/1_25/index.js +0 -1
  102. package/esm/1_25/index.js.map +1 -1
  103. package/esm/1_25/options.d.ts +5 -6
  104. package/esm/1_25/options.d.ts.map +1 -1
  105. package/esm/1_25/options.js +1 -3
  106. package/esm/1_25/options.js.map +1 -1
  107. package/esm/2_0/impl/inject-touch.d.ts +11 -11
  108. package/esm/2_0/impl/inject-touch.js +2 -2
  109. package/esm/2_0/impl/inject-touch.js.map +1 -1
  110. package/esm/2_0/impl/parse-audio-stream-metadata.d.ts +1 -1
  111. package/esm/2_0/impl/parse-audio-stream-metadata.d.ts.map +1 -1
  112. package/esm/2_0/impl/parse-audio-stream-metadata.js.map +1 -1
  113. package/esm/2_0/index.d.ts +0 -1
  114. package/esm/2_0/index.d.ts.map +1 -1
  115. package/esm/2_0/index.js +0 -1
  116. package/esm/2_0/index.js.map +1 -1
  117. package/esm/2_0/options.d.ts +5 -6
  118. package/esm/2_0/options.d.ts.map +1 -1
  119. package/esm/2_0/options.js +1 -3
  120. package/esm/2_0/options.js.map +1 -1
  121. package/esm/2_1/impl/defaults.d.ts.map +1 -1
  122. package/esm/2_1/impl/defaults.js.map +1 -1
  123. package/esm/2_1/impl/init.d.ts +2 -2
  124. package/esm/2_1/impl/init.d.ts.map +1 -1
  125. package/esm/2_1/index.d.ts +0 -1
  126. package/esm/2_1/index.d.ts.map +1 -1
  127. package/esm/2_1/index.js +0 -1
  128. package/esm/2_1/index.js.map +1 -1
  129. package/esm/2_1/options.d.ts +8 -9
  130. package/esm/2_1/options.d.ts.map +1 -1
  131. package/esm/2_1/options.js +1 -3
  132. package/esm/2_1/options.js.map +1 -1
  133. package/esm/2_1_1.d.ts +5 -3
  134. package/esm/2_1_1.d.ts.map +1 -1
  135. package/esm/2_1_1.js +2 -3
  136. package/esm/2_1_1.js.map +1 -1
  137. package/esm/2_2/impl/defaults.d.ts.map +1 -1
  138. package/esm/2_2/impl/defaults.js.map +1 -1
  139. package/esm/2_2/impl/init.d.ts +1 -1
  140. package/esm/2_2/impl/init.d.ts.map +1 -1
  141. package/esm/2_2/index.d.ts +0 -1
  142. package/esm/2_2/index.d.ts.map +1 -1
  143. package/esm/2_2/index.js +0 -1
  144. package/esm/2_2/index.js.map +1 -1
  145. package/esm/2_2/options.d.ts +8 -9
  146. package/esm/2_2/options.d.ts.map +1 -1
  147. package/esm/2_2/options.js +1 -3
  148. package/esm/2_2/options.js.map +1 -1
  149. package/esm/2_3/impl/init.d.ts +2 -2
  150. package/esm/2_3/impl/init.d.ts.map +1 -1
  151. package/esm/2_3/index.d.ts +0 -1
  152. package/esm/2_3/index.d.ts.map +1 -1
  153. package/esm/2_3/index.js +0 -1
  154. package/esm/2_3/index.js.map +1 -1
  155. package/esm/2_3/options.d.ts +8 -9
  156. package/esm/2_3/options.d.ts.map +1 -1
  157. package/esm/2_3/options.js +1 -3
  158. package/esm/2_3/options.js.map +1 -1
  159. package/esm/2_3_1.d.ts +5 -3
  160. package/esm/2_3_1.d.ts.map +1 -1
  161. package/esm/2_3_1.js +2 -3
  162. package/esm/2_3_1.js.map +1 -1
  163. package/esm/2_4/impl/serialize-uhid-create.d.ts +3 -3
  164. package/esm/2_4/impl/uhid-output-stream.d.ts +3 -3
  165. package/esm/2_4/index.d.ts +0 -1
  166. package/esm/2_4/index.d.ts.map +1 -1
  167. package/esm/2_4/index.js +0 -1
  168. package/esm/2_4/index.js.map +1 -1
  169. package/esm/2_4/options.d.ts +8 -9
  170. package/esm/2_4/options.d.ts.map +1 -1
  171. package/esm/2_4/options.js +1 -3
  172. package/esm/2_4/options.js.map +1 -1
  173. package/esm/2_5.d.ts +5 -3
  174. package/esm/2_5.d.ts.map +1 -1
  175. package/esm/2_5.js +2 -3
  176. package/esm/2_5.js.map +1 -1
  177. package/esm/2_6/impl/defaults.d.ts.map +1 -1
  178. package/esm/2_6/impl/defaults.js.map +1 -1
  179. package/esm/2_6/impl/init.d.ts +2 -2
  180. package/esm/2_6/impl/init.d.ts.map +1 -1
  181. package/esm/2_6/index.d.ts +0 -1
  182. package/esm/2_6/index.d.ts.map +1 -1
  183. package/esm/2_6/index.js +0 -1
  184. package/esm/2_6/index.js.map +1 -1
  185. package/esm/2_6/options.d.ts +8 -9
  186. package/esm/2_6/options.d.ts.map +1 -1
  187. package/esm/2_6/options.js +1 -3
  188. package/esm/2_6/options.js.map +1 -1
  189. package/esm/2_6_1.d.ts +5 -3
  190. package/esm/2_6_1.d.ts.map +1 -1
  191. package/esm/2_6_1.js +2 -3
  192. package/esm/2_6_1.js.map +1 -1
  193. package/esm/2_7/impl/serialize-uhid-create.d.ts +7 -7
  194. package/esm/2_7/index.d.ts +0 -1
  195. package/esm/2_7/index.d.ts.map +1 -1
  196. package/esm/2_7/index.js +0 -1
  197. package/esm/2_7/index.js.map +1 -1
  198. package/esm/2_7/options.d.ts +8 -9
  199. package/esm/2_7/options.d.ts.map +1 -1
  200. package/esm/2_7/options.js +1 -3
  201. package/esm/2_7/options.js.map +1 -1
  202. package/esm/3_0/impl/defaults.d.ts.map +1 -1
  203. package/esm/3_0/impl/defaults.js.map +1 -1
  204. package/esm/3_0/impl/init.d.ts +1 -1
  205. package/esm/3_0/impl/init.d.ts.map +1 -1
  206. package/esm/3_0/index.d.ts +0 -1
  207. package/esm/3_0/index.d.ts.map +1 -1
  208. package/esm/3_0/index.js +0 -1
  209. package/esm/3_0/index.js.map +1 -1
  210. package/esm/3_0/options.d.ts +8 -9
  211. package/esm/3_0/options.d.ts.map +1 -1
  212. package/esm/3_0/options.js +1 -3
  213. package/esm/3_0/options.js.map +1 -1
  214. package/esm/3_0_1.d.ts +5 -3
  215. package/esm/3_0_1.d.ts.map +1 -1
  216. package/esm/3_0_1.js +2 -3
  217. package/esm/3_0_1.js.map +1 -1
  218. package/esm/3_0_2.d.ts +5 -3
  219. package/esm/3_0_2.d.ts.map +1 -1
  220. package/esm/3_0_2.js +2 -3
  221. package/esm/3_0_2.js.map +1 -1
  222. package/esm/3_1/impl/defaults.d.ts.map +1 -1
  223. package/esm/3_1/impl/defaults.js.map +1 -1
  224. package/esm/3_1/impl/init.d.ts +1 -1
  225. package/esm/3_1/impl/init.d.ts.map +1 -1
  226. package/esm/3_1/impl/serialize-uhid-create.d.ts +7 -7
  227. package/esm/3_1/index.d.ts +0 -1
  228. package/esm/3_1/index.d.ts.map +1 -1
  229. package/esm/3_1/index.js +0 -1
  230. package/esm/3_1/index.js.map +1 -1
  231. package/esm/3_1/options.d.ts +8 -9
  232. package/esm/3_1/options.d.ts.map +1 -1
  233. package/esm/3_1/options.js +1 -3
  234. package/esm/3_1/options.js.map +1 -1
  235. package/esm/android/key-event.d.ts.map +1 -1
  236. package/esm/android/key-event.js +3 -2
  237. package/esm/android/key-event.js.map +1 -1
  238. package/esm/base/options.d.ts +6 -5
  239. package/esm/base/options.d.ts.map +1 -1
  240. package/esm/codec/h265.d.ts +23 -2
  241. package/esm/codec/h265.d.ts.map +1 -1
  242. package/esm/codec/h265.js +25 -3
  243. package/esm/codec/h265.js.map +1 -1
  244. package/esm/control/empty.d.ts +1 -1
  245. package/esm/control/inject-key-code.d.ts +9 -9
  246. package/esm/control/inject-text.d.ts +3 -3
  247. package/esm/control/set-screen-power-mode.d.ts +3 -3
  248. package/esm/control/start-app.d.ts +3 -3
  249. package/esm/control/uhid.d.ts +6 -6
  250. package/esm/latest.d.ts +5 -3
  251. package/esm/latest.d.ts.map +1 -1
  252. package/esm/latest.js +2 -3
  253. package/esm/latest.js.map +1 -1
  254. package/esm/utils/index.d.ts +0 -1
  255. package/esm/utils/index.d.ts.map +1 -1
  256. package/esm/utils/index.js +0 -1
  257. package/esm/utils/index.js.map +1 -1
  258. package/package.json +9 -9
  259. package/src/1_15/impl/inject-touch.ts +13 -12
  260. package/src/1_15/impl/scroll-controller.ts +2 -2
  261. package/src/1_15/index.ts +0 -1
  262. package/src/1_15/options.ts +3 -6
  263. package/src/1_15_1.ts +5 -3
  264. package/src/1_16.ts +5 -3
  265. package/src/1_17/index.ts +0 -1
  266. package/src/1_17/options.ts +7 -7
  267. package/src/1_18/impl/back-or-screen-on.ts +5 -9
  268. package/src/1_18/index.ts +0 -1
  269. package/src/1_18/options.ts +7 -7
  270. package/src/1_19.ts +5 -3
  271. package/src/1_20.ts +5 -3
  272. package/src/1_21/index.ts +0 -1
  273. package/src/1_21/options.ts +7 -7
  274. package/src/1_22/impl/scroll-controller.ts +5 -9
  275. package/src/1_22/index.ts +0 -1
  276. package/src/1_22/options.ts +7 -7
  277. package/src/1_23/index.ts +0 -1
  278. package/src/1_23/options.ts +7 -7
  279. package/src/1_24/index.ts +0 -1
  280. package/src/1_24/options.ts +7 -7
  281. package/src/1_25/impl/scroll-controller.ts +10 -9
  282. package/src/1_25/index.ts +0 -1
  283. package/src/1_25/options.ts +7 -7
  284. package/src/2_0/impl/inject-touch.ts +2 -2
  285. package/src/2_0/impl/parse-audio-stream-metadata.ts +1 -1
  286. package/src/2_0/index.ts +0 -1
  287. package/src/2_0/options.ts +7 -7
  288. package/src/2_1/impl/defaults.ts +1 -1
  289. package/src/2_1/impl/init.ts +2 -2
  290. package/src/2_1/index.ts +0 -1
  291. package/src/2_1/options.ts +12 -12
  292. package/src/2_1_1.ts +9 -4
  293. package/src/2_2/impl/defaults.ts +1 -1
  294. package/src/2_2/impl/init.ts +1 -1
  295. package/src/2_2/index.ts +0 -1
  296. package/src/2_2/options.ts +12 -12
  297. package/src/2_3/impl/init.ts +3 -2
  298. package/src/2_3/index.ts +0 -1
  299. package/src/2_3/options.ts +12 -12
  300. package/src/2_3_1.ts +9 -4
  301. package/src/2_4/index.ts +0 -1
  302. package/src/2_4/options.ts +12 -12
  303. package/src/2_5.ts +9 -4
  304. package/src/2_6/impl/defaults.ts +1 -1
  305. package/src/2_6/impl/init.ts +3 -2
  306. package/src/2_6/index.ts +0 -1
  307. package/src/2_6/options.ts +12 -12
  308. package/src/2_6_1.ts +9 -4
  309. package/src/2_7/index.ts +0 -1
  310. package/src/2_7/options.ts +12 -12
  311. package/src/3_0/impl/defaults.ts +1 -1
  312. package/src/3_0/impl/init.ts +2 -1
  313. package/src/3_0/index.ts +0 -1
  314. package/src/3_0/options.ts +12 -12
  315. package/src/3_0_1.ts +9 -4
  316. package/src/3_0_2.ts +9 -4
  317. package/src/3_1/impl/defaults.ts +1 -1
  318. package/src/3_1/impl/init.ts +1 -1
  319. package/src/3_1/index.ts +0 -1
  320. package/src/3_1/options.ts +12 -12
  321. package/src/android/key-event.ts +3 -2
  322. package/src/base/options.ts +11 -8
  323. package/src/codec/h265.ts +31 -5
  324. package/src/latest.ts +9 -4
  325. package/src/utils/index.ts +0 -1
  326. package/tsconfig.build.tsbuildinfo +1 -1
  327. package/esm/utils/wrapper.d.ts +0 -38
  328. package/esm/utils/wrapper.d.ts.map +0 -1
  329. package/esm/utils/wrapper.js +0 -79
  330. package/esm/utils/wrapper.js.map +0 -1
  331. package/src/utils/wrapper.ts +0 -135
@@ -1,18 +1,18 @@
1
1
  import type { StructInit } from "@yume-chan/struct";
2
2
  export declare const ScrcpyUHidInputControlMessage: import("@yume-chan/struct").Struct<{
3
- type: import("@yume-chan/struct").Field<13, never, never>;
3
+ type: import("@yume-chan/struct").Field<13, never, never, number>;
4
4
  id: import("@yume-chan/struct").NumberField<number>;
5
- data: import("@yume-chan/struct").Field<Uint8Array<ArrayBufferLike>, never, never>;
6
- }, {}, import("@yume-chan/struct").FieldsType<{
7
- type: import("@yume-chan/struct").Field<13, never, never>;
5
+ data: import("@yume-chan/struct").Field<Uint8Array<ArrayBufferLike>, string, never, Uint8Array<ArrayBufferLike>>;
6
+ }, undefined, import("@yume-chan/struct").FieldsValue<{
7
+ type: import("@yume-chan/struct").Field<13, never, never, number>;
8
8
  id: import("@yume-chan/struct").NumberField<number>;
9
- data: import("@yume-chan/struct").Field<Uint8Array<ArrayBufferLike>, never, never>;
9
+ data: import("@yume-chan/struct").Field<Uint8Array<ArrayBufferLike>, string, never, Uint8Array<ArrayBufferLike>>;
10
10
  }>>;
11
11
  export type ScrcpyUHidInputControlMessage = StructInit<typeof ScrcpyUHidInputControlMessage>;
12
12
  export declare const ScrcpyUHidDestroyControlMessage: import("@yume-chan/struct").Struct<{
13
13
  type: import("@yume-chan/struct").NumberField<number>;
14
14
  id: import("@yume-chan/struct").NumberField<number>;
15
- }, {}, import("@yume-chan/struct").FieldsType<{
15
+ }, undefined, import("@yume-chan/struct").FieldsValue<{
16
16
  type: import("@yume-chan/struct").NumberField<number>;
17
17
  id: import("@yume-chan/struct").NumberField<number>;
18
18
  }>>;
package/esm/latest.d.ts CHANGED
@@ -1,7 +1,9 @@
1
1
  import { ScrcpyOptions3_1 } from "./3_1/options.js";
2
- export declare class ScrcpyOptionsLatest extends ScrcpyOptions3_1 {
3
- constructor(init: ScrcpyOptions3_1.Init, version: string);
2
+ export declare class ScrcpyOptionsLatest<TVideo extends boolean> extends ScrcpyOptions3_1<TVideo> {
3
+ constructor(init: ScrcpyOptions3_1.Init<TVideo>);
4
+ }
5
+ export declare namespace ScrcpyOptionsLatest {
6
+ type Init<TVideo extends boolean = boolean> = ScrcpyOptions3_1.Init<TVideo>;
4
7
  }
5
- export { ScrcpyOptions3_1Impl as ScrcpyOptionsLatestImpl } from "./3_1/index.js";
6
8
  export { BackOrScreenOnControlMessage as ScrcpyBackOrScreenOnControlMessage, CaptureOrientation as ScrcpyCaptureOrientation, CodecOptions as ScrcpyCodecOptions, Crop as ScrcpyCrop, InjectScrollControlMessage as ScrcpyInjectScrollControlMessage, InjectTouchControlMessage as ScrcpyInjectTouchControlMessage, InstanceId as ScrcpyInstanceId, LockOrientation as ScrcpyLockOrientation, NewDisplay as ScrcpyNewDisplay, Orientation as ScrcpyOrientation, PointerId as ScrcpyPointerId, SetClipboardControlMessage as ScrcpySetClipboardControlMessage, UHidCreateControlMessage as ScrcpyUHidCreateControlMessage, UHidOutputDeviceMessage as ScrcpyUHidOutputDeviceMessage, } from "./3_1/impl/index.js";
7
9
  //# sourceMappingURL=latest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"latest.d.ts","sourceRoot":"","sources":["../src/latest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,qBAAa,mBAAoB,SAAQ,gBAAgB;gBACzC,IAAI,EAAE,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM;CAG3D;AAED,OAAO,EAAE,oBAAoB,IAAI,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEjF,OAAO,EACH,4BAA4B,IAAI,kCAAkC,EAClE,kBAAkB,IAAI,wBAAwB,EAC9C,YAAY,IAAI,kBAAkB,EAClC,IAAI,IAAI,UAAU,EAClB,0BAA0B,IAAI,gCAAgC,EAC9D,yBAAyB,IAAI,+BAA+B,EAC5D,UAAU,IAAI,gBAAgB,EAC9B,eAAe,IAAI,qBAAqB,EACxC,UAAU,IAAI,gBAAgB,EAC9B,WAAW,IAAI,iBAAiB,EAChC,SAAS,IAAI,eAAe,EAC5B,0BAA0B,IAAI,gCAAgC,EAC9D,wBAAwB,IAAI,8BAA8B,EAC1D,uBAAuB,IAAI,6BAA6B,GAC3D,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"latest.d.ts","sourceRoot":"","sources":["../src/latest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,qBAAa,mBAAmB,CAC5B,MAAM,SAAS,OAAO,CACxB,SAAQ,gBAAgB,CAAC,MAAM,CAAC;gBAClB,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;CAGlD;AAED,yBAAiB,mBAAmB,CAAC;IACjC,KAAY,IAAI,CAAC,MAAM,SAAS,OAAO,GAAG,OAAO,IAC7C,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;CACrC;AAED,OAAO,EACH,4BAA4B,IAAI,kCAAkC,EAClE,kBAAkB,IAAI,wBAAwB,EAC9C,YAAY,IAAI,kBAAkB,EAClC,IAAI,IAAI,UAAU,EAClB,0BAA0B,IAAI,gCAAgC,EAC9D,yBAAyB,IAAI,+BAA+B,EAC5D,UAAU,IAAI,gBAAgB,EAC9B,eAAe,IAAI,qBAAqB,EACxC,UAAU,IAAI,gBAAgB,EAC9B,WAAW,IAAI,iBAAiB,EAChC,SAAS,IAAI,eAAe,EAC5B,0BAA0B,IAAI,gCAAgC,EAC9D,wBAAwB,IAAI,8BAA8B,EAC1D,uBAAuB,IAAI,6BAA6B,GAC3D,MAAM,qBAAqB,CAAC"}
package/esm/latest.js CHANGED
@@ -1,9 +1,8 @@
1
1
  import { ScrcpyOptions3_1 } from "./3_1/options.js";
2
2
  export class ScrcpyOptionsLatest extends ScrcpyOptions3_1 {
3
- constructor(init, version) {
4
- super(init, version);
3
+ constructor(init) {
4
+ super(init);
5
5
  }
6
6
  }
7
- export { ScrcpyOptions3_1Impl as ScrcpyOptionsLatestImpl } from "./3_1/index.js";
8
7
  export { BackOrScreenOnControlMessage as ScrcpyBackOrScreenOnControlMessage, CaptureOrientation as ScrcpyCaptureOrientation, CodecOptions as ScrcpyCodecOptions, Crop as ScrcpyCrop, InjectScrollControlMessage as ScrcpyInjectScrollControlMessage, InjectTouchControlMessage as ScrcpyInjectTouchControlMessage, InstanceId as ScrcpyInstanceId, LockOrientation as ScrcpyLockOrientation, NewDisplay as ScrcpyNewDisplay, Orientation as ScrcpyOrientation, PointerId as ScrcpyPointerId, SetClipboardControlMessage as ScrcpySetClipboardControlMessage, UHidCreateControlMessage as ScrcpyUHidCreateControlMessage, UHidOutputDeviceMessage as ScrcpyUHidOutputDeviceMessage, } from "./3_1/impl/index.js";
9
8
  //# sourceMappingURL=latest.js.map
package/esm/latest.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"latest.js","sourceRoot":"","sources":["../src/latest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,OAAO,mBAAoB,SAAQ,gBAAgB;IACrD,YAAY,IAA2B,EAAE,OAAe;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzB,CAAC;CACJ;AAED,OAAO,EAAE,oBAAoB,IAAI,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEjF,OAAO,EACH,4BAA4B,IAAI,kCAAkC,EAClE,kBAAkB,IAAI,wBAAwB,EAC9C,YAAY,IAAI,kBAAkB,EAClC,IAAI,IAAI,UAAU,EAClB,0BAA0B,IAAI,gCAAgC,EAC9D,yBAAyB,IAAI,+BAA+B,EAC5D,UAAU,IAAI,gBAAgB,EAC9B,eAAe,IAAI,qBAAqB,EACxC,UAAU,IAAI,gBAAgB,EAC9B,WAAW,IAAI,iBAAiB,EAChC,SAAS,IAAI,eAAe,EAC5B,0BAA0B,IAAI,gCAAgC,EAC9D,wBAAwB,IAAI,8BAA8B,EAC1D,uBAAuB,IAAI,6BAA6B,GAC3D,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"latest.js","sourceRoot":"","sources":["../src/latest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,OAAO,mBAEX,SAAQ,gBAAwB;IAC9B,YAAY,IAAmC;QAC3C,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;CACJ;AAOD,OAAO,EACH,4BAA4B,IAAI,kCAAkC,EAClE,kBAAkB,IAAI,wBAAwB,EAC9C,YAAY,IAAI,kBAAkB,EAClC,IAAI,IAAI,UAAU,EAClB,0BAA0B,IAAI,gCAAgC,EAC9D,yBAAyB,IAAI,+BAA+B,EAC5D,UAAU,IAAI,gBAAgB,EAC9B,eAAe,IAAI,qBAAqB,EACxC,UAAU,IAAI,gBAAgB,EAC9B,WAAW,IAAI,iBAAiB,EAChC,SAAS,IAAI,eAAe,EAC5B,0BAA0B,IAAI,gCAAgC,EAC9D,wBAAwB,IAAI,8BAA8B,EAC1D,uBAAuB,IAAI,6BAA6B,GAC3D,MAAM,qBAAqB,CAAC"}
@@ -1,5 +1,4 @@
1
1
  export * from "./clamp.js";
2
2
  export * from "./constants.js";
3
3
  export * from "./omit.js";
4
- export * from "./wrapper.js";
5
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC"}
@@ -1,5 +1,4 @@
1
1
  export * from "./clamp.js";
2
2
  export * from "./constants.js";
3
3
  export * from "./omit.js";
4
- export * from "./wrapper.js";
5
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yume-chan/scrcpy",
3
- "version": "1.1.0",
3
+ "version": "2.0.1",
4
4
  "description": "TypeScript implementation of Scrcpy client.",
5
5
  "keywords": [
6
6
  "adb",
@@ -28,17 +28,17 @@
28
28
  "sideEffects": false,
29
29
  "dependencies": {
30
30
  "@yume-chan/async": "^4.0.2",
31
- "@yume-chan/no-data-view": "^1.0.0",
32
- "@yume-chan/struct": "^1.0.0",
33
- "@yume-chan/stream-extra": "^1.0.0"
31
+ "@yume-chan/stream-extra": "^2.0.1",
32
+ "@yume-chan/no-data-view": "^2.0.0",
33
+ "@yume-chan/struct": "^2.0.1"
34
34
  },
35
35
  "devDependencies": {
36
- "@types/node": "^22.10.2",
37
- "prettier": "^3.4.2",
38
- "typescript": "^5.7.2",
39
- "@yume-chan/test-runner": "^1.0.0",
36
+ "@types/node": "^22.13.10",
37
+ "prettier": "^3.5.3",
38
+ "typescript": "^5.8.2",
40
39
  "@yume-chan/eslint-config": "^1.0.0",
41
- "@yume-chan/tsconfig": "^1.0.0"
40
+ "@yume-chan/tsconfig": "^1.0.0",
41
+ "@yume-chan/test-runner": "^1.0.0"
42
42
  },
43
43
  "scripts": {
44
44
  "build": "tsc -b tsconfig.build.json",
@@ -1,26 +1,27 @@
1
1
  import { getUint16, setUint16 } from "@yume-chan/no-data-view";
2
2
  import type { Field, StructInit } from "@yume-chan/struct";
3
- import { bipedal, struct, u16, u32, u64, u8 } from "@yume-chan/struct";
3
+ import { field, struct, u16, u32, u64, u8 } from "@yume-chan/struct";
4
4
 
5
5
  import type { AndroidMotionEventAction } from "../../android/index.js";
6
6
  import type { ScrcpyInjectTouchControlMessage } from "../../latest.js";
7
7
  import { clamp } from "../../utils/index.js";
8
8
 
9
- export const UnsignedFloat: Field<number, never, never> = {
10
- size: 2,
11
- serialize(value, { buffer, index, littleEndian }) {
9
+ export const UnsignedFloat: Field<number, never, never> = field(
10
+ 2,
11
+ "byob",
12
+ (source, { buffer, index, littleEndian }) => {
12
13
  // https://github.com/Genymobile/scrcpy/blob/1f138aef41de651668043b32c4effc2d4adbfc44/app/src/util/binary.h#L51
13
- value = clamp(value, -1, 1);
14
- value = value === 1 ? 0xffff : value * 0x10000;
15
- setUint16(buffer, index, value, littleEndian);
14
+ source = clamp(source, -1, 1);
15
+ source = source === 1 ? 0xffff : source * 0x10000;
16
+ setUint16(buffer, index, source, littleEndian);
16
17
  },
17
- deserialize: bipedal(function* (then, { reader, littleEndian }) {
18
+ function* (then, reader, { littleEndian }) {
18
19
  const data = yield* then(reader.readExactly(2));
19
20
  const value = getUint16(data, 0, littleEndian);
20
21
  // https://github.com/Genymobile/scrcpy/blob/1f138aef41de651668043b32c4effc2d4adbfc44/server/src/main/java/com/genymobile/scrcpy/Binary.java#L22
21
22
  return value === 0xffff ? 1 : value / 0x10000;
22
- }),
23
- };
23
+ },
24
+ );
24
25
 
25
26
  export const PointerId = {
26
27
  Mouse: -1n,
@@ -36,8 +37,8 @@ export const InjectTouchControlMessage = struct(
36
37
  pointerId: u64,
37
38
  pointerX: u32,
38
39
  pointerY: u32,
39
- screenWidth: u16,
40
- screenHeight: u16,
40
+ videoWidth: u16,
41
+ videoHeight: u16,
41
42
  pressure: UnsignedFloat,
42
43
  buttons: u32,
43
44
  },
@@ -9,8 +9,8 @@ export const InjectScrollControlMessage = struct(
9
9
  type: u8,
10
10
  pointerX: u32,
11
11
  pointerY: u32,
12
- screenWidth: u16,
13
- screenHeight: u16,
12
+ videoWidth: u16,
13
+ videoHeight: u16,
14
14
  scrollX: s32,
15
15
  scrollY: s32,
16
16
  },
package/src/1_15/index.ts CHANGED
@@ -1,2 +1 @@
1
- export * as ScrcpyOptions1_15Impl from "./impl/index.js";
2
1
  export * from "./options.js";
@@ -1,6 +1,6 @@
1
1
  import type { MaybePromiseLike } from "@yume-chan/async";
2
2
  import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
3
- import type { AsyncExactReadable } from "@yume-chan/struct";
3
+ import type { AsyncExactReadable, ExactReadable } from "@yume-chan/struct";
4
4
 
5
5
  import type {
6
6
  ScrcpyControlMessageType,
@@ -36,8 +36,6 @@ import {
36
36
  export class ScrcpyOptions1_15 implements ScrcpyOptions<Init> {
37
37
  static readonly Defaults = Defaults;
38
38
 
39
- readonly version: string;
40
-
41
39
  readonly value: Required<Init>;
42
40
 
43
41
  get controlMessageTypes(): readonly ScrcpyControlMessageType[] {
@@ -49,9 +47,8 @@ export class ScrcpyOptions1_15 implements ScrcpyOptions<Init> {
49
47
  return this.#clipboard;
50
48
  }
51
49
 
52
- constructor(init: Init, version = "1.15") {
50
+ constructor(init: Init) {
53
51
  this.value = { ...Defaults, ...init };
54
- this.version = version;
55
52
 
56
53
  if (this.value.control) {
57
54
  this.#clipboard = new ClipboardStream();
@@ -78,7 +75,7 @@ export class ScrcpyOptions1_15 implements ScrcpyOptions<Init> {
78
75
 
79
76
  async parseDeviceMessage(
80
77
  id: number,
81
- stream: AsyncExactReadable,
78
+ stream: ExactReadable | AsyncExactReadable,
82
79
  ): Promise<void> {
83
80
  if (await this.#clipboard!.parse(id, stream)) {
84
81
  return;
package/src/1_15_1.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  import { ScrcpyOptions1_15 } from "./1_15/index.js";
2
2
 
3
3
  export class ScrcpyOptions1_15_1 extends ScrcpyOptions1_15 {
4
- constructor(init: ScrcpyOptions1_15.Init, version = "1.15.1") {
5
- super(init, version);
4
+ constructor(init: ScrcpyOptions1_15.Init) {
5
+ super(init);
6
6
  }
7
7
  }
8
8
 
9
- export { ScrcpyOptions1_15Impl as ScrcpyOptions1_15_1Impl } from "./1_15/index.js";
9
+ export namespace ScrcpyOptions1_15_1 {
10
+ export type Init = ScrcpyOptions1_15.Init;
11
+ }
package/src/1_16.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  import { ScrcpyOptions1_15 } from "./1_15/index.js";
2
2
 
3
3
  export class ScrcpyOptions1_16 extends ScrcpyOptions1_15 {
4
- constructor(init: ScrcpyOptions1_15.Init, version = "1.16") {
5
- super(init, version);
4
+ constructor(init: ScrcpyOptions1_15.Init) {
5
+ super(init);
6
6
  }
7
7
  }
8
8
 
9
- export { ScrcpyOptions1_15Impl as ScrcpyOptions1_16Impl } from "./1_15/index.js";
9
+ export namespace ScrcpyOptions1_16 {
10
+ export type Init = ScrcpyOptions1_15.Init;
11
+ }
package/src/1_17/index.ts CHANGED
@@ -1,2 +1 @@
1
- export * as ScrcpyOptions1_17Impl from "./impl/index.js";
2
1
  export * from "./options.js";
@@ -1,6 +1,6 @@
1
1
  import type { MaybePromiseLike } from "@yume-chan/async";
2
2
  import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
3
- import type { AsyncExactReadable } from "@yume-chan/struct";
3
+ import type { AsyncExactReadable, ExactReadable } from "@yume-chan/struct";
4
4
 
5
5
  import type {
6
6
  ScrcpyControlMessageType,
@@ -8,6 +8,7 @@ import type {
8
8
  ScrcpyEncoder,
9
9
  ScrcpyMediaStreamPacket,
10
10
  ScrcpyOptions,
11
+ ScrcpyOptionsListEncoders,
11
12
  ScrcpyScrollController,
12
13
  ScrcpyVideoStream,
13
14
  } from "../base/index.js";
@@ -37,11 +38,11 @@ import {
37
38
  setListEncoders,
38
39
  } from "./impl/index.js";
39
40
 
40
- export class ScrcpyOptions1_17 implements ScrcpyOptions<Init> {
41
+ export class ScrcpyOptions1_17
42
+ implements ScrcpyOptions<Init>, ScrcpyOptionsListEncoders
43
+ {
41
44
  static readonly Defaults = Defaults;
42
45
 
43
- readonly version: string;
44
-
45
46
  readonly value: Required<Init>;
46
47
 
47
48
  get controlMessageTypes(): readonly ScrcpyControlMessageType[] {
@@ -53,9 +54,8 @@ export class ScrcpyOptions1_17 implements ScrcpyOptions<Init> {
53
54
  return this.#clipboard;
54
55
  }
55
56
 
56
- constructor(init: Init, version = "1.17") {
57
+ constructor(init: Init) {
57
58
  this.value = { ...Defaults, ...init };
58
- this.version = version;
59
59
 
60
60
  if (this.value.control) {
61
61
  this.#clipboard = new ClipboardStream();
@@ -90,7 +90,7 @@ export class ScrcpyOptions1_17 implements ScrcpyOptions<Init> {
90
90
 
91
91
  async parseDeviceMessage(
92
92
  id: number,
93
- stream: AsyncExactReadable,
93
+ stream: ExactReadable | AsyncExactReadable,
94
94
  ): Promise<void> {
95
95
  if (await this.#clipboard!.parse(id, stream)) {
96
96
  return;
@@ -1,19 +1,15 @@
1
1
  import type { StructInit } from "@yume-chan/struct";
2
- import { struct, u8 } from "@yume-chan/struct";
2
+ import { extend, u8 } from "@yume-chan/struct";
3
3
 
4
4
  import type { AndroidKeyEventAction } from "../../android/index.js";
5
5
  import type { ScrcpyBackOrScreenOnControlMessage } from "../../latest.js";
6
6
 
7
7
  import { PrevImpl } from "./prev.js";
8
8
 
9
- export const BackOrScreenOnControlMessage = /* #__PURE__ */ (() =>
10
- struct(
11
- {
12
- ...PrevImpl.BackOrScreenOnControlMessage.fields,
13
- action: u8<AndroidKeyEventAction>(),
14
- },
15
- { littleEndian: false },
16
- ))();
9
+ export const BackOrScreenOnControlMessage = extend(
10
+ PrevImpl.BackOrScreenOnControlMessage,
11
+ { action: u8<AndroidKeyEventAction>() },
12
+ );
17
13
 
18
14
  export type BackOrScreenOnControlMessage = StructInit<
19
15
  typeof BackOrScreenOnControlMessage
package/src/1_18/index.ts CHANGED
@@ -1,2 +1 @@
1
- export * as ScrcpyOptions1_18Impl from "./impl/index.js";
2
1
  export * from "./options.js";
@@ -1,6 +1,6 @@
1
1
  import type { MaybePromiseLike } from "@yume-chan/async";
2
2
  import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
3
- import type { AsyncExactReadable } from "@yume-chan/struct";
3
+ import type { AsyncExactReadable, ExactReadable } from "@yume-chan/struct";
4
4
 
5
5
  import type {
6
6
  ScrcpyControlMessageType,
@@ -8,6 +8,7 @@ import type {
8
8
  ScrcpyEncoder,
9
9
  ScrcpyMediaStreamPacket,
10
10
  ScrcpyOptions,
11
+ ScrcpyOptionsListEncoders,
11
12
  ScrcpyScrollController,
12
13
  ScrcpyVideoStream,
13
14
  } from "../base/index.js";
@@ -37,11 +38,11 @@ import {
37
38
  setListEncoders,
38
39
  } from "./impl/index.js";
39
40
 
40
- export class ScrcpyOptions1_18 implements ScrcpyOptions<Init> {
41
+ export class ScrcpyOptions1_18
42
+ implements ScrcpyOptions<Init>, ScrcpyOptionsListEncoders
43
+ {
41
44
  static readonly Defaults = Defaults;
42
45
 
43
- readonly version: string;
44
-
45
46
  readonly value: Required<Init>;
46
47
 
47
48
  get controlMessageTypes(): readonly ScrcpyControlMessageType[] {
@@ -53,9 +54,8 @@ export class ScrcpyOptions1_18 implements ScrcpyOptions<Init> {
53
54
  return this.#clipboard;
54
55
  }
55
56
 
56
- constructor(init: Init, version = "1.18") {
57
+ constructor(init: Init) {
57
58
  this.value = { ...Defaults, ...init };
58
- this.version = version;
59
59
 
60
60
  if (this.value.control) {
61
61
  this.#clipboard = new ClipboardStream();
@@ -90,7 +90,7 @@ export class ScrcpyOptions1_18 implements ScrcpyOptions<Init> {
90
90
 
91
91
  async parseDeviceMessage(
92
92
  id: number,
93
- stream: AsyncExactReadable,
93
+ stream: ExactReadable | AsyncExactReadable,
94
94
  ): Promise<void> {
95
95
  if (await this.#clipboard!.parse(id, stream)) {
96
96
  return;
package/src/1_19.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  import { ScrcpyOptions1_18 } from "./1_18/index.js";
2
2
 
3
3
  export class ScrcpyOptions1_19 extends ScrcpyOptions1_18 {
4
- constructor(init: ScrcpyOptions1_18.Init, version = "1.19") {
5
- super(init, version);
4
+ constructor(init: ScrcpyOptions1_18.Init) {
5
+ super(init);
6
6
  }
7
7
  }
8
8
 
9
- export { ScrcpyOptions1_18Impl as ScrcpyOptions1_19Impl } from "./1_18/index.js";
9
+ export namespace ScrcpyOptions1_19 {
10
+ export type Init = ScrcpyOptions1_18.Init;
11
+ }
package/src/1_20.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  import { ScrcpyOptions1_18 } from "./1_18/index.js";
2
2
 
3
3
  export class ScrcpyOptions1_20 extends ScrcpyOptions1_18 {
4
- constructor(init: ScrcpyOptions1_18.Init, version = "1.20") {
5
- super(init, version);
4
+ constructor(init: ScrcpyOptions1_18.Init) {
5
+ super(init);
6
6
  }
7
7
  }
8
8
 
9
- export { ScrcpyOptions1_18Impl as ScrcpyOptions1_20Impl } from "./1_18/index.js";
9
+ export namespace ScrcpyOptions1_20 {
10
+ export type Init = ScrcpyOptions1_18.Init;
11
+ }
package/src/1_21/index.ts CHANGED
@@ -1,2 +1 @@
1
- export * as ScrcpyOptions1_21Impl from "./impl/index.js";
2
1
  export * from "./options.js";
@@ -1,6 +1,6 @@
1
1
  import type { MaybePromiseLike } from "@yume-chan/async";
2
2
  import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
3
- import type { AsyncExactReadable } from "@yume-chan/struct";
3
+ import type { AsyncExactReadable, ExactReadable } from "@yume-chan/struct";
4
4
 
5
5
  import type {
6
6
  ScrcpyControlMessageType,
@@ -8,6 +8,7 @@ import type {
8
8
  ScrcpyEncoder,
9
9
  ScrcpyMediaStreamPacket,
10
10
  ScrcpyOptions,
11
+ ScrcpyOptionsListEncoders,
11
12
  ScrcpyScrollController,
12
13
  ScrcpyVideoStream,
13
14
  } from "../base/index.js";
@@ -36,11 +37,11 @@ import {
36
37
  setListEncoders,
37
38
  } from "./impl/index.js";
38
39
 
39
- export class ScrcpyOptions1_21 implements ScrcpyOptions<Init> {
40
+ export class ScrcpyOptions1_21
41
+ implements ScrcpyOptions<Init>, ScrcpyOptionsListEncoders
42
+ {
40
43
  static readonly Defaults = Defaults;
41
44
 
42
- readonly version: string;
43
-
44
45
  readonly value: Required<Init>;
45
46
 
46
47
  get controlMessageTypes(): readonly ScrcpyControlMessageType[] {
@@ -54,9 +55,8 @@ export class ScrcpyOptions1_21 implements ScrcpyOptions<Init> {
54
55
 
55
56
  #ackClipboardHandler: AckClipboardHandler | undefined;
56
57
 
57
- constructor(init: Init, version = "1.21") {
58
+ constructor(init: Init) {
58
59
  this.value = { ...Defaults, ...init };
59
- this.version = version;
60
60
 
61
61
  if (this.value.control && this.value.clipboardAutosync) {
62
62
  this.#clipboard = new ClipboardStream();
@@ -92,7 +92,7 @@ export class ScrcpyOptions1_21 implements ScrcpyOptions<Init> {
92
92
 
93
93
  async parseDeviceMessage(
94
94
  id: number,
95
- stream: AsyncExactReadable,
95
+ stream: ExactReadable | AsyncExactReadable,
96
96
  ): Promise<void> {
97
97
  if (await this.#clipboard?.parse(id, stream)) {
98
98
  return;
@@ -1,19 +1,15 @@
1
1
  import type { StructInit } from "@yume-chan/struct";
2
- import { s32, struct } from "@yume-chan/struct";
2
+ import { extend, s32 } from "@yume-chan/struct";
3
3
 
4
4
  import type { ScrcpyScrollController } from "../../base/index.js";
5
5
  import type { ScrcpyInjectScrollControlMessage } from "../../latest.js";
6
6
 
7
7
  import { PrevImpl } from "./prev.js";
8
8
 
9
- export const InjectScrollControlMessage = /* #__PURE__ */ (() =>
10
- struct(
11
- {
12
- ...PrevImpl.InjectScrollControlMessage.fields,
13
- buttons: s32,
14
- },
15
- { littleEndian: false },
16
- ))();
9
+ export const InjectScrollControlMessage = extend(
10
+ PrevImpl.InjectScrollControlMessage,
11
+ { buttons: s32 },
12
+ );
17
13
 
18
14
  export type InjectScrollControlMessage = StructInit<
19
15
  typeof InjectScrollControlMessage
package/src/1_22/index.ts CHANGED
@@ -1,2 +1 @@
1
- export * as ScrcpyOptions1_22Impl from "./impl/index.js";
2
1
  export * from "./options.js";
@@ -1,6 +1,6 @@
1
1
  import type { MaybePromiseLike } from "@yume-chan/async";
2
2
  import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
3
- import type { AsyncExactReadable } from "@yume-chan/struct";
3
+ import type { AsyncExactReadable, ExactReadable } from "@yume-chan/struct";
4
4
 
5
5
  import type {
6
6
  ScrcpyControlMessageType,
@@ -8,6 +8,7 @@ import type {
8
8
  ScrcpyEncoder,
9
9
  ScrcpyMediaStreamPacket,
10
10
  ScrcpyOptions,
11
+ ScrcpyOptionsListEncoders,
11
12
  ScrcpyScrollController,
12
13
  ScrcpyVideoStream,
13
14
  } from "../base/index.js";
@@ -36,11 +37,11 @@ import {
36
37
  setListEncoders,
37
38
  } from "./impl/index.js";
38
39
 
39
- export class ScrcpyOptions1_22 implements ScrcpyOptions<Init> {
40
+ export class ScrcpyOptions1_22
41
+ implements ScrcpyOptions<Init>, ScrcpyOptionsListEncoders
42
+ {
40
43
  static readonly Defaults = Defaults;
41
44
 
42
- readonly version: string;
43
-
44
45
  readonly value: Required<Init>;
45
46
 
46
47
  get controlMessageTypes(): readonly ScrcpyControlMessageType[] {
@@ -54,9 +55,8 @@ export class ScrcpyOptions1_22 implements ScrcpyOptions<Init> {
54
55
 
55
56
  #ackClipboardHandler: AckClipboardHandler | undefined;
56
57
 
57
- constructor(init: Init, version = "1.22") {
58
+ constructor(init: Init) {
58
59
  this.value = { ...Defaults, ...init };
59
- this.version = version;
60
60
 
61
61
  if (this.value.control && this.value.clipboardAutosync) {
62
62
  this.#clipboard = new ClipboardStream();
@@ -92,7 +92,7 @@ export class ScrcpyOptions1_22 implements ScrcpyOptions<Init> {
92
92
 
93
93
  async parseDeviceMessage(
94
94
  id: number,
95
- stream: AsyncExactReadable,
95
+ stream: ExactReadable | AsyncExactReadable,
96
96
  ): Promise<void> {
97
97
  if (await this.#clipboard?.parse(id, stream)) {
98
98
  return;
package/src/1_23/index.ts CHANGED
@@ -1,2 +1 @@
1
- export * as ScrcpyOptions1_23Impl from "./impl/index.js";
2
1
  export * from "./options.js";
@@ -1,6 +1,6 @@
1
1
  import type { MaybePromiseLike } from "@yume-chan/async";
2
2
  import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
3
- import type { AsyncExactReadable } from "@yume-chan/struct";
3
+ import type { AsyncExactReadable, ExactReadable } from "@yume-chan/struct";
4
4
 
5
5
  import type {
6
6
  ScrcpyControlMessageType,
@@ -8,6 +8,7 @@ import type {
8
8
  ScrcpyEncoder,
9
9
  ScrcpyMediaStreamPacket,
10
10
  ScrcpyOptions,
11
+ ScrcpyOptionsListEncoders,
11
12
  ScrcpyScrollController,
12
13
  ScrcpyVideoStream,
13
14
  } from "../base/index.js";
@@ -36,11 +37,11 @@ import {
36
37
  setListEncoders,
37
38
  } from "./impl/index.js";
38
39
 
39
- export class ScrcpyOptions1_23 implements ScrcpyOptions<Init> {
40
+ export class ScrcpyOptions1_23
41
+ implements ScrcpyOptions<Init>, ScrcpyOptionsListEncoders
42
+ {
40
43
  static readonly Defaults = Defaults;
41
44
 
42
- readonly version: string;
43
-
44
45
  readonly value: Required<Init>;
45
46
 
46
47
  get controlMessageTypes(): readonly ScrcpyControlMessageType[] {
@@ -54,9 +55,8 @@ export class ScrcpyOptions1_23 implements ScrcpyOptions<Init> {
54
55
 
55
56
  #ackClipboardHandler: AckClipboardHandler | undefined;
56
57
 
57
- constructor(init: Init, version = "1.23") {
58
+ constructor(init: Init) {
58
59
  this.value = { ...Defaults, ...init };
59
- this.version = version;
60
60
 
61
61
  if (this.value.control && this.value.clipboardAutosync) {
62
62
  this.#clipboard = new ClipboardStream();
@@ -92,7 +92,7 @@ export class ScrcpyOptions1_23 implements ScrcpyOptions<Init> {
92
92
 
93
93
  async parseDeviceMessage(
94
94
  id: number,
95
- stream: AsyncExactReadable,
95
+ stream: ExactReadable | AsyncExactReadable,
96
96
  ): Promise<void> {
97
97
  if (await this.#clipboard?.parse(id, stream)) {
98
98
  return;
package/src/1_24/index.ts CHANGED
@@ -1,2 +1 @@
1
- export * as ScrcpyOptions1_24Impl from "./impl/index.js";
2
1
  export * from "./options.js";