@yume-chan/scrcpy 2.3.0 → 3.0.0-beta.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 (671) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/esm/1_15/impl/codec-options.d.ts +147 -0
  4. package/esm/1_15/impl/codec-options.d.ts.map +1 -0
  5. package/esm/1_15/impl/codec-options.js +231 -0
  6. package/esm/1_15/impl/codec-options.js.map +1 -0
  7. package/esm/1_15/impl/compute-option-values.d.ts +7 -0
  8. package/esm/1_15/impl/compute-option-values.d.ts.map +1 -0
  9. package/esm/1_15/impl/compute-option-values.js +12 -0
  10. package/esm/1_15/impl/compute-option-values.js.map +1 -0
  11. package/esm/1_15/impl/control-message-types.d.ts +13 -2
  12. package/esm/1_15/impl/control-message-types.d.ts.map +1 -1
  13. package/esm/1_15/impl/control-message-types.js +13 -14
  14. package/esm/1_15/impl/control-message-types.js.map +1 -1
  15. package/esm/1_15/impl/index.d.ts +3 -0
  16. package/esm/1_15/impl/index.d.ts.map +1 -1
  17. package/esm/1_15/impl/index.js +3 -0
  18. package/esm/1_15/impl/index.js.map +1 -1
  19. package/esm/1_15/impl/init.d.ts +12 -33
  20. package/esm/1_15/impl/init.d.ts.map +1 -1
  21. package/esm/1_15/impl/init.js +0 -39
  22. package/esm/1_15/impl/init.js.map +1 -1
  23. package/esm/1_15/impl/inject-touch.d.ts.map +1 -1
  24. package/esm/1_15/impl/inject-touch.js +1 -0
  25. package/esm/1_15/impl/inject-touch.js.map +1 -1
  26. package/esm/1_15/impl/media-stream-transformer.d.ts +2 -2
  27. package/esm/1_15/impl/media-stream-transformer.js +1 -1
  28. package/esm/1_15/impl/media-stream-transformer.js.map +1 -1
  29. package/esm/1_15/impl/parse-video-stream-metadata.js +4 -4
  30. package/esm/1_15/impl/parse-video-stream-metadata.js.map +1 -1
  31. package/esm/1_15/impl/scroll-controller.d.ts.map +1 -1
  32. package/esm/1_15/impl/scroll-controller.js +1 -0
  33. package/esm/1_15/impl/scroll-controller.js.map +1 -1
  34. package/esm/1_15/impl/set-clipboard.d.ts.map +1 -1
  35. package/esm/1_15/impl/set-clipboard.js +5 -1
  36. package/esm/1_15/impl/set-clipboard.js.map +1 -1
  37. package/esm/1_15/impl/set-display-power.d.ts +13 -0
  38. package/esm/1_15/impl/set-display-power.d.ts.map +1 -0
  39. package/esm/1_15/impl/set-display-power.js +16 -0
  40. package/esm/1_15/impl/set-display-power.js.map +1 -0
  41. package/esm/1_15/options.d.ts +13 -9
  42. package/esm/1_15/options.d.ts.map +1 -1
  43. package/esm/1_15/options.js +20 -2
  44. package/esm/1_15/options.js.map +1 -1
  45. package/esm/1_15_1.d.ts +1 -7
  46. package/esm/1_15_1.d.ts.map +1 -1
  47. package/esm/1_15_1.js +1 -6
  48. package/esm/1_15_1.js.map +1 -1
  49. package/esm/1_16.d.ts +1 -7
  50. package/esm/1_16.d.ts.map +1 -1
  51. package/esm/1_16.js +1 -6
  52. package/esm/1_16.js.map +1 -1
  53. package/esm/1_17/impl/defaults.d.ts.map +1 -1
  54. package/esm/1_17/impl/defaults.js +2 -2
  55. package/esm/1_17/impl/defaults.js.map +1 -1
  56. package/esm/1_17/options.d.ts +12 -9
  57. package/esm/1_17/options.d.ts.map +1 -1
  58. package/esm/1_17/options.js +20 -2
  59. package/esm/1_17/options.js.map +1 -1
  60. package/esm/1_18/impl/control-message-types.d.ts +14 -2
  61. package/esm/1_18/impl/control-message-types.d.ts.map +1 -1
  62. package/esm/1_18/impl/control-message-types.js +14 -7
  63. package/esm/1_18/impl/control-message-types.js.map +1 -1
  64. package/esm/1_18/impl/defaults.d.ts.map +1 -1
  65. package/esm/1_18/impl/defaults.js +2 -2
  66. package/esm/1_18/impl/defaults.js.map +1 -1
  67. package/esm/1_18/impl/init.d.ts +3 -3
  68. package/esm/1_18/impl/init.d.ts.map +1 -1
  69. package/esm/1_18/options.d.ts +12 -9
  70. package/esm/1_18/options.d.ts.map +1 -1
  71. package/esm/1_18/options.js +20 -2
  72. package/esm/1_18/options.js.map +1 -1
  73. package/esm/1_19.d.ts +1 -7
  74. package/esm/1_19.d.ts.map +1 -1
  75. package/esm/1_19.js +1 -6
  76. package/esm/1_19.js.map +1 -1
  77. package/esm/1_20.d.ts +1 -7
  78. package/esm/1_20.d.ts.map +1 -1
  79. package/esm/1_20.js +1 -6
  80. package/esm/1_20.js.map +1 -1
  81. package/esm/1_21/impl/compute-option-values.d.ts +23 -0
  82. package/esm/1_21/impl/compute-option-values.d.ts.map +1 -0
  83. package/esm/1_21/impl/compute-option-values.js +12 -0
  84. package/esm/1_21/impl/compute-option-values.js.map +1 -0
  85. package/esm/1_21/impl/defaults.d.ts.map +1 -1
  86. package/esm/1_21/impl/defaults.js +2 -2
  87. package/esm/1_21/impl/defaults.js.map +1 -1
  88. package/esm/1_21/impl/index.d.ts +3 -1
  89. package/esm/1_21/impl/index.d.ts.map +1 -1
  90. package/esm/1_21/impl/index.js +2 -1
  91. package/esm/1_21/impl/index.js.map +1 -1
  92. package/esm/1_21/impl/init.d.ts +1 -1
  93. package/esm/1_21/impl/init.d.ts.map +1 -1
  94. package/esm/1_21/impl/serialize.d.ts +1 -1
  95. package/esm/1_21/impl/serialize.d.ts.map +1 -1
  96. package/esm/1_21/impl/serialize.js.map +1 -1
  97. package/esm/1_21/impl/set-clipboard.d.ts +1 -0
  98. package/esm/1_21/impl/set-clipboard.d.ts.map +1 -1
  99. package/esm/1_21/impl/set-clipboard.js +7 -0
  100. package/esm/1_21/impl/set-clipboard.js.map +1 -1
  101. package/esm/1_21/options.d.ts +12 -9
  102. package/esm/1_21/options.d.ts.map +1 -1
  103. package/esm/1_21/options.js +25 -5
  104. package/esm/1_21/options.js.map +1 -1
  105. package/esm/1_22/impl/defaults.d.ts.map +1 -1
  106. package/esm/1_22/impl/defaults.js +2 -2
  107. package/esm/1_22/impl/defaults.js.map +1 -1
  108. package/esm/1_22/impl/init.d.ts +3 -3
  109. package/esm/1_22/impl/init.d.ts.map +1 -1
  110. package/esm/1_22/impl/parse-video-stream-metadata.d.ts +2 -2
  111. package/esm/1_22/impl/parse-video-stream-metadata.d.ts.map +1 -1
  112. package/esm/1_22/impl/parse-video-stream-metadata.js +3 -3
  113. package/esm/1_22/impl/parse-video-stream-metadata.js.map +1 -1
  114. package/esm/1_22/options.d.ts +12 -9
  115. package/esm/1_22/options.d.ts.map +1 -1
  116. package/esm/1_22/options.js +26 -6
  117. package/esm/1_22/options.js.map +1 -1
  118. package/esm/1_23/impl/defaults.d.ts.map +1 -1
  119. package/esm/1_23/impl/defaults.js +2 -2
  120. package/esm/1_23/impl/defaults.js.map +1 -1
  121. package/esm/1_23/impl/init.d.ts +1 -1
  122. package/esm/1_23/impl/init.d.ts.map +1 -1
  123. package/esm/1_23/impl/media-stream-transformer.d.ts +2 -2
  124. package/esm/1_23/impl/media-stream-transformer.js +1 -1
  125. package/esm/1_23/impl/media-stream-transformer.js.map +1 -1
  126. package/esm/1_23/options.d.ts +12 -9
  127. package/esm/1_23/options.d.ts.map +1 -1
  128. package/esm/1_23/options.js +26 -6
  129. package/esm/1_23/options.js.map +1 -1
  130. package/esm/1_24/impl/defaults.d.ts.map +1 -1
  131. package/esm/1_24/impl/defaults.js +2 -2
  132. package/esm/1_24/impl/defaults.js.map +1 -1
  133. package/esm/1_24/impl/init.d.ts +1 -1
  134. package/esm/1_24/impl/init.d.ts.map +1 -1
  135. package/esm/1_24/options.d.ts +12 -9
  136. package/esm/1_24/options.d.ts.map +1 -1
  137. package/esm/1_24/options.js +26 -6
  138. package/esm/1_24/options.js.map +1 -1
  139. package/esm/1_25/impl/scroll-controller.d.ts +2 -2
  140. package/esm/1_25/impl/scroll-controller.d.ts.map +1 -1
  141. package/esm/1_25/impl/scroll-controller.js +4 -4
  142. package/esm/1_25/impl/scroll-controller.js.map +1 -1
  143. package/esm/1_25/options.d.ts +12 -9
  144. package/esm/1_25/options.d.ts.map +1 -1
  145. package/esm/1_25/options.js +26 -6
  146. package/esm/1_25/options.js.map +1 -1
  147. package/esm/2_0/impl/defaults.d.ts +8 -11
  148. package/esm/2_0/impl/defaults.d.ts.map +1 -1
  149. package/esm/2_0/impl/defaults.js +2 -2
  150. package/esm/2_0/impl/defaults.js.map +1 -1
  151. package/esm/2_0/impl/index.d.ts +1 -1
  152. package/esm/2_0/impl/index.d.ts.map +1 -1
  153. package/esm/2_0/impl/index.js +1 -1
  154. package/esm/2_0/impl/index.js.map +1 -1
  155. package/esm/2_0/impl/init.d.ts +8 -8
  156. package/esm/2_0/impl/init.d.ts.map +1 -1
  157. package/esm/2_0/impl/inject-touch.d.ts +2 -2
  158. package/esm/2_0/impl/inject-touch.d.ts.map +1 -1
  159. package/esm/2_0/impl/inject-touch.js +4 -4
  160. package/esm/2_0/impl/inject-touch.js.map +1 -1
  161. package/esm/2_0/impl/parse-audio-stream-metadata.d.ts +4 -1
  162. package/esm/2_0/impl/parse-audio-stream-metadata.d.ts.map +1 -1
  163. package/esm/2_0/impl/parse-audio-stream-metadata.js +30 -46
  164. package/esm/2_0/impl/parse-audio-stream-metadata.js.map +1 -1
  165. package/esm/2_0/impl/parse-video-stream-metadata.d.ts +5 -2
  166. package/esm/2_0/impl/parse-video-stream-metadata.d.ts.map +1 -1
  167. package/esm/2_0/impl/parse-video-stream-metadata.js +14 -12
  168. package/esm/2_0/impl/parse-video-stream-metadata.js.map +1 -1
  169. package/esm/2_0/options.d.ts +20 -20
  170. package/esm/2_0/options.d.ts.map +1 -1
  171. package/esm/2_0/options.js +27 -7
  172. package/esm/2_0/options.js.map +1 -1
  173. package/esm/2_1/impl/defaults.d.ts +8 -11
  174. package/esm/2_1/impl/defaults.d.ts.map +1 -1
  175. package/esm/2_1/impl/defaults.js +2 -2
  176. package/esm/2_1/impl/defaults.js.map +1 -1
  177. package/esm/2_1/impl/init.d.ts +3 -3
  178. package/esm/2_1/impl/init.d.ts.map +1 -1
  179. package/esm/2_1/options.d.ts +22 -22
  180. package/esm/2_1/options.d.ts.map +1 -1
  181. package/esm/2_1/options.js +27 -7
  182. package/esm/2_1/options.js.map +1 -1
  183. package/esm/2_1_1.d.ts +1 -7
  184. package/esm/2_1_1.d.ts.map +1 -1
  185. package/esm/2_1_1.js +1 -6
  186. package/esm/2_1_1.js.map +1 -1
  187. package/esm/2_2/impl/compute-option-values.d.ts +22 -0
  188. package/esm/2_2/impl/compute-option-values.d.ts.map +1 -0
  189. package/esm/2_2/impl/compute-option-values.js +11 -0
  190. package/esm/2_2/impl/compute-option-values.js.map +1 -0
  191. package/esm/2_2/impl/defaults.d.ts +8 -11
  192. package/esm/2_2/impl/defaults.d.ts.map +1 -1
  193. package/esm/2_2/impl/defaults.js +2 -2
  194. package/esm/2_2/impl/defaults.js.map +1 -1
  195. package/esm/2_2/impl/index.d.ts +2 -0
  196. package/esm/2_2/impl/index.d.ts.map +1 -1
  197. package/esm/2_2/impl/index.js +1 -0
  198. package/esm/2_2/impl/index.js.map +1 -1
  199. package/esm/2_2/impl/init.d.ts +5 -5
  200. package/esm/2_2/impl/init.d.ts.map +1 -1
  201. package/esm/2_2/options.d.ts +22 -22
  202. package/esm/2_2/options.d.ts.map +1 -1
  203. package/esm/2_2/options.js +27 -10
  204. package/esm/2_2/options.js.map +1 -1
  205. package/esm/2_3/impl/index.d.ts +1 -0
  206. package/esm/2_3/impl/index.d.ts.map +1 -1
  207. package/esm/2_3/impl/index.js +1 -0
  208. package/esm/2_3/impl/index.js.map +1 -1
  209. package/esm/2_3/impl/init.d.ts +2 -2
  210. package/esm/2_3/impl/init.d.ts.map +1 -1
  211. package/esm/2_3/impl/parse-audio-stream-metadata.d.ts +5 -0
  212. package/esm/2_3/impl/parse-audio-stream-metadata.d.ts.map +1 -0
  213. package/esm/2_3/impl/parse-audio-stream-metadata.js +31 -0
  214. package/esm/2_3/impl/parse-audio-stream-metadata.js.map +1 -0
  215. package/esm/2_3/options.d.ts +22 -22
  216. package/esm/2_3/options.d.ts.map +1 -1
  217. package/esm/2_3/options.js +27 -10
  218. package/esm/2_3/options.js.map +1 -1
  219. package/esm/2_3_1.d.ts +1 -7
  220. package/esm/2_3_1.d.ts.map +1 -1
  221. package/esm/2_3_1.js +1 -6
  222. package/esm/2_3_1.js.map +1 -1
  223. package/esm/2_4/impl/control-message-types.d.ts +17 -2
  224. package/esm/2_4/impl/control-message-types.d.ts.map +1 -1
  225. package/esm/2_4/impl/control-message-types.js +17 -8
  226. package/esm/2_4/impl/control-message-types.js.map +1 -1
  227. package/esm/2_4/impl/serialize-uhid-create.d.ts.map +1 -1
  228. package/esm/2_4/impl/serialize-uhid-create.js +1 -0
  229. package/esm/2_4/impl/serialize-uhid-create.js.map +1 -1
  230. package/esm/2_4/options.d.ts +23 -23
  231. package/esm/2_4/options.d.ts.map +1 -1
  232. package/esm/2_4/options.js +27 -9
  233. package/esm/2_4/options.js.map +1 -1
  234. package/esm/2_5.d.ts +1 -7
  235. package/esm/2_5.d.ts.map +1 -1
  236. package/esm/2_5.js +1 -6
  237. package/esm/2_5.js.map +1 -1
  238. package/esm/2_6/impl/compute-option-values.d.ts +29 -0
  239. package/esm/2_6/impl/compute-option-values.d.ts.map +1 -0
  240. package/esm/2_6/impl/compute-option-values.js +12 -0
  241. package/esm/2_6/impl/compute-option-values.js.map +1 -0
  242. package/esm/2_6/impl/defaults.d.ts +8 -11
  243. package/esm/2_6/impl/defaults.d.ts.map +1 -1
  244. package/esm/2_6/impl/defaults.js +2 -2
  245. package/esm/2_6/impl/defaults.js.map +1 -1
  246. package/esm/2_6/impl/index.d.ts +2 -0
  247. package/esm/2_6/impl/index.d.ts.map +1 -1
  248. package/esm/2_6/impl/index.js +1 -0
  249. package/esm/2_6/impl/index.js.map +1 -1
  250. package/esm/2_6/impl/init.d.ts +3 -3
  251. package/esm/2_6/impl/init.d.ts.map +1 -1
  252. package/esm/2_6/options.d.ts +23 -23
  253. package/esm/2_6/options.d.ts.map +1 -1
  254. package/esm/2_6/options.js +27 -12
  255. package/esm/2_6/options.js.map +1 -1
  256. package/esm/2_6_1.d.ts +1 -7
  257. package/esm/2_6_1.d.ts.map +1 -1
  258. package/esm/2_6_1.js +1 -6
  259. package/esm/2_6_1.js.map +1 -1
  260. package/esm/2_7/impl/control-message-types.d.ts +18 -2
  261. package/esm/2_7/impl/control-message-types.d.ts.map +1 -1
  262. package/esm/2_7/impl/control-message-types.js +18 -7
  263. package/esm/2_7/impl/control-message-types.js.map +1 -1
  264. package/esm/2_7/impl/index.d.ts.map +1 -1
  265. package/esm/2_7/impl/index.js.map +1 -1
  266. package/esm/2_7/impl/serialize-uhid-create.d.ts.map +1 -1
  267. package/esm/2_7/impl/serialize-uhid-create.js +1 -0
  268. package/esm/2_7/impl/serialize-uhid-create.js.map +1 -1
  269. package/esm/2_7/options.d.ts +23 -23
  270. package/esm/2_7/options.d.ts.map +1 -1
  271. package/esm/2_7/options.js +27 -12
  272. package/esm/2_7/options.js.map +1 -1
  273. package/esm/3_0/impl/control-message-types.d.ts +20 -2
  274. package/esm/3_0/impl/control-message-types.d.ts.map +1 -1
  275. package/esm/3_0/impl/control-message-types.js +20 -7
  276. package/esm/3_0/impl/control-message-types.js.map +1 -1
  277. package/esm/3_0/impl/defaults.d.ts +29 -33
  278. package/esm/3_0/impl/defaults.d.ts.map +1 -1
  279. package/esm/3_0/impl/defaults.js +2 -2
  280. package/esm/3_0/impl/defaults.js.map +1 -1
  281. package/esm/3_0/impl/index.d.ts +1 -0
  282. package/esm/3_0/impl/index.d.ts.map +1 -1
  283. package/esm/3_0/impl/index.js +1 -0
  284. package/esm/3_0/impl/index.js.map +1 -1
  285. package/esm/3_0/impl/init.d.ts +4 -4
  286. package/esm/3_0/impl/init.d.ts.map +1 -1
  287. package/esm/3_0/impl/set-display-power.d.ts +12 -0
  288. package/esm/3_0/impl/set-display-power.d.ts.map +1 -0
  289. package/esm/3_0/impl/set-display-power.js +10 -0
  290. package/esm/3_0/impl/set-display-power.js.map +1 -0
  291. package/esm/3_0/options.d.ts +44 -45
  292. package/esm/3_0/options.d.ts.map +1 -1
  293. package/esm/3_0/options.js +27 -12
  294. package/esm/3_0/options.js.map +1 -1
  295. package/esm/3_0_1.d.ts +1 -7
  296. package/esm/3_0_1.d.ts.map +1 -1
  297. package/esm/3_0_1.js +1 -6
  298. package/esm/3_0_1.js.map +1 -1
  299. package/esm/3_0_2.d.ts +1 -7
  300. package/esm/3_0_2.d.ts.map +1 -1
  301. package/esm/3_0_2.js +1 -6
  302. package/esm/3_0_2.js.map +1 -1
  303. package/esm/3_1/impl/defaults.d.ts +29 -33
  304. package/esm/3_1/impl/defaults.d.ts.map +1 -1
  305. package/esm/3_1/impl/defaults.js +2 -2
  306. package/esm/3_1/impl/defaults.js.map +1 -1
  307. package/esm/3_1/impl/index.d.ts.map +1 -1
  308. package/esm/3_1/impl/index.js.map +1 -1
  309. package/esm/3_1/impl/init.d.ts +2 -2
  310. package/esm/3_1/impl/init.d.ts.map +1 -1
  311. package/esm/3_1/impl/serialize-uhid-create.d.ts.map +1 -1
  312. package/esm/3_1/impl/serialize-uhid-create.js +1 -0
  313. package/esm/3_1/impl/serialize-uhid-create.js.map +1 -1
  314. package/esm/3_1/options.d.ts +44 -45
  315. package/esm/3_1/options.d.ts.map +1 -1
  316. package/esm/3_1/options.js +27 -12
  317. package/esm/3_1/options.js.map +1 -1
  318. package/esm/3_2/impl/defaults.d.ts +29 -33
  319. package/esm/3_2/impl/defaults.d.ts.map +1 -1
  320. package/esm/3_2/impl/defaults.js +2 -2
  321. package/esm/3_2/impl/defaults.js.map +1 -1
  322. package/esm/3_2/impl/index.d.ts.map +1 -1
  323. package/esm/3_2/impl/index.js.map +1 -1
  324. package/esm/3_2/impl/init.d.ts +2 -2
  325. package/esm/3_2/impl/init.d.ts.map +1 -1
  326. package/esm/3_2/options.d.ts +44 -45
  327. package/esm/3_2/options.d.ts.map +1 -1
  328. package/esm/3_2/options.js +27 -12
  329. package/esm/3_2/options.js.map +1 -1
  330. package/esm/3_3.d.ts +1 -7
  331. package/esm/3_3.d.ts.map +1 -1
  332. package/esm/3_3.js +1 -6
  333. package/esm/3_3.js.map +1 -1
  334. package/esm/3_3_1/options.d.ts +44 -45
  335. package/esm/3_3_1/options.d.ts.map +1 -1
  336. package/esm/3_3_1/options.js +27 -12
  337. package/esm/3_3_1/options.js.map +1 -1
  338. package/esm/3_3_2.d.ts +1 -7
  339. package/esm/3_3_2.d.ts.map +1 -1
  340. package/esm/3_3_2.js +1 -6
  341. package/esm/3_3_2.js.map +1 -1
  342. package/esm/3_3_4.d.ts +2 -0
  343. package/esm/3_3_4.d.ts.map +1 -0
  344. package/esm/3_3_4.js +2 -0
  345. package/esm/3_3_4.js.map +1 -0
  346. package/esm/4_0/impl/compute-option-values.d.ts +15 -0
  347. package/esm/4_0/impl/compute-option-values.d.ts.map +1 -0
  348. package/esm/4_0/impl/compute-option-values.js +9 -0
  349. package/esm/4_0/impl/compute-option-values.js.map +1 -0
  350. package/esm/4_0/impl/control-message-types.d.ts +25 -0
  351. package/esm/4_0/impl/control-message-types.d.ts.map +1 -0
  352. package/esm/4_0/impl/control-message-types.js +26 -0
  353. package/esm/4_0/impl/control-message-types.js.map +1 -0
  354. package/esm/4_0/impl/defaults.d.ts +58 -0
  355. package/esm/4_0/impl/defaults.d.ts.map +1 -0
  356. package/esm/4_0/impl/defaults.js +12 -0
  357. package/esm/4_0/impl/defaults.js.map +1 -0
  358. package/esm/4_0/impl/index.d.ts +9 -0
  359. package/esm/4_0/impl/index.d.ts.map +1 -0
  360. package/esm/4_0/impl/index.js +7 -0
  361. package/esm/4_0/impl/index.js.map +1 -0
  362. package/esm/4_0/impl/init.d.ts +10 -0
  363. package/esm/4_0/impl/init.d.ts.map +1 -0
  364. package/esm/4_0/impl/init.js +2 -0
  365. package/esm/4_0/impl/init.js.map +1 -0
  366. package/esm/4_0/impl/media-stream-transformer.d.ts +5 -0
  367. package/esm/4_0/impl/media-stream-transformer.d.ts.map +1 -0
  368. package/esm/4_0/impl/media-stream-transformer.js +39 -0
  369. package/esm/4_0/impl/media-stream-transformer.js.map +1 -0
  370. package/esm/4_0/impl/parse-video-stream-metadata.d.ts +6 -0
  371. package/esm/4_0/impl/parse-video-stream-metadata.d.ts.map +1 -0
  372. package/esm/4_0/impl/parse-video-stream-metadata.js +21 -0
  373. package/esm/4_0/impl/parse-video-stream-metadata.js.map +1 -0
  374. package/esm/4_0/impl/prev.d.ts +2 -0
  375. package/esm/4_0/impl/prev.d.ts.map +1 -0
  376. package/esm/4_0/impl/prev.js +2 -0
  377. package/esm/4_0/impl/prev.js.map +1 -0
  378. package/esm/4_0/index.d.ts +100 -0
  379. package/esm/4_0/index.d.ts.map +1 -0
  380. package/esm/4_0/index.js +93 -0
  381. package/esm/4_0/index.js.map +1 -0
  382. package/esm/4_1/impl/control-message-types.d.ts +26 -0
  383. package/esm/4_1/impl/control-message-types.d.ts.map +1 -0
  384. package/esm/4_1/impl/control-message-types.js +27 -0
  385. package/esm/4_1/impl/control-message-types.js.map +1 -0
  386. package/esm/4_1/impl/defaults.d.ts +59 -0
  387. package/esm/4_1/impl/defaults.d.ts.map +1 -0
  388. package/esm/4_1/impl/defaults.js +6 -0
  389. package/esm/4_1/impl/defaults.js.map +1 -0
  390. package/esm/4_1/impl/index.d.ts +6 -0
  391. package/esm/4_1/impl/index.d.ts.map +1 -0
  392. package/esm/4_1/impl/index.js +5 -0
  393. package/esm/4_1/impl/index.js.map +1 -0
  394. package/esm/4_1/impl/init.d.ts +6 -0
  395. package/esm/4_1/impl/init.d.ts.map +1 -0
  396. package/esm/4_1/impl/init.js +2 -0
  397. package/esm/4_1/impl/init.js.map +1 -0
  398. package/esm/4_1/impl/parse-video-stream-metadata.d.ts +4 -0
  399. package/esm/4_1/impl/parse-video-stream-metadata.d.ts.map +1 -0
  400. package/esm/4_1/impl/parse-video-stream-metadata.js +19 -0
  401. package/esm/4_1/impl/parse-video-stream-metadata.js.map +1 -0
  402. package/esm/4_1/impl/prev.d.ts +2 -0
  403. package/esm/4_1/impl/prev.d.ts.map +1 -0
  404. package/esm/4_1/impl/prev.js +2 -0
  405. package/esm/4_1/impl/prev.js.map +1 -0
  406. package/esm/4_1/index.d.ts +101 -0
  407. package/esm/4_1/index.d.ts.map +1 -0
  408. package/esm/4_1/index.js +93 -0
  409. package/esm/4_1/index.js.map +1 -0
  410. package/esm/android/key-code-value.d.ts +176 -0
  411. package/esm/android/key-code-value.d.ts.map +1 -0
  412. package/esm/android/key-code-value.js +180 -0
  413. package/esm/android/key-code-value.js.map +1 -0
  414. package/esm/android/key-event.d.ts +3 -164
  415. package/esm/android/key-event.d.ts.map +1 -1
  416. package/esm/android/key-event.js +2 -167
  417. package/esm/android/key-event.js.map +1 -1
  418. package/esm/base/control-message-type-value.d.ts +24 -0
  419. package/esm/base/control-message-type-value.d.ts.map +1 -0
  420. package/esm/base/control-message-type-value.js +24 -0
  421. package/esm/base/control-message-type-value.js.map +1 -0
  422. package/esm/base/control-message-type.d.ts +3 -21
  423. package/esm/base/control-message-type.d.ts.map +1 -1
  424. package/esm/base/control-message-type.js +2 -21
  425. package/esm/base/control-message-type.js.map +1 -1
  426. package/esm/base/media.d.ts +8 -1
  427. package/esm/base/media.d.ts.map +1 -1
  428. package/esm/base/options.d.ts +8 -5
  429. package/esm/base/options.d.ts.map +1 -1
  430. package/esm/base/video.d.ts +1 -7
  431. package/esm/base/video.d.ts.map +1 -1
  432. package/esm/base/video.js +1 -13
  433. package/esm/base/video.js.map +1 -1
  434. package/esm/control/boolean.d.ts +10 -0
  435. package/esm/control/boolean.d.ts.map +1 -0
  436. package/esm/control/boolean.js +3 -0
  437. package/esm/control/boolean.js.map +1 -0
  438. package/esm/control/index.d.ts +2 -2
  439. package/esm/control/index.d.ts.map +1 -1
  440. package/esm/control/index.js +2 -2
  441. package/esm/control/index.js.map +1 -1
  442. package/esm/control/inject-key-code.d.ts +2 -2
  443. package/esm/control/inject-key-code.d.ts.map +1 -1
  444. package/esm/control/inject-key-code.js +4 -4
  445. package/esm/control/inject-key-code.js.map +1 -1
  446. package/esm/control/inject-text.d.ts.map +1 -1
  447. package/esm/control/inject-text.js +5 -1
  448. package/esm/control/inject-text.js.map +1 -1
  449. package/esm/control/resize-display.d.ts +12 -0
  450. package/esm/control/resize-display.d.ts.map +1 -0
  451. package/esm/control/resize-display.js +8 -0
  452. package/esm/control/resize-display.js.map +1 -0
  453. package/esm/control/serializer.d.ts +10 -2
  454. package/esm/control/serializer.d.ts.map +1 -1
  455. package/esm/control/serializer.js +57 -23
  456. package/esm/control/serializer.js.map +1 -1
  457. package/esm/control/start-app.d.ts.map +1 -1
  458. package/esm/control/start-app.js +1 -0
  459. package/esm/control/start-app.js.map +1 -1
  460. package/esm/control/uhid.d.ts +2 -2
  461. package/esm/control/uhid.d.ts.map +1 -1
  462. package/esm/control/uhid.js +9 -5
  463. package/esm/control/uhid.js.map +1 -1
  464. package/esm/control/writer.d.ts +8 -2
  465. package/esm/control/writer.d.ts.map +1 -1
  466. package/esm/control/writer.js +17 -2
  467. package/esm/control/writer.js.map +1 -1
  468. package/esm/index.d.ts +4 -1
  469. package/esm/index.d.ts.map +1 -1
  470. package/esm/index.js +4 -1
  471. package/esm/index.js.map +1 -1
  472. package/esm/latest.d.ts +2 -2
  473. package/esm/latest.d.ts.map +1 -1
  474. package/esm/latest.js +2 -2
  475. package/esm/latest.js.map +1 -1
  476. package/esm/utils/omit.d.ts +1 -1
  477. package/esm/utils/omit.d.ts.map +1 -1
  478. package/esm/video/android.d.ts +69 -0
  479. package/esm/video/android.d.ts.map +1 -0
  480. package/esm/video/android.js +70 -0
  481. package/esm/video/android.js.map +1 -0
  482. package/esm/video/codec-id.d.ts +6 -0
  483. package/esm/video/codec-id.d.ts.map +1 -0
  484. package/esm/video/codec-id.js +6 -0
  485. package/esm/video/codec-id.js.map +1 -0
  486. package/esm/video/index.d.ts +7 -0
  487. package/esm/video/index.d.ts.map +1 -0
  488. package/esm/video/index.js +15 -0
  489. package/esm/video/index.js.map +1 -0
  490. package/esm/video/size.d.ts +20 -0
  491. package/esm/video/size.d.ts.map +1 -0
  492. package/esm/video/size.js +27 -0
  493. package/esm/video/size.js.map +1 -0
  494. package/package.json +11 -10
  495. package/src/1_15/impl/codec-options.ts +287 -0
  496. package/src/1_15/impl/compute-option-values.ts +26 -0
  497. package/src/1_15/impl/control-message-types.ts +14 -14
  498. package/src/1_15/impl/index.ts +3 -0
  499. package/src/1_15/impl/init.ts +13 -87
  500. package/src/1_15/impl/inject-touch.ts +1 -0
  501. package/src/1_15/impl/media-stream-transformer.ts +3 -3
  502. package/src/1_15/impl/parse-video-stream-metadata.ts +4 -4
  503. package/src/1_15/impl/scroll-controller.ts +1 -0
  504. package/src/1_15/impl/set-clipboard.ts +5 -1
  505. package/src/1_15/impl/set-display-power.ts +29 -0
  506. package/src/1_15/options.ts +46 -11
  507. package/src/1_15_1.ts +1 -11
  508. package/src/1_16.ts +1 -11
  509. package/src/1_17/impl/defaults.ts +4 -5
  510. package/src/1_17/options.ts +47 -12
  511. package/src/1_18/impl/control-message-types.ts +15 -8
  512. package/src/1_18/impl/defaults.ts +6 -7
  513. package/src/1_18/impl/init.ts +7 -5
  514. package/src/1_18/options.ts +47 -12
  515. package/src/1_19.ts +1 -11
  516. package/src/1_20.ts +1 -11
  517. package/src/1_21/impl/compute-option-values.ts +43 -0
  518. package/src/1_21/impl/defaults.ts +4 -5
  519. package/src/1_21/impl/index.ts +10 -0
  520. package/src/1_21/impl/init.ts +1 -1
  521. package/src/1_21/impl/serialize.ts +3 -3
  522. package/src/1_21/impl/set-clipboard.ts +14 -0
  523. package/src/1_21/options.ts +56 -17
  524. package/src/1_22/impl/defaults.ts +6 -7
  525. package/src/1_22/impl/init.ts +3 -3
  526. package/src/1_22/impl/parse-video-stream-metadata.ts +4 -4
  527. package/src/1_22/options.ts +57 -18
  528. package/src/1_23/impl/defaults.ts +4 -5
  529. package/src/1_23/impl/init.ts +1 -1
  530. package/src/1_23/impl/media-stream-transformer.ts +3 -3
  531. package/src/1_23/options.ts +57 -18
  532. package/src/1_24/impl/defaults.ts +4 -5
  533. package/src/1_24/impl/init.ts +1 -1
  534. package/src/1_24/options.ts +57 -18
  535. package/src/1_25/impl/scroll-controller.ts +14 -15
  536. package/src/1_25/options.ts +57 -18
  537. package/src/2_0/impl/defaults.ts +3 -2
  538. package/src/2_0/impl/index.ts +5 -1
  539. package/src/2_0/impl/init.ts +12 -10
  540. package/src/2_0/impl/inject-touch.ts +16 -17
  541. package/src/2_0/impl/parse-audio-stream-metadata.ts +37 -51
  542. package/src/2_0/impl/parse-video-stream-metadata.ts +24 -21
  543. package/src/2_0/options.ts +73 -19
  544. package/src/2_1/impl/defaults.ts +5 -6
  545. package/src/2_1/impl/init.ts +3 -3
  546. package/src/2_1/options.ts +76 -22
  547. package/src/2_1_1.ts +1 -14
  548. package/src/2_2/generate-type-tests.js +106 -0
  549. package/src/2_2/impl/compute-option-values.ts +44 -0
  550. package/src/2_2/impl/defaults.ts +13 -14
  551. package/src/2_2/impl/index.ts +2 -0
  552. package/src/2_2/impl/init.ts +5 -5
  553. package/src/2_2/options.ts +76 -26
  554. package/src/2_3/impl/index.ts +4 -0
  555. package/src/2_3/impl/init.ts +2 -3
  556. package/src/2_3/impl/parse-audio-stream-metadata.ts +36 -0
  557. package/src/2_3/options.ts +76 -26
  558. package/src/2_3_1.ts +1 -14
  559. package/src/2_4/impl/control-message-types.ts +18 -9
  560. package/src/2_4/impl/serialize-uhid-create.ts +1 -0
  561. package/src/2_4/options.ts +83 -30
  562. package/src/2_5.ts +1 -14
  563. package/src/2_6/generate-type-tests.js +119 -0
  564. package/src/2_6/impl/compute-option-values.ts +48 -0
  565. package/src/2_6/impl/defaults.ts +4 -5
  566. package/src/2_6/impl/index.ts +9 -0
  567. package/src/2_6/impl/init.ts +3 -4
  568. package/src/2_6/options.ts +83 -34
  569. package/src/2_6_1.ts +1 -14
  570. package/src/2_7/impl/control-message-types.ts +19 -8
  571. package/src/2_7/impl/index.ts +1 -0
  572. package/src/2_7/impl/serialize-uhid-create.ts +1 -0
  573. package/src/2_7/options.ts +83 -34
  574. package/src/3_0/impl/control-message-types.ts +21 -8
  575. package/src/3_0/impl/defaults.ts +4 -3
  576. package/src/3_0/impl/index.ts +5 -0
  577. package/src/3_0/impl/init.ts +4 -5
  578. package/src/3_0/impl/set-display-power.ts +23 -0
  579. package/src/3_0/options.ts +83 -34
  580. package/src/3_0_1.ts +1 -14
  581. package/src/3_0_2.ts +1 -14
  582. package/src/3_1/impl/defaults.ts +4 -5
  583. package/src/3_1/impl/index.ts +1 -0
  584. package/src/3_1/impl/init.ts +2 -2
  585. package/src/3_1/impl/serialize-uhid-create.ts +1 -0
  586. package/src/3_1/options.ts +83 -34
  587. package/src/3_2/impl/defaults.ts +4 -5
  588. package/src/3_2/impl/index.ts +1 -0
  589. package/src/3_2/impl/init.ts +2 -3
  590. package/src/3_2/options.ts +83 -34
  591. package/src/3_3.ts +1 -14
  592. package/src/3_3_1/options.ts +83 -34
  593. package/src/3_3_2.ts +1 -14
  594. package/src/3_3_4.ts +1 -0
  595. package/src/4_0/impl/compute-option-values.ts +31 -0
  596. package/src/4_0/impl/control-message-types.ts +27 -0
  597. package/src/4_0/impl/defaults.ts +20 -0
  598. package/src/4_0/impl/index.ts +9 -0
  599. package/src/4_0/impl/init.ts +14 -0
  600. package/src/4_0/impl/media-stream-transformer.ts +58 -0
  601. package/src/4_0/impl/parse-video-stream-metadata.ts +34 -0
  602. package/src/4_0/impl/prev.ts +1 -0
  603. package/src/4_0/index.ts +226 -0
  604. package/src/4_1/impl/control-message-types.ts +28 -0
  605. package/src/4_1/impl/defaults.ts +8 -0
  606. package/src/4_1/impl/index.ts +6 -0
  607. package/src/4_1/impl/init.ts +7 -0
  608. package/src/4_1/impl/parse-video-stream-metadata.ts +23 -0
  609. package/src/4_1/impl/prev.ts +1 -0
  610. package/src/4_1/index.ts +226 -0
  611. package/src/android/key-code-value.ts +194 -0
  612. package/src/android/key-event.ts +5 -182
  613. package/src/base/control-message-type-value.ts +23 -0
  614. package/src/base/control-message-type.ts +6 -22
  615. package/src/base/media.ts +12 -3
  616. package/src/base/options.ts +20 -6
  617. package/src/base/video.ts +2 -19
  618. package/src/control/boolean.ts +9 -0
  619. package/src/control/index.ts +2 -2
  620. package/src/control/inject-key-code.ts +11 -12
  621. package/src/control/inject-text.ts +5 -1
  622. package/src/control/resize-display.ts +16 -0
  623. package/src/control/serializer.ts +70 -44
  624. package/src/control/start-app.ts +1 -0
  625. package/src/control/uhid.ts +14 -12
  626. package/src/control/writer.ts +24 -6
  627. package/src/index.ts +4 -1
  628. package/src/latest.ts +4 -2
  629. package/src/utils/omit.ts +1 -1
  630. package/src/video/android.ts +72 -0
  631. package/src/video/codec-id.ts +6 -0
  632. package/src/video/index.ts +21 -0
  633. package/src/video/size.ts +46 -0
  634. package/tsconfig.build.json +0 -8
  635. package/CHANGELOG.md +0 -224
  636. package/esm/codec/av1.d.ts +0 -462
  637. package/esm/codec/av1.d.ts.map +0 -1
  638. package/esm/codec/av1.js +0 -622
  639. package/esm/codec/av1.js.map +0 -1
  640. package/esm/codec/h264.d.ts +0 -78
  641. package/esm/codec/h264.d.ts.map +0 -1
  642. package/esm/codec/h264.js +0 -254
  643. package/esm/codec/h264.js.map +0 -1
  644. package/esm/codec/h265.d.ts +0 -535
  645. package/esm/codec/h265.d.ts.map +0 -1
  646. package/esm/codec/h265.js +0 -1117
  647. package/esm/codec/h265.js.map +0 -1
  648. package/esm/codec/index.d.ts +0 -5
  649. package/esm/codec/index.d.ts.map +0 -1
  650. package/esm/codec/index.js +0 -5
  651. package/esm/codec/index.js.map +0 -1
  652. package/esm/codec/nalu.d.ts +0 -28
  653. package/esm/codec/nalu.d.ts.map +0 -1
  654. package/esm/codec/nalu.js +0 -250
  655. package/esm/codec/nalu.js.map +0 -1
  656. package/esm/control/message-type-map.d.ts +0 -15
  657. package/esm/control/message-type-map.d.ts.map +0 -1
  658. package/esm/control/message-type-map.js +0 -23
  659. package/esm/control/message-type-map.js.map +0 -1
  660. package/esm/control/set-screen-power-mode.d.ts +0 -11
  661. package/esm/control/set-screen-power-mode.d.ts.map +0 -1
  662. package/esm/control/set-screen-power-mode.js +0 -3
  663. package/esm/control/set-screen-power-mode.js.map +0 -1
  664. package/src/codec/av1.ts +0 -724
  665. package/src/codec/h264.ts +0 -317
  666. package/src/codec/h265.ts +0 -1410
  667. package/src/codec/index.ts +0 -4
  668. package/src/codec/nalu.ts +0 -304
  669. package/src/control/message-type-map.ts +0 -30
  670. package/src/control/set-screen-power-mode.ts +0 -13
  671. package/tsconfig.build.tsbuildinfo +0 -1
@@ -2,26 +2,28 @@ import type { MaybePromiseLike } from "@yume-chan/async";
2
2
  import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
3
3
 
4
4
  import type {
5
- ScrcpyControlMessageType,
5
+ MapBoolean,
6
6
  ScrcpyDisplay,
7
7
  ScrcpyEncoder,
8
- ScrcpyMediaStreamPacket,
9
8
  ScrcpyOptions,
10
9
  ScrcpyOptionsListEncoders,
11
10
  ScrcpyScrollController,
12
11
  ScrcpyVideoStream,
12
+ ScrcpyVideoStreamPacket,
13
13
  } from "../base/index.js";
14
14
  import { ScrcpyDeviceMessageParsers } from "../base/index.js";
15
15
  import type {
16
16
  ScrcpyBackOrScreenOnControlMessage,
17
17
  ScrcpyInjectTouchControlMessage,
18
18
  ScrcpySetClipboardControlMessage,
19
+ ScrcpySetDisplayPowerControlMessage,
19
20
  } from "../latest.js";
20
21
 
21
- import type { Init } from "./impl/index.js";
22
+ import type { ComputeOptionTypes, Init } from "./impl/index.js";
22
23
  import {
23
24
  AckClipboardHandler,
24
25
  ClipboardStream,
26
+ computeOptionValues,
25
27
  ControlMessageTypes,
26
28
  createMediaStreamTransformer,
27
29
  createScrollController,
@@ -33,24 +35,32 @@ import {
33
35
  serialize,
34
36
  serializeBackOrScreenOnControlMessage,
35
37
  serializeInjectTouchControlMessage,
38
+ serializeSetClipboardControlMessage,
39
+ serializeSetDisplayPowerControlMessage,
36
40
  setListDisplays,
37
41
  setListEncoders,
38
42
  } from "./impl/index.js";
39
43
 
40
- export class ScrcpyOptions1_23
41
- implements ScrcpyOptions<Init>, ScrcpyOptionsListEncoders
44
+ export class ScrcpyOptions1_23<TInit extends Init = Init>
45
+ implements
46
+ ScrcpyOptions<ScrcpyOptions1_23.Value<TInit>>,
47
+ ScrcpyOptionsListEncoders
42
48
  {
43
49
  static readonly Defaults = Defaults;
44
50
 
45
- readonly value: Required<Init>;
51
+ readonly value: ScrcpyOptions1_23.Value<TInit>;
46
52
 
47
- get controlMessageTypes(): readonly ScrcpyControlMessageType[] {
53
+ get controlMessageTypes(): typeof ControlMessageTypes {
48
54
  return ControlMessageTypes;
49
55
  }
50
56
 
51
57
  #clipboard: ClipboardStream | undefined;
52
- get clipboard(): ReadableStream<string> | undefined {
53
- return this.#clipboard;
58
+ get clipboard(): MapBoolean<
59
+ this["value"]["clipboardAutosync"],
60
+ ReadableStream<string>,
61
+ undefined
62
+ > {
63
+ return this.#clipboard as never;
54
64
  }
55
65
 
56
66
  #ackClipboardHandler: AckClipboardHandler | undefined;
@@ -60,13 +70,15 @@ export class ScrcpyOptions1_23
60
70
  return this.#deviceMessageParsers;
61
71
  }
62
72
 
63
- constructor(init: Init) {
64
- this.value = { ...Defaults, ...init };
73
+ constructor(init: TInit) {
74
+ this.value = computeOptionValues(init, Defaults);
65
75
 
66
- if (this.value.control && this.value.clipboardAutosync) {
67
- this.#clipboard = this.#deviceMessageParsers.add(
68
- new ClipboardStream(),
69
- );
76
+ if (this.value.control) {
77
+ if (this.value.clipboardAutosync) {
78
+ this.#clipboard = this.#deviceMessageParsers.add(
79
+ new ClipboardStream(),
80
+ );
81
+ }
70
82
 
71
83
  this.#ackClipboardHandler = this.#deviceMessageParsers.add(
72
84
  new AckClipboardHandler(),
@@ -97,12 +109,12 @@ export class ScrcpyOptions1_23
97
109
  parseVideoStreamMetadata(
98
110
  stream: ReadableStream<Uint8Array>,
99
111
  ): MaybePromiseLike<ScrcpyVideoStream> {
100
- return parseVideoStreamMetadata(this.value, stream);
112
+ return parseVideoStreamMetadata(stream, this.value.sendDeviceMeta);
101
113
  }
102
114
 
103
115
  createMediaStreamTransformer(): TransformStream<
104
116
  Uint8Array,
105
- ScrcpyMediaStreamPacket
117
+ ScrcpyVideoStreamPacket
106
118
  > {
107
119
  return createMediaStreamTransformer(this.value);
108
120
  }
@@ -110,24 +122,46 @@ export class ScrcpyOptions1_23
110
122
  serializeInjectTouchControlMessage(
111
123
  message: ScrcpyInjectTouchControlMessage,
112
124
  ): Uint8Array {
125
+ if (!this.value.control) {
126
+ throw new Error("control is disabled");
127
+ }
113
128
  return serializeInjectTouchControlMessage(message);
114
129
  }
115
130
 
116
131
  serializeBackOrScreenOnControlMessage(
117
132
  message: ScrcpyBackOrScreenOnControlMessage,
118
133
  ): Uint8Array | undefined {
134
+ if (!this.value.control) {
135
+ throw new Error("control is disabled");
136
+ }
119
137
  return serializeBackOrScreenOnControlMessage(message);
120
138
  }
121
139
 
122
140
  serializeSetClipboardControlMessage(
123
141
  message: ScrcpySetClipboardControlMessage,
124
142
  ): Uint8Array | [Uint8Array, Promise<void>] {
125
- return this.#ackClipboardHandler!.serializeSetClipboardControlMessage(
143
+ if (!this.value.control) {
144
+ throw new Error("control is disabled");
145
+ }
146
+ return serializeSetClipboardControlMessage(
126
147
  message,
148
+ this.#ackClipboardHandler,
127
149
  );
128
150
  }
129
151
 
152
+ serializeSetDisplayPowerControlMessage(
153
+ message: ScrcpySetDisplayPowerControlMessage,
154
+ ): Uint8Array {
155
+ if (!this.value.control) {
156
+ throw new Error("control is disabled");
157
+ }
158
+ return serializeSetDisplayPowerControlMessage(message);
159
+ }
160
+
130
161
  createScrollController(): ScrcpyScrollController {
162
+ if (!this.value.control) {
163
+ throw new Error("control is disabled");
164
+ }
131
165
  return createScrollController();
132
166
  }
133
167
  }
@@ -136,4 +170,9 @@ type Init_ = Init;
136
170
 
137
171
  export namespace ScrcpyOptions1_23 {
138
172
  export type Init = Init_;
173
+
174
+ export type Value<TInit extends Init> = ComputeOptionTypes<
175
+ TInit,
176
+ typeof Defaults
177
+ >;
139
178
  }
@@ -1,8 +1,7 @@
1
1
  import type { Init } from "./init.js";
2
2
  import { PrevImpl } from "./prev.js";
3
3
 
4
- export const Defaults = /* #__PURE__ */ (() =>
5
- ({
6
- ...PrevImpl.Defaults,
7
- powerOn: true,
8
- }) as const satisfies Required<Init>)();
4
+ export const Defaults = {
5
+ ...PrevImpl.Defaults,
6
+ powerOn: true,
7
+ } as const satisfies Required<Init>;
@@ -1,5 +1,5 @@
1
1
  import type { PrevImpl } from "./prev.js";
2
2
 
3
3
  export interface Init extends PrevImpl.Init {
4
- powerOn?: boolean;
4
+ powerOn?: boolean | undefined;
5
5
  }
@@ -2,26 +2,28 @@ import type { MaybePromiseLike } from "@yume-chan/async";
2
2
  import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
3
3
 
4
4
  import type {
5
- ScrcpyControlMessageType,
5
+ MapBoolean,
6
6
  ScrcpyDisplay,
7
7
  ScrcpyEncoder,
8
- ScrcpyMediaStreamPacket,
9
8
  ScrcpyOptions,
10
9
  ScrcpyOptionsListEncoders,
11
10
  ScrcpyScrollController,
12
11
  ScrcpyVideoStream,
12
+ ScrcpyVideoStreamPacket,
13
13
  } from "../base/index.js";
14
14
  import { ScrcpyDeviceMessageParsers } from "../base/index.js";
15
15
  import type {
16
16
  ScrcpyBackOrScreenOnControlMessage,
17
17
  ScrcpyInjectTouchControlMessage,
18
18
  ScrcpySetClipboardControlMessage,
19
+ ScrcpySetDisplayPowerControlMessage,
19
20
  } from "../latest.js";
20
21
 
21
- import type { Init } from "./impl/index.js";
22
+ import type { ComputeOptionTypes, Init } from "./impl/index.js";
22
23
  import {
23
24
  AckClipboardHandler,
24
25
  ClipboardStream,
26
+ computeOptionValues,
25
27
  ControlMessageTypes,
26
28
  createMediaStreamTransformer,
27
29
  createScrollController,
@@ -33,24 +35,32 @@ import {
33
35
  serialize,
34
36
  serializeBackOrScreenOnControlMessage,
35
37
  serializeInjectTouchControlMessage,
38
+ serializeSetClipboardControlMessage,
39
+ serializeSetDisplayPowerControlMessage,
36
40
  setListDisplays,
37
41
  setListEncoders,
38
42
  } from "./impl/index.js";
39
43
 
40
- export class ScrcpyOptions1_24
41
- implements ScrcpyOptions<Init>, ScrcpyOptionsListEncoders
44
+ export class ScrcpyOptions1_24<TInit extends Init = Init>
45
+ implements
46
+ ScrcpyOptions<ScrcpyOptions1_24.Value<TInit>>,
47
+ ScrcpyOptionsListEncoders
42
48
  {
43
49
  static readonly Defaults = Defaults;
44
50
 
45
- readonly value: Required<Init>;
51
+ readonly value: ScrcpyOptions1_24.Value<TInit>;
46
52
 
47
- get controlMessageTypes(): readonly ScrcpyControlMessageType[] {
53
+ get controlMessageTypes(): typeof ControlMessageTypes {
48
54
  return ControlMessageTypes;
49
55
  }
50
56
 
51
57
  #clipboard: ClipboardStream | undefined;
52
- get clipboard(): ReadableStream<string> | undefined {
53
- return this.#clipboard;
58
+ get clipboard(): MapBoolean<
59
+ this["value"]["clipboardAutosync"],
60
+ ReadableStream<string>,
61
+ undefined
62
+ > {
63
+ return this.#clipboard as never;
54
64
  }
55
65
 
56
66
  #ackClipboardHandler: AckClipboardHandler | undefined;
@@ -60,13 +70,15 @@ export class ScrcpyOptions1_24
60
70
  return this.#deviceMessageParsers;
61
71
  }
62
72
 
63
- constructor(init: Init) {
64
- this.value = { ...Defaults, ...init };
73
+ constructor(init: TInit) {
74
+ this.value = computeOptionValues(init, Defaults);
65
75
 
66
- if (this.value.control && this.value.clipboardAutosync) {
67
- this.#clipboard = this.#deviceMessageParsers.add(
68
- new ClipboardStream(),
69
- );
76
+ if (this.value.control) {
77
+ if (this.value.clipboardAutosync) {
78
+ this.#clipboard = this.#deviceMessageParsers.add(
79
+ new ClipboardStream(),
80
+ );
81
+ }
70
82
 
71
83
  this.#ackClipboardHandler = this.#deviceMessageParsers.add(
72
84
  new AckClipboardHandler(),
@@ -97,12 +109,12 @@ export class ScrcpyOptions1_24
97
109
  parseVideoStreamMetadata(
98
110
  stream: ReadableStream<Uint8Array>,
99
111
  ): MaybePromiseLike<ScrcpyVideoStream> {
100
- return parseVideoStreamMetadata(this.value, stream);
112
+ return parseVideoStreamMetadata(stream, this.value.sendDeviceMeta);
101
113
  }
102
114
 
103
115
  createMediaStreamTransformer(): TransformStream<
104
116
  Uint8Array,
105
- ScrcpyMediaStreamPacket
117
+ ScrcpyVideoStreamPacket
106
118
  > {
107
119
  return createMediaStreamTransformer(this.value);
108
120
  }
@@ -110,24 +122,46 @@ export class ScrcpyOptions1_24
110
122
  serializeInjectTouchControlMessage(
111
123
  message: ScrcpyInjectTouchControlMessage,
112
124
  ): Uint8Array {
125
+ if (!this.value.control) {
126
+ throw new Error("control is disabled");
127
+ }
113
128
  return serializeInjectTouchControlMessage(message);
114
129
  }
115
130
 
116
131
  serializeBackOrScreenOnControlMessage(
117
132
  message: ScrcpyBackOrScreenOnControlMessage,
118
133
  ): Uint8Array | undefined {
134
+ if (!this.value.control) {
135
+ throw new Error("control is disabled");
136
+ }
119
137
  return serializeBackOrScreenOnControlMessage(message);
120
138
  }
121
139
 
122
140
  serializeSetClipboardControlMessage(
123
141
  message: ScrcpySetClipboardControlMessage,
124
142
  ): Uint8Array | [Uint8Array, Promise<void>] {
125
- return this.#ackClipboardHandler!.serializeSetClipboardControlMessage(
143
+ if (!this.value.control) {
144
+ throw new Error("control is disabled");
145
+ }
146
+ return serializeSetClipboardControlMessage(
126
147
  message,
148
+ this.#ackClipboardHandler,
127
149
  );
128
150
  }
129
151
 
152
+ serializeSetDisplayPowerControlMessage(
153
+ message: ScrcpySetDisplayPowerControlMessage,
154
+ ): Uint8Array {
155
+ if (!this.value.control) {
156
+ throw new Error("control is disabled");
157
+ }
158
+ return serializeSetDisplayPowerControlMessage(message);
159
+ }
160
+
130
161
  createScrollController(): ScrcpyScrollController {
162
+ if (!this.value.control) {
163
+ throw new Error("control is disabled");
164
+ }
131
165
  return createScrollController();
132
166
  }
133
167
  }
@@ -136,4 +170,9 @@ type Init_ = Init;
136
170
 
137
171
  export namespace ScrcpyOptions1_24 {
138
172
  export type Init = Init_;
173
+
174
+ export type Value<TInit extends Init> = ComputeOptionTypes<
175
+ TInit,
176
+ typeof Defaults
177
+ >;
139
178
  }
@@ -3,7 +3,6 @@ import type { Field, StructInit } from "@yume-chan/struct";
3
3
  import { field, struct, u16, u32, u8 } from "@yume-chan/struct";
4
4
 
5
5
  import type { ScrcpyScrollController } from "../../base/index.js";
6
- import { ScrcpyControlMessageType } from "../../base/index.js";
7
6
  import type { ScrcpyInjectScrollControlMessage } from "../../latest.js";
8
7
  import { clamp } from "../../utils/index.js";
9
8
 
@@ -24,20 +23,20 @@ export const SignedFloat: Field<number, never, never> = field(
24
23
  },
25
24
  );
26
25
 
27
- export const InjectScrollControlMessage = /* #__PURE__ */ (() =>
28
- struct(
29
- {
30
- type: u8(ScrcpyControlMessageType.InjectScroll),
31
- pointerX: u32,
32
- pointerY: u32,
33
- videoWidth: u16,
34
- videoHeight: u16,
35
- scrollX: SignedFloat,
36
- scrollY: SignedFloat,
37
- buttons: u32,
38
- },
39
- { littleEndian: false },
40
- ))();
26
+ export const InjectScrollControlMessage = struct(
27
+ {
28
+ // value of `type` can change between versions
29
+ type: u8,
30
+ pointerX: u32,
31
+ pointerY: u32,
32
+ videoWidth: u16,
33
+ videoHeight: u16,
34
+ scrollX: SignedFloat,
35
+ scrollY: SignedFloat,
36
+ buttons: u32,
37
+ },
38
+ { littleEndian: false },
39
+ );
41
40
 
42
41
  export type InjectScrollControlMessage = StructInit<
43
42
  typeof InjectScrollControlMessage
@@ -2,26 +2,28 @@ import type { MaybePromiseLike } from "@yume-chan/async";
2
2
  import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
3
3
 
4
4
  import type {
5
- ScrcpyControlMessageType,
5
+ MapBoolean,
6
6
  ScrcpyDisplay,
7
7
  ScrcpyEncoder,
8
- ScrcpyMediaStreamPacket,
9
8
  ScrcpyOptions,
10
9
  ScrcpyOptionsListEncoders,
11
10
  ScrcpyScrollController,
12
11
  ScrcpyVideoStream,
12
+ ScrcpyVideoStreamPacket,
13
13
  } from "../base/index.js";
14
14
  import { ScrcpyDeviceMessageParsers } from "../base/index.js";
15
15
  import type {
16
16
  ScrcpyBackOrScreenOnControlMessage,
17
17
  ScrcpyInjectTouchControlMessage,
18
18
  ScrcpySetClipboardControlMessage,
19
+ ScrcpySetDisplayPowerControlMessage,
19
20
  } from "../latest.js";
20
21
 
21
- import type { Init } from "./impl/index.js";
22
+ import type { ComputeOptionTypes, Init } from "./impl/index.js";
22
23
  import {
23
24
  AckClipboardHandler,
24
25
  ClipboardStream,
26
+ computeOptionValues,
25
27
  ControlMessageTypes,
26
28
  createMediaStreamTransformer,
27
29
  createScrollController,
@@ -33,24 +35,32 @@ import {
33
35
  serialize,
34
36
  serializeBackOrScreenOnControlMessage,
35
37
  serializeInjectTouchControlMessage,
38
+ serializeSetClipboardControlMessage,
39
+ serializeSetDisplayPowerControlMessage,
36
40
  setListDisplays,
37
41
  setListEncoders,
38
42
  } from "./impl/index.js";
39
43
 
40
- export class ScrcpyOptions1_25
41
- implements ScrcpyOptions<Init>, ScrcpyOptionsListEncoders
44
+ export class ScrcpyOptions1_25<TInit extends Init = Init>
45
+ implements
46
+ ScrcpyOptions<ScrcpyOptions1_25.Value<TInit>>,
47
+ ScrcpyOptionsListEncoders
42
48
  {
43
49
  static readonly Defaults = Defaults;
44
50
 
45
- readonly value: Required<Init>;
51
+ readonly value: ScrcpyOptions1_25.Value<TInit>;
46
52
 
47
- get controlMessageTypes(): readonly ScrcpyControlMessageType[] {
53
+ get controlMessageTypes(): typeof ControlMessageTypes {
48
54
  return ControlMessageTypes;
49
55
  }
50
56
 
51
57
  #clipboard: ClipboardStream | undefined;
52
- get clipboard(): ReadableStream<string> | undefined {
53
- return this.#clipboard;
58
+ get clipboard(): MapBoolean<
59
+ this["value"]["clipboardAutosync"],
60
+ ReadableStream<string>,
61
+ undefined
62
+ > {
63
+ return this.#clipboard as never;
54
64
  }
55
65
 
56
66
  #ackClipboardHandler: AckClipboardHandler | undefined;
@@ -60,13 +70,15 @@ export class ScrcpyOptions1_25
60
70
  return this.#deviceMessageParsers;
61
71
  }
62
72
 
63
- constructor(init: Init) {
64
- this.value = { ...Defaults, ...init };
73
+ constructor(init: TInit) {
74
+ this.value = computeOptionValues(init, Defaults);
65
75
 
66
- if (this.value.control && this.value.clipboardAutosync) {
67
- this.#clipboard = this.#deviceMessageParsers.add(
68
- new ClipboardStream(),
69
- );
76
+ if (this.value.control) {
77
+ if (this.value.clipboardAutosync) {
78
+ this.#clipboard = this.#deviceMessageParsers.add(
79
+ new ClipboardStream(),
80
+ );
81
+ }
70
82
 
71
83
  this.#ackClipboardHandler = this.#deviceMessageParsers.add(
72
84
  new AckClipboardHandler(),
@@ -97,12 +109,12 @@ export class ScrcpyOptions1_25
97
109
  parseVideoStreamMetadata(
98
110
  stream: ReadableStream<Uint8Array>,
99
111
  ): MaybePromiseLike<ScrcpyVideoStream> {
100
- return parseVideoStreamMetadata(this.value, stream);
112
+ return parseVideoStreamMetadata(stream, this.value.sendDeviceMeta);
101
113
  }
102
114
 
103
115
  createMediaStreamTransformer(): TransformStream<
104
116
  Uint8Array,
105
- ScrcpyMediaStreamPacket
117
+ ScrcpyVideoStreamPacket
106
118
  > {
107
119
  return createMediaStreamTransformer(this.value);
108
120
  }
@@ -110,24 +122,46 @@ export class ScrcpyOptions1_25
110
122
  serializeInjectTouchControlMessage(
111
123
  message: ScrcpyInjectTouchControlMessage,
112
124
  ): Uint8Array {
125
+ if (!this.value.control) {
126
+ throw new Error("control is disabled");
127
+ }
113
128
  return serializeInjectTouchControlMessage(message);
114
129
  }
115
130
 
116
131
  serializeBackOrScreenOnControlMessage(
117
132
  message: ScrcpyBackOrScreenOnControlMessage,
118
133
  ): Uint8Array | undefined {
134
+ if (!this.value.control) {
135
+ throw new Error("control is disabled");
136
+ }
119
137
  return serializeBackOrScreenOnControlMessage(message);
120
138
  }
121
139
 
122
140
  serializeSetClipboardControlMessage(
123
141
  message: ScrcpySetClipboardControlMessage,
124
142
  ): Uint8Array | [Uint8Array, Promise<void>] {
125
- return this.#ackClipboardHandler!.serializeSetClipboardControlMessage(
143
+ if (!this.value.control) {
144
+ throw new Error("control is disabled");
145
+ }
146
+ return serializeSetClipboardControlMessage(
126
147
  message,
148
+ this.#ackClipboardHandler,
127
149
  );
128
150
  }
129
151
 
152
+ serializeSetDisplayPowerControlMessage(
153
+ message: ScrcpySetDisplayPowerControlMessage,
154
+ ): Uint8Array {
155
+ if (!this.value.control) {
156
+ throw new Error("control is disabled");
157
+ }
158
+ return serializeSetDisplayPowerControlMessage(message);
159
+ }
160
+
130
161
  createScrollController(): ScrcpyScrollController {
162
+ if (!this.value.control) {
163
+ throw new Error("control is disabled");
164
+ }
131
165
  return createScrollController();
132
166
  }
133
167
  }
@@ -136,4 +170,9 @@ type Init_ = Init;
136
170
 
137
171
  export namespace ScrcpyOptions1_25 {
138
172
  export type Init = Init_;
173
+
174
+ export type Value<TInit extends Init> = ComputeOptionTypes<
175
+ TInit,
176
+ typeof Defaults
177
+ >;
139
178
  }
@@ -1,11 +1,12 @@
1
- import { omit } from "../../utils/index.js";
1
+ import { omit } from "../../utils/omit.js";
2
2
 
3
3
  import type { Init } from "./init.js";
4
4
  import { PrevImpl } from "./prev.js";
5
5
 
6
- export const Defaults = /* #__PURE__ */ (() =>
6
+ export const Defaults = /* #__PURE__*/ (() =>
7
7
  ({
8
8
  ...omit(PrevImpl.Defaults, "bitRate", "codecOptions", "encoderName"),
9
+
9
10
  scid: undefined,
10
11
 
11
12
  videoCodec: "h264",
@@ -8,6 +8,10 @@ export {
8
8
  export * from "./parse-audio-stream-metadata.js";
9
9
  export { parseDisplay } from "./parse-display.js";
10
10
  export { parseEncoder } from "./parse-encoder.js";
11
- export { parseVideoStreamMetadata } from "./parse-video-stream-metadata.js";
11
+ export {
12
+ parseVideoCodecOption,
13
+ parseVideoStreamMetadata,
14
+ parseVideoStreamMetadataAsync,
15
+ } from "./parse-video-stream-metadata.js";
12
16
  export { setListDisplays } from "./set-list-display.js";
13
17
  export { setListEncoders } from "./set-list-encoder.js";
@@ -24,22 +24,24 @@ export class InstanceId implements ScrcpyOptionValue {
24
24
  }
25
25
  }
26
26
 
27
- export interface Init
28
- extends Omit<PrevImpl.Init, "bitRate" | "codecOptions" | "encoderName"> {
27
+ export interface Init extends Omit<
28
+ PrevImpl.Init,
29
+ "bitRate" | "codecOptions" | "encoderName"
30
+ > {
29
31
  scid?: InstanceId | string | undefined;
30
32
 
31
- videoCodec?: "h264" | "h265" | "av1";
32
- videoBitRate?: number;
33
+ videoCodec?: "h264" | "h265" | "av1" | undefined;
34
+ videoBitRate?: number | undefined;
33
35
  videoCodecOptions?: PrevImpl.CodecOptions | string | undefined;
34
36
  videoEncoder?: string | undefined;
35
37
 
36
- audio?: boolean;
37
- audioCodec?: "raw" | "opus" | "aac";
38
- audioBitRate?: number;
38
+ audio?: boolean | undefined;
39
+ audioCodec?: "raw" | "opus" | "aac" | undefined;
40
+ audioBitRate?: number | undefined;
39
41
  audioCodecOptions?: PrevImpl.CodecOptions | string | undefined;
40
42
  audioEncoder?: string | undefined;
41
43
 
42
- listEncoders?: boolean;
43
- listDisplays?: boolean;
44
- sendCodecMeta?: boolean;
44
+ listEncoders?: boolean | undefined;
45
+ listDisplays?: boolean | undefined;
46
+ sendCodecMeta?: boolean | undefined;
45
47
  }
@@ -2,27 +2,26 @@ import type { StructInit } from "@yume-chan/struct";
2
2
  import { struct, u16, u32, u64, u8 } from "@yume-chan/struct";
3
3
 
4
4
  import type { AndroidMotionEventAction } from "../../android/motion-event.js";
5
- import { ScrcpyControlMessageType } from "../../base/control-message-type.js";
6
5
  import type { ScrcpyInjectTouchControlMessage } from "../../latest.js";
7
6
 
8
7
  import { PrevImpl } from "./prev.js";
9
8
 
10
- export const InjectTouchControlMessage = /* #__PURE__ */ (() =>
11
- struct(
12
- {
13
- type: u8(ScrcpyControlMessageType.InjectTouch),
14
- action: u8<AndroidMotionEventAction>(),
15
- pointerId: u64,
16
- pointerX: u32,
17
- pointerY: u32,
18
- videoWidth: u16,
19
- videoHeight: u16,
20
- pressure: PrevImpl.UnsignedFloat,
21
- actionButton: u32,
22
- buttons: u32,
23
- },
24
- { littleEndian: false },
25
- ))();
9
+ export const InjectTouchControlMessage = struct(
10
+ {
11
+ // value of `type` can change between versions
12
+ type: u8,
13
+ action: u8<AndroidMotionEventAction>(),
14
+ pointerId: u64,
15
+ pointerX: u32,
16
+ pointerY: u32,
17
+ videoWidth: u16,
18
+ videoHeight: u16,
19
+ pressure: PrevImpl.UnsignedFloat,
20
+ actionButton: u32,
21
+ buttons: u32,
22
+ },
23
+ { littleEndian: false },
24
+ );
26
25
 
27
26
  export type InjectTouchControlMessage = StructInit<
28
27
  typeof InjectTouchControlMessage