@yume-chan/scrcpy 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/CHANGELOG.md +32 -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/defaults.d.ts +1 -2
  6. package/esm/1_15/impl/defaults.d.ts.map +1 -1
  7. package/esm/1_15/impl/defaults.js +2 -2
  8. package/esm/1_15/impl/defaults.js.map +1 -1
  9. package/esm/1_15/impl/init.d.ts +10 -2
  10. package/esm/1_15/impl/init.d.ts.map +1 -1
  11. package/esm/1_15/impl/init.js +15 -0
  12. package/esm/1_15/impl/init.js.map +1 -1
  13. package/esm/1_15/impl/inject-touch.d.ts +9 -9
  14. package/esm/1_15/impl/inject-touch.d.ts.map +1 -1
  15. package/esm/1_15/impl/inject-touch.js +14 -18
  16. package/esm/1_15/impl/inject-touch.js.map +1 -1
  17. package/esm/1_15/impl/media-stream-transformer.d.ts +3 -3
  18. package/esm/1_15/impl/scroll-controller.d.ts +5 -5
  19. package/esm/1_15/impl/scroll-controller.js +2 -2
  20. package/esm/1_15/impl/scroll-controller.js.map +1 -1
  21. package/esm/1_15/impl/set-clipboard.d.ts +3 -3
  22. package/esm/1_15/index.d.ts +0 -1
  23. package/esm/1_15/index.d.ts.map +1 -1
  24. package/esm/1_15/index.js +0 -1
  25. package/esm/1_15/index.js.map +1 -1
  26. package/esm/1_15/options.d.ts +3 -3
  27. package/esm/1_15/options.d.ts.map +1 -1
  28. package/esm/1_15/options.js.map +1 -1
  29. package/esm/1_15_1.d.ts +8 -0
  30. package/esm/1_15_1.d.ts.map +1 -0
  31. package/esm/1_15_1.js +7 -0
  32. package/esm/1_15_1.js.map +1 -0
  33. package/esm/1_16.d.ts +7 -1
  34. package/esm/1_16.d.ts.map +1 -1
  35. package/esm/1_16.js +6 -1
  36. package/esm/1_16.js.map +1 -1
  37. package/esm/1_17/impl/defaults.d.ts +1 -2
  38. package/esm/1_17/impl/defaults.d.ts.map +1 -1
  39. package/esm/1_17/index.d.ts +0 -1
  40. package/esm/1_17/index.d.ts.map +1 -1
  41. package/esm/1_17/index.js +0 -1
  42. package/esm/1_17/index.js.map +1 -1
  43. package/esm/1_17/options.d.ts +5 -5
  44. package/esm/1_17/options.d.ts.map +1 -1
  45. package/esm/1_17/options.js.map +1 -1
  46. package/esm/1_18/impl/back-or-screen-on.d.ts +5 -3
  47. package/esm/1_18/impl/back-or-screen-on.d.ts.map +1 -1
  48. package/esm/1_18/impl/back-or-screen-on.js +2 -5
  49. package/esm/1_18/impl/back-or-screen-on.js.map +1 -1
  50. package/esm/1_18/impl/defaults.d.ts +1 -2
  51. package/esm/1_18/impl/defaults.d.ts.map +1 -1
  52. package/esm/1_18/index.d.ts +0 -1
  53. package/esm/1_18/index.d.ts.map +1 -1
  54. package/esm/1_18/index.js +0 -1
  55. package/esm/1_18/index.js.map +1 -1
  56. package/esm/1_18/options.d.ts +5 -5
  57. package/esm/1_18/options.d.ts.map +1 -1
  58. package/esm/1_18/options.js.map +1 -1
  59. package/esm/1_19.d.ts +7 -1
  60. package/esm/1_19.d.ts.map +1 -1
  61. package/esm/1_19.js +6 -1
  62. package/esm/1_19.js.map +1 -1
  63. package/esm/1_20.d.ts +7 -1
  64. package/esm/1_20.d.ts.map +1 -1
  65. package/esm/1_20.js +6 -1
  66. package/esm/1_20.js.map +1 -1
  67. package/esm/1_21/impl/defaults.d.ts +1 -2
  68. package/esm/1_21/impl/defaults.d.ts.map +1 -1
  69. package/esm/1_21/impl/set-clipboard.d.ts +6 -6
  70. package/esm/1_21/index.d.ts +0 -1
  71. package/esm/1_21/index.d.ts.map +1 -1
  72. package/esm/1_21/index.js +0 -1
  73. package/esm/1_21/index.js.map +1 -1
  74. package/esm/1_21/options.d.ts +5 -5
  75. package/esm/1_21/options.d.ts.map +1 -1
  76. package/esm/1_21/options.js.map +1 -1
  77. package/esm/1_22/impl/defaults.d.ts +1 -2
  78. package/esm/1_22/impl/defaults.d.ts.map +1 -1
  79. package/esm/1_22/impl/index.d.ts +1 -1
  80. package/esm/1_22/impl/index.d.ts.map +1 -1
  81. package/esm/1_22/impl/index.js +1 -1
  82. package/esm/1_22/impl/index.js.map +1 -1
  83. package/esm/1_22/impl/scroll-controller.d.ts +10 -6
  84. package/esm/1_22/impl/scroll-controller.d.ts.map +1 -1
  85. package/esm/1_22/impl/scroll-controller.js +5 -5
  86. package/esm/1_22/impl/scroll-controller.js.map +1 -1
  87. package/esm/1_22/index.d.ts +0 -1
  88. package/esm/1_22/index.d.ts.map +1 -1
  89. package/esm/1_22/index.js +0 -1
  90. package/esm/1_22/index.js.map +1 -1
  91. package/esm/1_22/options.d.ts +5 -5
  92. package/esm/1_22/options.d.ts.map +1 -1
  93. package/esm/1_22/options.js.map +1 -1
  94. package/esm/1_23/impl/defaults.d.ts +1 -2
  95. package/esm/1_23/impl/defaults.d.ts.map +1 -1
  96. package/esm/1_23/index.d.ts +0 -1
  97. package/esm/1_23/index.d.ts.map +1 -1
  98. package/esm/1_23/index.js +0 -1
  99. package/esm/1_23/index.js.map +1 -1
  100. package/esm/1_23/options.d.ts +5 -5
  101. package/esm/1_23/options.d.ts.map +1 -1
  102. package/esm/1_23/options.js.map +1 -1
  103. package/esm/1_24/impl/defaults.d.ts +1 -2
  104. package/esm/1_24/impl/defaults.d.ts.map +1 -1
  105. package/esm/1_24/index.d.ts +0 -1
  106. package/esm/1_24/index.d.ts.map +1 -1
  107. package/esm/1_24/index.js +0 -1
  108. package/esm/1_24/index.js.map +1 -1
  109. package/esm/1_24/options.d.ts +5 -5
  110. package/esm/1_24/options.d.ts.map +1 -1
  111. package/esm/1_24/options.js.map +1 -1
  112. package/esm/1_25/impl/index.d.ts +1 -1
  113. package/esm/1_25/impl/index.d.ts.map +1 -1
  114. package/esm/1_25/impl/index.js +1 -1
  115. package/esm/1_25/impl/index.js.map +1 -1
  116. package/esm/1_25/impl/scroll-controller.d.ts +12 -11
  117. package/esm/1_25/impl/scroll-controller.d.ts.map +1 -1
  118. package/esm/1_25/impl/scroll-controller.js +17 -18
  119. package/esm/1_25/impl/scroll-controller.js.map +1 -1
  120. package/esm/1_25/index.d.ts +0 -1
  121. package/esm/1_25/index.d.ts.map +1 -1
  122. package/esm/1_25/index.js +0 -1
  123. package/esm/1_25/index.js.map +1 -1
  124. package/esm/1_25/options.d.ts +5 -5
  125. package/esm/1_25/options.d.ts.map +1 -1
  126. package/esm/1_25/options.js.map +1 -1
  127. package/esm/2_0/impl/defaults.d.ts +4 -6
  128. package/esm/2_0/impl/defaults.d.ts.map +1 -1
  129. package/esm/2_0/impl/defaults.js +3 -4
  130. package/esm/2_0/impl/defaults.js.map +1 -1
  131. package/esm/2_0/impl/init.d.ts +3 -3
  132. package/esm/2_0/impl/init.d.ts.map +1 -1
  133. package/esm/2_0/impl/inject-touch.d.ts +11 -11
  134. package/esm/2_0/impl/inject-touch.js +2 -2
  135. package/esm/2_0/impl/inject-touch.js.map +1 -1
  136. package/esm/2_0/impl/parse-audio-stream-metadata.d.ts +1 -1
  137. package/esm/2_0/impl/parse-audio-stream-metadata.d.ts.map +1 -1
  138. package/esm/2_0/impl/parse-audio-stream-metadata.js.map +1 -1
  139. package/esm/2_0/index.d.ts +0 -1
  140. package/esm/2_0/index.d.ts.map +1 -1
  141. package/esm/2_0/index.js +0 -1
  142. package/esm/2_0/index.js.map +1 -1
  143. package/esm/2_0/options.d.ts +8 -8
  144. package/esm/2_0/options.d.ts.map +1 -1
  145. package/esm/2_0/options.js.map +1 -1
  146. package/esm/2_1/impl/defaults.d.ts +4 -5
  147. package/esm/2_1/impl/defaults.d.ts.map +1 -1
  148. package/esm/2_1/impl/defaults.js.map +1 -1
  149. package/esm/2_1/impl/init.d.ts +2 -2
  150. package/esm/2_1/impl/init.d.ts.map +1 -1
  151. package/esm/2_1/index.d.ts +0 -1
  152. package/esm/2_1/index.d.ts.map +1 -1
  153. package/esm/2_1/index.js +0 -1
  154. package/esm/2_1/index.js.map +1 -1
  155. package/esm/2_1/options.d.ts +12 -12
  156. package/esm/2_1/options.d.ts.map +1 -1
  157. package/esm/2_1/options.js.map +1 -1
  158. package/esm/2_1_1.d.ts +8 -0
  159. package/esm/2_1_1.d.ts.map +1 -0
  160. package/esm/2_1_1.js +7 -0
  161. package/esm/2_1_1.js.map +1 -0
  162. package/esm/2_2/impl/defaults.d.ts +4 -5
  163. package/esm/2_2/impl/defaults.d.ts.map +1 -1
  164. package/esm/2_2/impl/defaults.js.map +1 -1
  165. package/esm/2_2/impl/init.d.ts +1 -1
  166. package/esm/2_2/impl/init.d.ts.map +1 -1
  167. package/esm/2_2/index.d.ts +0 -1
  168. package/esm/2_2/index.d.ts.map +1 -1
  169. package/esm/2_2/index.js +0 -1
  170. package/esm/2_2/index.js.map +1 -1
  171. package/esm/2_2/options.d.ts +12 -12
  172. package/esm/2_2/options.d.ts.map +1 -1
  173. package/esm/2_2/options.js.map +1 -1
  174. package/esm/2_3/impl/init.d.ts +2 -2
  175. package/esm/2_3/impl/init.d.ts.map +1 -1
  176. package/esm/2_3/index.d.ts +0 -1
  177. package/esm/2_3/index.d.ts.map +1 -1
  178. package/esm/2_3/index.js +0 -1
  179. package/esm/2_3/index.js.map +1 -1
  180. package/esm/2_3/options.d.ts +12 -12
  181. package/esm/2_3/options.d.ts.map +1 -1
  182. package/esm/2_3/options.js.map +1 -1
  183. package/esm/2_3_1.d.ts +8 -0
  184. package/esm/2_3_1.d.ts.map +1 -0
  185. package/esm/2_3_1.js +7 -0
  186. package/esm/2_3_1.js.map +1 -0
  187. package/esm/2_4/impl/serialize-uhid-create.d.ts +3 -3
  188. package/esm/2_4/impl/uhid-output-stream.d.ts +3 -3
  189. package/esm/2_4/index.d.ts +0 -1
  190. package/esm/2_4/index.d.ts.map +1 -1
  191. package/esm/2_4/index.js +0 -1
  192. package/esm/2_4/index.js.map +1 -1
  193. package/esm/2_4/options.d.ts +12 -12
  194. package/esm/2_4/options.d.ts.map +1 -1
  195. package/esm/2_4/options.js.map +1 -1
  196. package/esm/2_5.d.ts +7 -1
  197. package/esm/2_5.d.ts.map +1 -1
  198. package/esm/2_5.js +6 -1
  199. package/esm/2_5.js.map +1 -1
  200. package/esm/2_6/impl/defaults.d.ts +4 -5
  201. package/esm/2_6/impl/defaults.d.ts.map +1 -1
  202. package/esm/2_6/impl/defaults.js.map +1 -1
  203. package/esm/2_6/impl/init.d.ts +2 -2
  204. package/esm/2_6/impl/init.d.ts.map +1 -1
  205. package/esm/2_6/index.d.ts +0 -1
  206. package/esm/2_6/index.d.ts.map +1 -1
  207. package/esm/2_6/index.js +0 -1
  208. package/esm/2_6/index.js.map +1 -1
  209. package/esm/2_6/options.d.ts +12 -12
  210. package/esm/2_6/options.d.ts.map +1 -1
  211. package/esm/2_6/options.js.map +1 -1
  212. package/esm/2_6_1.d.ts +8 -0
  213. package/esm/2_6_1.d.ts.map +1 -0
  214. package/esm/2_6_1.js +7 -0
  215. package/esm/2_6_1.js.map +1 -0
  216. package/esm/2_7/impl/serialize-uhid-create.d.ts +7 -7
  217. package/esm/2_7/index.d.ts +0 -1
  218. package/esm/2_7/index.d.ts.map +1 -1
  219. package/esm/2_7/index.js +0 -1
  220. package/esm/2_7/index.js.map +1 -1
  221. package/esm/2_7/options.d.ts +12 -12
  222. package/esm/2_7/options.d.ts.map +1 -1
  223. package/esm/2_7/options.js.map +1 -1
  224. package/esm/3_0/impl/defaults.d.ts +5 -7
  225. package/esm/3_0/impl/defaults.d.ts.map +1 -1
  226. package/esm/3_0/impl/defaults.js +1 -2
  227. package/esm/3_0/impl/defaults.js.map +1 -1
  228. package/esm/3_0/impl/init.d.ts +3 -3
  229. package/esm/3_0/impl/init.d.ts.map +1 -1
  230. package/esm/3_0/index.d.ts +0 -1
  231. package/esm/3_0/index.d.ts.map +1 -1
  232. package/esm/3_0/index.js +0 -1
  233. package/esm/3_0/index.js.map +1 -1
  234. package/esm/3_0/options.d.ts +13 -13
  235. package/esm/3_0/options.d.ts.map +1 -1
  236. package/esm/3_0/options.js.map +1 -1
  237. package/esm/3_0_1.d.ts +8 -0
  238. package/esm/3_0_1.d.ts.map +1 -0
  239. package/esm/3_0_1.js +7 -0
  240. package/esm/3_0_1.js.map +1 -0
  241. package/esm/3_0_2.d.ts +8 -0
  242. package/esm/3_0_2.d.ts.map +1 -0
  243. package/esm/3_0_2.js +7 -0
  244. package/esm/3_0_2.js.map +1 -0
  245. package/esm/3_1/impl/defaults.d.ts +56 -0
  246. package/esm/3_1/impl/defaults.d.ts.map +1 -0
  247. package/esm/3_1/impl/defaults.js +6 -0
  248. package/esm/3_1/impl/defaults.js.map +1 -0
  249. package/esm/3_1/impl/index.d.ts +5 -0
  250. package/esm/3_1/impl/index.d.ts.map +1 -0
  251. package/esm/3_1/impl/index.js +4 -0
  252. package/esm/3_1/impl/index.js.map +1 -0
  253. package/esm/3_1/impl/init.d.ts +5 -0
  254. package/esm/3_1/impl/init.d.ts.map +1 -0
  255. package/esm/3_1/impl/init.js +2 -0
  256. package/esm/3_1/impl/init.js.map +1 -0
  257. package/esm/3_1/impl/prev.d.ts +2 -0
  258. package/esm/3_1/impl/prev.d.ts.map +1 -0
  259. package/esm/3_1/impl/prev.js +2 -0
  260. package/esm/3_1/impl/prev.js.map +1 -0
  261. package/esm/3_1/impl/serialize-uhid-create.d.ts +20 -0
  262. package/esm/3_1/impl/serialize-uhid-create.d.ts.map +1 -0
  263. package/esm/3_1/impl/serialize-uhid-create.js +14 -0
  264. package/esm/3_1/impl/serialize-uhid-create.js.map +1 -0
  265. package/esm/3_1/index.d.ts +2 -0
  266. package/esm/3_1/index.d.ts.map +1 -0
  267. package/esm/3_1/index.js +2 -0
  268. package/esm/3_1/index.js.map +1 -0
  269. package/esm/3_1/options.d.ts +90 -0
  270. package/esm/3_1/options.d.ts.map +1 -0
  271. package/esm/3_1/options.js +92 -0
  272. package/esm/3_1/options.js.map +1 -0
  273. package/esm/android/key-event.d.ts.map +1 -1
  274. package/esm/android/key-event.js +3 -2
  275. package/esm/android/key-event.js.map +1 -1
  276. package/esm/base/option-value.js +2 -2
  277. package/esm/base/option-value.js.map +1 -1
  278. package/esm/base/options.d.ts +6 -4
  279. package/esm/base/options.d.ts.map +1 -1
  280. package/esm/codec/h265.d.ts +23 -2
  281. package/esm/codec/h265.d.ts.map +1 -1
  282. package/esm/codec/h265.js +25 -3
  283. package/esm/codec/h265.js.map +1 -1
  284. package/esm/control/empty.d.ts +1 -1
  285. package/esm/control/inject-key-code.d.ts +9 -9
  286. package/esm/control/inject-text.d.ts +3 -3
  287. package/esm/control/set-screen-power-mode.d.ts +3 -3
  288. package/esm/control/start-app.d.ts +3 -3
  289. package/esm/control/uhid.d.ts +6 -6
  290. package/esm/index.d.ts +7 -0
  291. package/esm/index.d.ts.map +1 -1
  292. package/esm/index.js +7 -0
  293. package/esm/index.js.map +1 -1
  294. package/esm/latest.d.ts +8 -1
  295. package/esm/latest.d.ts.map +1 -1
  296. package/esm/latest.js +7 -1
  297. package/esm/latest.js.map +1 -1
  298. package/esm/utils/index.d.ts +0 -1
  299. package/esm/utils/index.d.ts.map +1 -1
  300. package/esm/utils/index.js +0 -1
  301. package/esm/utils/index.js.map +1 -1
  302. package/package.json +8 -8
  303. package/src/1_15/impl/defaults.ts +2 -2
  304. package/src/1_15/impl/init.ts +20 -2
  305. package/src/1_15/impl/inject-touch.ts +13 -12
  306. package/src/1_15/impl/scroll-controller.ts +2 -2
  307. package/src/1_15/index.ts +0 -1
  308. package/src/1_15/options.ts +2 -2
  309. package/src/1_15_1.ts +11 -0
  310. package/src/1_16.ts +11 -4
  311. package/src/1_17/index.ts +0 -1
  312. package/src/1_17/options.ts +6 -3
  313. package/src/1_18/impl/back-or-screen-on.ts +5 -9
  314. package/src/1_18/index.ts +0 -1
  315. package/src/1_18/options.ts +6 -3
  316. package/src/1_19.ts +11 -4
  317. package/src/1_20.ts +11 -4
  318. package/src/1_21/index.ts +0 -1
  319. package/src/1_21/options.ts +6 -3
  320. package/src/1_22/impl/index.ts +1 -0
  321. package/src/1_22/impl/scroll-controller.ts +10 -9
  322. package/src/1_22/index.ts +0 -1
  323. package/src/1_22/options.ts +6 -3
  324. package/src/1_23/index.ts +0 -1
  325. package/src/1_23/options.ts +6 -3
  326. package/src/1_24/index.ts +0 -1
  327. package/src/1_24/options.ts +6 -3
  328. package/src/1_25/impl/index.ts +1 -0
  329. package/src/1_25/impl/scroll-controller.ts +15 -10
  330. package/src/1_25/index.ts +0 -1
  331. package/src/1_25/options.ts +6 -3
  332. package/src/2_0/impl/defaults.ts +3 -4
  333. package/src/2_0/impl/init.ts +3 -3
  334. package/src/2_0/impl/inject-touch.ts +2 -2
  335. package/src/2_0/impl/parse-audio-stream-metadata.ts +1 -1
  336. package/src/2_0/index.ts +0 -1
  337. package/src/2_0/options.ts +6 -3
  338. package/src/2_1/impl/defaults.ts +1 -1
  339. package/src/2_1/impl/init.ts +2 -2
  340. package/src/2_1/index.ts +0 -1
  341. package/src/2_1/options.ts +12 -9
  342. package/src/2_1_1.ts +14 -0
  343. package/src/2_2/impl/defaults.ts +1 -1
  344. package/src/2_2/impl/init.ts +1 -1
  345. package/src/2_2/index.ts +0 -1
  346. package/src/2_2/options.ts +12 -9
  347. package/src/2_3/impl/init.ts +3 -2
  348. package/src/2_3/index.ts +0 -1
  349. package/src/2_3/options.ts +12 -9
  350. package/src/2_3_1.ts +14 -0
  351. package/src/2_4/index.ts +0 -1
  352. package/src/2_4/options.ts +12 -9
  353. package/src/2_5.ts +14 -4
  354. package/src/2_6/impl/defaults.ts +1 -1
  355. package/src/2_6/impl/init.ts +3 -2
  356. package/src/2_6/index.ts +0 -1
  357. package/src/2_6/options.ts +13 -10
  358. package/src/2_6_1.ts +14 -0
  359. package/src/2_7/index.ts +0 -1
  360. package/src/2_7/options.ts +12 -9
  361. package/src/3_0/impl/defaults.ts +2 -3
  362. package/src/3_0/impl/init.ts +4 -3
  363. package/src/3_0/index.ts +0 -1
  364. package/src/3_0/options.ts +12 -9
  365. package/src/3_0_1.ts +14 -0
  366. package/src/3_0_2.ts +14 -0
  367. package/src/3_1/impl/defaults.ts +8 -0
  368. package/src/3_1/impl/index.ts +7 -0
  369. package/src/3_1/impl/init.ts +5 -0
  370. package/src/3_1/impl/prev.ts +1 -0
  371. package/src/3_1/impl/serialize-uhid-create.ts +28 -0
  372. package/src/3_1/index.ts +1 -0
  373. package/src/3_1/options.ts +190 -0
  374. package/src/android/key-event.ts +3 -2
  375. package/src/base/option-value.ts +2 -2
  376. package/src/base/options.ts +11 -6
  377. package/src/codec/h265.ts +31 -5
  378. package/src/index.ts +7 -0
  379. package/src/latest.ts +17 -1
  380. package/src/utils/index.ts +0 -1
  381. package/tsconfig.build.tsbuildinfo +1 -1
  382. package/esm/utils/wrapper.d.ts +0 -37
  383. package/esm/utils/wrapper.d.ts.map +0 -1
  384. package/esm/utils/wrapper.js +0 -76
  385. package/esm/utils/wrapper.js.map +0 -1
  386. package/src/utils/wrapper.ts +0 -131
@@ -89,6 +89,24 @@ export namespace CodecOptions {
89
89
  export type Init = CodecOptionsInit;
90
90
  }
91
91
 
92
+ export class Crop implements ScrcpyOptionValue {
93
+ width: number;
94
+ height: number;
95
+ x: number;
96
+ y: number;
97
+
98
+ constructor(width: number, height: number, x: number, y: number) {
99
+ this.width = width;
100
+ this.height = height;
101
+ this.x = x;
102
+ this.y = y;
103
+ }
104
+
105
+ toOptionValue(): string | undefined {
106
+ return `${this.width}:${this.height}:${this.x}:${this.y}`;
107
+ }
108
+ }
109
+
92
110
  export interface Init {
93
111
  logLevel?: LogLevel;
94
112
 
@@ -124,7 +142,7 @@ export interface Init {
124
142
  */
125
143
  tunnelForward?: boolean;
126
144
 
127
- crop?: string | undefined;
145
+ crop?: Crop | string | undefined;
128
146
 
129
147
  /**
130
148
  * Send PTS so that the client may record properly
@@ -150,5 +168,5 @@ export interface Init {
150
168
 
151
169
  stayAwake?: boolean;
152
170
 
153
- codecOptions?: CodecOptions;
171
+ codecOptions?: CodecOptions | string | undefined;
154
172
  }
@@ -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,
@@ -75,7 +75,7 @@ export class ScrcpyOptions1_15 implements ScrcpyOptions<Init> {
75
75
 
76
76
  async parseDeviceMessage(
77
77
  id: number,
78
- stream: AsyncExactReadable,
78
+ stream: ExactReadable | AsyncExactReadable,
79
79
  ): Promise<void> {
80
80
  if (await this.#clipboard!.parse(id, stream)) {
81
81
  return;
package/src/1_15_1.ts ADDED
@@ -0,0 +1,11 @@
1
+ import { ScrcpyOptions1_15 } from "./1_15/index.js";
2
+
3
+ export class ScrcpyOptions1_15_1 extends ScrcpyOptions1_15 {
4
+ constructor(init: ScrcpyOptions1_15.Init) {
5
+ super(init);
6
+ }
7
+ }
8
+
9
+ export namespace ScrcpyOptions1_15_1 {
10
+ export type Init = ScrcpyOptions1_15.Init;
11
+ }
package/src/1_16.ts CHANGED
@@ -1,4 +1,11 @@
1
- export {
2
- ScrcpyOptions1_15 as ScrcpyOptions1_16,
3
- ScrcpyOptions1_15Impl as ScrcpyOptions1_16Impl,
4
- } from "./1_15/index.js";
1
+ import { ScrcpyOptions1_15 } from "./1_15/index.js";
2
+
3
+ export class ScrcpyOptions1_16 extends ScrcpyOptions1_15 {
4
+ constructor(init: ScrcpyOptions1_15.Init) {
5
+ super(init);
6
+ }
7
+ }
8
+
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,7 +38,9 @@ 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
46
  readonly value: Required<Init>;
@@ -87,7 +90,7 @@ export class ScrcpyOptions1_17 implements ScrcpyOptions<Init> {
87
90
 
88
91
  async parseDeviceMessage(
89
92
  id: number,
90
- stream: AsyncExactReadable,
93
+ stream: ExactReadable | AsyncExactReadable,
91
94
  ): Promise<void> {
92
95
  if (await this.#clipboard!.parse(id, stream)) {
93
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,7 +38,9 @@ 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
46
  readonly value: Required<Init>;
@@ -87,7 +90,7 @@ export class ScrcpyOptions1_18 implements ScrcpyOptions<Init> {
87
90
 
88
91
  async parseDeviceMessage(
89
92
  id: number,
90
- stream: AsyncExactReadable,
93
+ stream: ExactReadable | AsyncExactReadable,
91
94
  ): Promise<void> {
92
95
  if (await this.#clipboard!.parse(id, stream)) {
93
96
  return;
package/src/1_19.ts CHANGED
@@ -1,4 +1,11 @@
1
- export {
2
- ScrcpyOptions1_18 as ScrcpyOptions1_19,
3
- ScrcpyOptions1_18Impl as ScrcpyOptions1_19Impl,
4
- } from "./1_18/index.js";
1
+ import { ScrcpyOptions1_18 } from "./1_18/index.js";
2
+
3
+ export class ScrcpyOptions1_19 extends ScrcpyOptions1_18 {
4
+ constructor(init: ScrcpyOptions1_18.Init) {
5
+ super(init);
6
+ }
7
+ }
8
+
9
+ export namespace ScrcpyOptions1_19 {
10
+ export type Init = ScrcpyOptions1_18.Init;
11
+ }
package/src/1_20.ts CHANGED
@@ -1,4 +1,11 @@
1
- export {
2
- ScrcpyOptions1_18 as ScrcpyOptions1_20,
3
- ScrcpyOptions1_18Impl as ScrcpyOptions1_20Impl,
4
- } from "./1_18/index.js";
1
+ import { ScrcpyOptions1_18 } from "./1_18/index.js";
2
+
3
+ export class ScrcpyOptions1_20 extends ScrcpyOptions1_18 {
4
+ constructor(init: ScrcpyOptions1_18.Init) {
5
+ super(init);
6
+ }
7
+ }
8
+
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,7 +37,9 @@ 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
45
  readonly value: Required<Init>;
@@ -89,7 +92,7 @@ export class ScrcpyOptions1_21 implements ScrcpyOptions<Init> {
89
92
 
90
93
  async parseDeviceMessage(
91
94
  id: number,
92
- stream: AsyncExactReadable,
95
+ stream: ExactReadable | AsyncExactReadable,
93
96
  ): Promise<void> {
94
97
  if (await this.#clipboard?.parse(id, stream)) {
95
98
  return;
@@ -3,6 +3,7 @@ export { Defaults } from "./defaults.js";
3
3
  export type { Init } from "./init.js";
4
4
  export { parseVideoStreamMetadata } from "./parse-video-stream-metadata.js";
5
5
  export {
6
+ createScrollController,
6
7
  InjectScrollControlMessage,
7
8
  ScrollController,
8
9
  } from "./scroll-controller.js";
@@ -1,18 +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
+ import type { ScrcpyScrollController } from "../../base/index.js";
4
5
  import type { ScrcpyInjectScrollControlMessage } from "../../latest.js";
5
6
 
6
7
  import { PrevImpl } from "./prev.js";
7
8
 
8
- export const InjectScrollControlMessage = /* #__PURE__ */ (() =>
9
- struct(
10
- {
11
- ...PrevImpl.InjectScrollControlMessage.fields,
12
- buttons: s32,
13
- },
14
- { littleEndian: false },
15
- ))();
9
+ export const InjectScrollControlMessage = extend(
10
+ PrevImpl.InjectScrollControlMessage,
11
+ { buttons: s32 },
12
+ );
16
13
 
17
14
  export type InjectScrollControlMessage = StructInit<
18
15
  typeof InjectScrollControlMessage
@@ -30,3 +27,7 @@ export class ScrollController extends PrevImpl.ScrollController {
30
27
  return InjectScrollControlMessage.serialize(processed);
31
28
  }
32
29
  }
30
+
31
+ export function createScrollController(): ScrcpyScrollController {
32
+ return new ScrollController();
33
+ }
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,7 +37,9 @@ 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
45
  readonly value: Required<Init>;
@@ -89,7 +92,7 @@ export class ScrcpyOptions1_22 implements ScrcpyOptions<Init> {
89
92
 
90
93
  async parseDeviceMessage(
91
94
  id: number,
92
- stream: AsyncExactReadable,
95
+ stream: ExactReadable | AsyncExactReadable,
93
96
  ): Promise<void> {
94
97
  if (await this.#clipboard?.parse(id, stream)) {
95
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,7 +37,9 @@ 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
45
  readonly value: Required<Init>;
@@ -89,7 +92,7 @@ export class ScrcpyOptions1_23 implements ScrcpyOptions<Init> {
89
92
 
90
93
  async parseDeviceMessage(
91
94
  id: number,
92
- stream: AsyncExactReadable,
95
+ stream: ExactReadable | AsyncExactReadable,
93
96
  ): Promise<void> {
94
97
  if (await this.#clipboard?.parse(id, stream)) {
95
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";
@@ -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,7 +37,9 @@ import {
36
37
  setListEncoders,
37
38
  } from "./impl/index.js";
38
39
 
39
- export class ScrcpyOptions1_24 implements ScrcpyOptions<Init> {
40
+ export class ScrcpyOptions1_24
41
+ implements ScrcpyOptions<Init>, ScrcpyOptionsListEncoders
42
+ {
40
43
  static readonly Defaults = Defaults;
41
44
 
42
45
  readonly value: Required<Init>;
@@ -89,7 +92,7 @@ export class ScrcpyOptions1_24 implements ScrcpyOptions<Init> {
89
92
 
90
93
  async parseDeviceMessage(
91
94
  id: number,
92
- stream: AsyncExactReadable,
95
+ stream: ExactReadable | AsyncExactReadable,
93
96
  ): Promise<void> {
94
97
  if (await this.#clipboard?.parse(id, stream)) {
95
98
  return;
@@ -1,5 +1,6 @@
1
1
  export * from "../../1_24/impl/index.js";
2
2
  export {
3
+ createScrollController,
3
4
  InjectScrollControlMessage,
4
5
  ScrollController,
5
6
  SignedFloat,
@@ -1,27 +1,28 @@
1
1
  import { getInt16, setInt16 } from "@yume-chan/no-data-view";
2
2
  import type { Field, StructInit } from "@yume-chan/struct";
3
- import { bipedal, struct, u16, u32, u8 } from "@yume-chan/struct";
3
+ import { field, struct, u16, u32, u8 } from "@yume-chan/struct";
4
4
 
5
- import { ScrcpyControlMessageType } from "../../base/index.js";
6
5
  import type { ScrcpyScrollController } from "../../base/index.js";
6
+ import { ScrcpyControlMessageType } from "../../base/index.js";
7
7
  import type { ScrcpyInjectScrollControlMessage } from "../../latest.js";
8
8
  import { clamp } from "../../utils/index.js";
9
9
 
10
- export const SignedFloat: Field<number, never, never> = {
11
- size: 2,
12
- serialize(value, { buffer, index, littleEndian }) {
10
+ export const SignedFloat: Field<number, never, never> = field(
11
+ 2,
12
+ "byob",
13
+ (value, { buffer, index, littleEndian }) => {
13
14
  // https://github.com/Genymobile/scrcpy/blob/1f138aef41de651668043b32c4effc2d4adbfc44/app/src/util/binary.h#L51
14
15
  value = clamp(value, -1, 1);
15
16
  value = value === 1 ? 0x7fff : value * 0x8000;
16
17
  setInt16(buffer, index, value, littleEndian);
17
18
  },
18
- deserialize: bipedal(function* (then, { reader, littleEndian }) {
19
+ function* (then, reader, { littleEndian }) {
19
20
  const data = yield* then(reader.readExactly(2));
20
21
  const value = getInt16(data, 0, littleEndian);
21
22
  // https://github.com/Genymobile/scrcpy/blob/1f138aef41de651668043b32c4effc2d4adbfc44/server/src/main/java/com/genymobile/scrcpy/Binary.java#L34
22
23
  return value === 0x7fff ? 1 : value / 0x8000;
23
- }),
24
- };
24
+ },
25
+ );
25
26
 
26
27
  export const InjectScrollControlMessage = /* #__PURE__ */ (() =>
27
28
  struct(
@@ -29,8 +30,8 @@ export const InjectScrollControlMessage = /* #__PURE__ */ (() =>
29
30
  type: u8(ScrcpyControlMessageType.InjectScroll),
30
31
  pointerX: u32,
31
32
  pointerY: u32,
32
- screenWidth: u16,
33
- screenHeight: u16,
33
+ videoWidth: u16,
34
+ videoHeight: u16,
34
35
  scrollX: SignedFloat,
35
36
  scrollY: SignedFloat,
36
37
  buttons: u32,
@@ -49,3 +50,7 @@ export class ScrollController implements ScrcpyScrollController {
49
50
  return InjectScrollControlMessage.serialize(message);
50
51
  }
51
52
  }
53
+
54
+ export function createScrollController(): ScrcpyScrollController {
55
+ return new ScrollController();
56
+ }
package/src/1_25/index.ts CHANGED
@@ -1,2 +1 @@
1
- export * as ScrcpyOptions1_25Impl 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,7 +37,9 @@ import {
36
37
  setListEncoders,
37
38
  } from "./impl/index.js";
38
39
 
39
- export class ScrcpyOptions1_25 implements ScrcpyOptions<Init> {
40
+ export class ScrcpyOptions1_25
41
+ implements ScrcpyOptions<Init>, ScrcpyOptionsListEncoders
42
+ {
40
43
  static readonly Defaults = Defaults;
41
44
 
42
45
  readonly value: Required<Init>;
@@ -89,7 +92,7 @@ export class ScrcpyOptions1_25 implements ScrcpyOptions<Init> {
89
92
 
90
93
  async parseDeviceMessage(
91
94
  id: number,
92
- stream: AsyncExactReadable,
95
+ stream: ExactReadable | AsyncExactReadable,
93
96
  ): Promise<void> {
94
97
  if (await this.#clipboard?.parse(id, stream)) {
95
98
  return;
@@ -1,23 +1,22 @@
1
1
  import { omit } from "../../utils/index.js";
2
2
 
3
3
  import type { Init } from "./init.js";
4
- import { InstanceId } from "./init.js";
5
4
  import { PrevImpl } from "./prev.js";
6
5
 
7
6
  export const Defaults = /* #__PURE__ */ (() =>
8
7
  ({
9
8
  ...omit(PrevImpl.Defaults, "bitRate", "codecOptions", "encoderName"),
10
- scid: InstanceId.NONE,
9
+ scid: undefined,
11
10
 
12
11
  videoCodec: "h264",
13
12
  videoBitRate: 8000000,
14
- videoCodecOptions: PrevImpl.CodecOptions.Empty,
13
+ videoCodecOptions: undefined,
15
14
  videoEncoder: undefined,
16
15
 
17
16
  audio: true,
18
17
  audioCodec: "opus",
19
18
  audioBitRate: 128000,
20
- audioCodecOptions: PrevImpl.CodecOptions.Empty,
19
+ audioCodecOptions: undefined,
21
20
  audioEncoder: undefined,
22
21
 
23
22
  listEncoders: false,
@@ -26,17 +26,17 @@ export class InstanceId implements ScrcpyOptionValue {
26
26
 
27
27
  export interface Init
28
28
  extends Omit<PrevImpl.Init, "bitRate" | "codecOptions" | "encoderName"> {
29
- scid?: InstanceId;
29
+ scid?: InstanceId | string | undefined;
30
30
 
31
31
  videoCodec?: "h264" | "h265" | "av1";
32
32
  videoBitRate?: number;
33
- videoCodecOptions?: PrevImpl.CodecOptions;
33
+ videoCodecOptions?: PrevImpl.CodecOptions | string | undefined;
34
34
  videoEncoder?: string | undefined;
35
35
 
36
36
  audio?: boolean;
37
37
  audioCodec?: "raw" | "opus" | "aac";
38
38
  audioBitRate?: number;
39
- audioCodecOptions?: PrevImpl.CodecOptions;
39
+ audioCodecOptions?: PrevImpl.CodecOptions | string | undefined;
40
40
  audioEncoder?: string | undefined;
41
41
 
42
42
  listEncoders?: boolean;
@@ -15,8 +15,8 @@ export const InjectTouchControlMessage = /* #__PURE__ */ (() =>
15
15
  pointerId: u64,
16
16
  pointerX: u32,
17
17
  pointerY: u32,
18
- screenWidth: u16,
19
- screenHeight: u16,
18
+ videoWidth: u16,
19
+ videoHeight: u16,
20
20
  pressure: PrevImpl.UnsignedFloat,
21
21
  actionButton: u32,
22
22
  buttons: u32,