@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
@@ -0,0 +1,106 @@
1
+ /// <reference types="node" />
2
+
3
+ import { writeFileSync } from "node:fs";
4
+ import { format } from "prettier";
5
+
6
+ let content = `
7
+ // Generated by generate-type-tests.js. Do not edit manually.
8
+
9
+ import type {ReadableStream} from "@yume-chan/stream-extra";
10
+
11
+ import type {ScrcpyOptions2_2} from "./options.js";
12
+
13
+ type Equal<X, Y> =
14
+ (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2
15
+ ? true
16
+ : false;
17
+
18
+ function expectTrue<T extends true>(value?: T) { void value; }
19
+
20
+ `;
21
+
22
+ const controlValues = ["true", "false", "undefined"];
23
+ const videoSourceValues = [`"display"`, `"camera"`, "undefined"];
24
+
25
+ /**
26
+ * @param {string[]} values
27
+ */
28
+ function* powerSetExceptEmpty(values) {
29
+ /**
30
+ * @param {number} start
31
+ * @param {string[]} combo
32
+ * @returns {Generator<string[], void, unknown>}
33
+ */
34
+ function* backtrack(start, combo) {
35
+ if (combo.length > 0) {
36
+ yield [...combo];
37
+ }
38
+
39
+ for (let i = start; i < values.length; i++) {
40
+ combo.push(values[i]);
41
+ yield* backtrack(i + 1, combo);
42
+ combo.pop();
43
+ }
44
+ }
45
+
46
+ yield* backtrack(0, []);
47
+ }
48
+
49
+ /**
50
+ *
51
+ * @param {string[]} control
52
+ * @param {string[]} videoSource
53
+ * @param {string} expectedType
54
+ * @returns {string}
55
+ */
56
+ function generateCase(control, videoSource, expectedType) {
57
+ return `
58
+ expectTrue<Equal<ScrcpyOptions2_2<{control:${control.join("|")}, videoSource:${videoSource.join("|")}}>["clipboard"], ${expectedType}>>();
59
+ `.trim();
60
+ }
61
+
62
+ for (const control of powerSetExceptEmpty(controlValues)) {
63
+ content += `\n// #region control: ${control.join(" | ")}\n`;
64
+
65
+ for (const videoSource of powerSetExceptEmpty(videoSourceValues)) {
66
+ const willDisableControl =
67
+ videoSource.length === 1 && videoSource[0] === `"camera"`;
68
+ if (willDisableControl) {
69
+ content += generateCase(control, videoSource, "undefined");
70
+ continue;
71
+ }
72
+
73
+ const controlDefinitelyDisabled =
74
+ control.length === 1 && control[0] === "false";
75
+
76
+ const mayDisableControl = videoSource.includes(`"camera"`);
77
+ if (mayDisableControl) {
78
+ content += generateCase(
79
+ control,
80
+ videoSource,
81
+ controlDefinitelyDisabled
82
+ ? "undefined"
83
+ : "ReadableStream<string> | undefined",
84
+ );
85
+ continue;
86
+ }
87
+
88
+ const controlMaybeDisabled = control.includes("false");
89
+
90
+ content += generateCase(
91
+ control,
92
+ videoSource,
93
+ controlDefinitelyDisabled
94
+ ? "undefined"
95
+ : controlMaybeDisabled
96
+ ? "ReadableStream<string> | undefined"
97
+ : "ReadableStream<string>",
98
+ );
99
+ }
100
+
101
+ content += `\n// #endregion\n`;
102
+ }
103
+
104
+ content = await format(content, { parser: "typescript", tabWidth: 4 });
105
+
106
+ writeFileSync(new URL("./type-tests.spec.ts", import.meta.url), content);
@@ -0,0 +1,44 @@
1
+ import type { ComputeOptionTypes as ComputeOptionTypes1_15 } from "../../1_15/impl/index.js";
2
+ import { computeOptionValues as computeOptionValues1_15 } from "../../1_15/impl/index.js";
3
+
4
+ import { PrevImpl } from "./prev.js";
5
+
6
+ // Distributive Conditional Types
7
+ // (https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#distributive-conditional-types)
8
+ type ComputeControl<TVideoSource, TControl> = TVideoSource extends "camera"
9
+ ? false
10
+ : TControl;
11
+
12
+ type OverrideControl<T> = Omit<T, "control"> & {
13
+ control: ComputeControl<
14
+ T extends { videoSource: infer TVideoSource } ? TVideoSource : never,
15
+ T extends { control: infer TControl } ? TControl : never
16
+ >;
17
+ };
18
+
19
+ export type ComputeOptionTypes<
20
+ T extends object,
21
+ TDefaults extends object,
22
+ > = PrevImpl.OverrideClipboardAutosync<
23
+ OverrideControl<ComputeOptionTypes1_15<T, TDefaults>>
24
+ >;
25
+
26
+ export function computeOptionValues<
27
+ T extends {
28
+ videoSource?: string | undefined;
29
+ control?: boolean | undefined;
30
+ clipboardAutosync?: boolean | undefined;
31
+ },
32
+ TDefaults extends {
33
+ videoSource: string;
34
+ control: boolean;
35
+ clipboardAutosync: boolean;
36
+ },
37
+ >(options: T, defaults: TDefaults): ComputeOptionTypes<T, TDefaults> {
38
+ const value = computeOptionValues1_15(options, defaults);
39
+ if (value.videoSource !== "display") {
40
+ value.control = false as never;
41
+ }
42
+ PrevImpl.overrideClipboardAutosync(value as never);
43
+ return value as never;
44
+ }
@@ -1,17 +1,16 @@
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
- videoSource: "display",
8
- displayId: 0,
9
- cameraId: undefined,
10
- cameraSize: undefined,
11
- cameraFacing: undefined,
12
- cameraAr: undefined,
13
- cameraFps: undefined,
14
- cameraHighSpeed: false,
15
- listCameras: false,
16
- listCameraSizes: false,
17
- }) as const satisfies Required<Init<true>>)();
4
+ export const Defaults = {
5
+ ...PrevImpl.Defaults,
6
+ videoSource: "display",
7
+ displayId: 0,
8
+ cameraId: undefined,
9
+ cameraSize: undefined,
10
+ cameraFacing: undefined,
11
+ cameraAr: undefined,
12
+ cameraFps: undefined,
13
+ cameraHighSpeed: false,
14
+ listCameras: false,
15
+ listCameraSizes: false,
16
+ } as const satisfies Required<Init>;
@@ -1,4 +1,6 @@
1
1
  export * from "../../2_1/impl/index.js";
2
+ export { computeOptionValues } from "./compute-option-values.js";
3
+ export type { ComputeOptionTypes } from "./compute-option-values.js";
2
4
  export { Defaults } from "./defaults.js";
3
5
  export type { Init } from "./init.js";
4
6
  export { parseDisplay } from "./parse-display.js";
@@ -1,14 +1,14 @@
1
1
  import type { PrevImpl } from "./prev.js";
2
2
 
3
- export interface Init<TVideo extends boolean> extends PrevImpl.Init<TVideo> {
4
- videoSource?: "display" | "camera";
3
+ export interface Init extends PrevImpl.Init {
4
+ videoSource?: "display" | "camera" | undefined;
5
5
  cameraId?: string | undefined;
6
6
  cameraSize?: string | undefined;
7
7
  cameraFacing?: "front" | "back" | "external" | undefined;
8
8
  cameraAr?: string | undefined;
9
9
  cameraFps?: number | undefined;
10
- cameraHighSpeed?: boolean;
10
+ cameraHighSpeed?: boolean | undefined;
11
11
 
12
- listCameras?: boolean;
13
- listCameraSizes?: boolean;
12
+ listCameras?: boolean | undefined;
13
+ listCameraSizes?: boolean | undefined;
14
14
  }
@@ -2,56 +2,70 @@ 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
+ MapBoolean,
5
6
  ScrcpyAudioStreamMetadata,
6
- ScrcpyControlMessageType,
7
7
  ScrcpyDisplay,
8
8
  ScrcpyEncoder,
9
- ScrcpyMediaStreamPacket,
10
9
  ScrcpyOptions,
11
10
  ScrcpyOptionsListEncoders,
12
11
  ScrcpyScrollController,
13
12
  ScrcpyVideoStream,
13
+ ScrcpyVideoStreamPacket,
14
14
  } from "../base/index.js";
15
15
  import { ScrcpyDeviceMessageParsers } from "../base/index.js";
16
16
  import type {
17
17
  ScrcpyBackOrScreenOnControlMessage,
18
18
  ScrcpyInjectTouchControlMessage,
19
19
  ScrcpySetClipboardControlMessage,
20
+ ScrcpySetDisplayPowerControlMessage,
20
21
  } from "../latest.js";
21
22
 
22
- import type { Init } from "./impl/index.js";
23
+ import type { ComputeOptionTypes, Init } from "./impl/index.js";
23
24
  import {
24
25
  AckClipboardHandler,
25
26
  ClipboardStream,
27
+ computeOptionValues,
26
28
  ControlMessageTypes,
27
29
  createMediaStreamTransformer,
28
30
  createScrollController,
29
31
  Defaults,
32
+ parseAudioCodecOption,
33
+ parseAudioMetadataCodec,
30
34
  parseAudioStreamMetadata,
31
35
  parseDisplay,
32
36
  parseEncoder,
37
+ parseVideoCodecOption,
33
38
  parseVideoStreamMetadata,
39
+ parseVideoStreamMetadataAsync,
34
40
  serialize,
35
41
  serializeBackOrScreenOnControlMessage,
36
42
  serializeInjectTouchControlMessage,
43
+ serializeSetClipboardControlMessage,
44
+ serializeSetDisplayPowerControlMessage,
37
45
  setListDisplays,
38
46
  setListEncoders,
39
47
  } from "./impl/index.js";
40
48
 
41
- export class ScrcpyOptions2_2<TVideo extends boolean>
42
- implements ScrcpyOptions<Init<TVideo>>, ScrcpyOptionsListEncoders
49
+ export class ScrcpyOptions2_2<TInit extends Init = Init>
50
+ implements
51
+ ScrcpyOptions<ScrcpyOptions2_2.Value<TInit>>,
52
+ ScrcpyOptionsListEncoders
43
53
  {
44
54
  static readonly Defaults = Defaults;
45
55
 
46
- readonly value: Required<Init<TVideo>>;
56
+ readonly value: ScrcpyOptions2_2.Value<TInit>;
47
57
 
48
- get controlMessageTypes(): readonly ScrcpyControlMessageType[] {
58
+ get controlMessageTypes(): typeof ControlMessageTypes {
49
59
  return ControlMessageTypes;
50
60
  }
51
61
 
52
62
  #clipboard: ClipboardStream | undefined;
53
- get clipboard(): ReadableStream<string> | undefined {
54
- return this.#clipboard;
63
+ get clipboard(): MapBoolean<
64
+ this["value"]["clipboardAutosync"],
65
+ ReadableStream<string>,
66
+ undefined
67
+ > {
68
+ return this.#clipboard as never;
55
69
  }
56
70
 
57
71
  #ackClipboardHandler: AckClipboardHandler | undefined;
@@ -61,17 +75,15 @@ export class ScrcpyOptions2_2<TVideo extends boolean>
61
75
  return this.#deviceMessageParsers;
62
76
  }
63
77
 
64
- constructor(init: Init<TVideo>) {
65
- this.value = { ...Defaults, ...init } as never;
66
-
67
- if (this.value.videoSource === "camera") {
68
- this.value.control = false;
69
- }
78
+ constructor(init: TInit) {
79
+ this.value = computeOptionValues(init, Defaults);
70
80
 
71
- if (this.value.control && this.value.clipboardAutosync) {
72
- this.#clipboard = this.#deviceMessageParsers.add(
73
- new ClipboardStream(),
74
- );
81
+ if (this.value.control) {
82
+ if (this.value.clipboardAutosync) {
83
+ this.#clipboard = this.#deviceMessageParsers.add(
84
+ new ClipboardStream(),
85
+ );
86
+ }
75
87
 
76
88
  this.#ackClipboardHandler = this.#deviceMessageParsers.add(
77
89
  new AckClipboardHandler(),
@@ -80,7 +92,7 @@ export class ScrcpyOptions2_2<TVideo extends boolean>
80
92
  }
81
93
 
82
94
  serialize(): string[] {
83
- return serialize<Init<boolean>>(this.value, Defaults);
95
+ return serialize(this.value, Defaults);
84
96
  }
85
97
 
86
98
  setListDisplays(): void {
@@ -102,18 +114,29 @@ export class ScrcpyOptions2_2<TVideo extends boolean>
102
114
  parseVideoStreamMetadata(
103
115
  stream: ReadableStream<Uint8Array>,
104
116
  ): MaybePromiseLike<ScrcpyVideoStream> {
105
- return parseVideoStreamMetadata(this.value, stream);
117
+ return parseVideoStreamMetadata(
118
+ stream,
119
+ this.value.sendDeviceMeta,
120
+ this.value.sendCodecMeta,
121
+ parseVideoCodecOption(this.value.videoCodec),
122
+ parseVideoStreamMetadataAsync,
123
+ );
106
124
  }
107
125
 
108
126
  parseAudioStreamMetadata(
109
127
  stream: ReadableStream<Uint8Array>,
110
128
  ): MaybePromiseLike<ScrcpyAudioStreamMetadata> {
111
- return parseAudioStreamMetadata(stream, this.value);
129
+ return parseAudioStreamMetadata(
130
+ stream,
131
+ this.value.sendCodecMeta,
132
+ parseAudioMetadataCodec,
133
+ parseAudioCodecOption(this.value.audioCodec),
134
+ );
112
135
  }
113
136
 
114
137
  createMediaStreamTransformer(): TransformStream<
115
138
  Uint8Array,
116
- ScrcpyMediaStreamPacket
139
+ ScrcpyVideoStreamPacket
117
140
  > {
118
141
  return createMediaStreamTransformer(this.value);
119
142
  }
@@ -121,30 +144,57 @@ export class ScrcpyOptions2_2<TVideo extends boolean>
121
144
  serializeInjectTouchControlMessage(
122
145
  message: ScrcpyInjectTouchControlMessage,
123
146
  ): Uint8Array {
147
+ if (!this.value.control) {
148
+ throw new Error("control is disabled");
149
+ }
124
150
  return serializeInjectTouchControlMessage(message);
125
151
  }
126
152
 
127
153
  serializeBackOrScreenOnControlMessage(
128
154
  message: ScrcpyBackOrScreenOnControlMessage,
129
155
  ): Uint8Array | undefined {
156
+ if (!this.value.control) {
157
+ throw new Error("control is disabled");
158
+ }
130
159
  return serializeBackOrScreenOnControlMessage(message);
131
160
  }
132
161
 
133
162
  serializeSetClipboardControlMessage(
134
163
  message: ScrcpySetClipboardControlMessage,
135
164
  ): Uint8Array | [Uint8Array, Promise<void>] {
136
- return this.#ackClipboardHandler!.serializeSetClipboardControlMessage(
165
+ if (!this.value.control) {
166
+ throw new Error("control is disabled");
167
+ }
168
+ return serializeSetClipboardControlMessage(
137
169
  message,
170
+ this.#ackClipboardHandler,
138
171
  );
139
172
  }
140
173
 
174
+ serializeSetDisplayPowerControlMessage(
175
+ message: ScrcpySetDisplayPowerControlMessage,
176
+ ): Uint8Array {
177
+ if (!this.value.control) {
178
+ throw new Error("control is disabled");
179
+ }
180
+ return serializeSetDisplayPowerControlMessage(message);
181
+ }
182
+
141
183
  createScrollController(): ScrcpyScrollController {
184
+ if (!this.value.control) {
185
+ throw new Error("control is disabled");
186
+ }
142
187
  return createScrollController();
143
188
  }
144
189
  }
145
190
 
146
- type Init_<TVideo extends boolean> = Init<TVideo>;
191
+ type Init_ = Init;
147
192
 
148
193
  export namespace ScrcpyOptions2_2 {
149
- export type Init<TVideo extends boolean = boolean> = Init_<TVideo>;
194
+ export type Init = Init_;
195
+
196
+ export type Value<TInit extends Init> = ComputeOptionTypes<
197
+ TInit,
198
+ typeof Defaults
199
+ >;
150
200
  }
@@ -1,2 +1,6 @@
1
1
  export * from "../../2_2/impl/index.js";
2
2
  export type { Init } from "./init.js";
3
+ export {
4
+ parseAudioCodecOption,
5
+ parseAudioMetadataCodec,
6
+ } from "./parse-audio-stream-metadata.js";
@@ -1,6 +1,5 @@
1
1
  import type { PrevImpl } from "./prev.js";
2
2
 
3
- export interface Init<TVideo extends boolean>
4
- extends Omit<PrevImpl.Init<TVideo>, "audioCodec"> {
5
- audioCodec?: PrevImpl.Init<TVideo>["audioCodec"] | "flac";
3
+ export interface Init extends Omit<PrevImpl.Init, "audioCodec"> {
4
+ audioCodec?: PrevImpl.Init["audioCodec"] | "flac";
6
5
  }
@@ -0,0 +1,36 @@
1
+ import { ScrcpyAudioCodec } from "../../base/index.js";
2
+
3
+ import type { Init } from "./init.js";
4
+
5
+ export function parseAudioMetadataCodec(codec: number): ScrcpyAudioCodec {
6
+ switch (codec) {
7
+ case ScrcpyAudioCodec.Raw.metadataValue:
8
+ return ScrcpyAudioCodec.Raw;
9
+ case ScrcpyAudioCodec.Opus.metadataValue:
10
+ return ScrcpyAudioCodec.Opus;
11
+ case ScrcpyAudioCodec.Aac.metadataValue:
12
+ return ScrcpyAudioCodec.Aac;
13
+ case ScrcpyAudioCodec.Flac.metadataValue:
14
+ return ScrcpyAudioCodec.Flac;
15
+ default:
16
+ throw new Error(`Unknown audio codec metadata value: ${codec}`);
17
+ }
18
+ }
19
+
20
+ export function parseAudioCodecOption(
21
+ audioCodec: Exclude<Init["audioCodec"], undefined>,
22
+ ): ScrcpyAudioCodec {
23
+ switch (audioCodec) {
24
+ case "raw":
25
+ return ScrcpyAudioCodec.Raw;
26
+ case "opus":
27
+ return ScrcpyAudioCodec.Opus;
28
+ case "aac":
29
+ return ScrcpyAudioCodec.Aac;
30
+ case "flac":
31
+ return ScrcpyAudioCodec.Flac;
32
+ default:
33
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
34
+ throw new Error(`Unknown audio codec: ${audioCodec}`);
35
+ }
36
+ }
@@ -2,56 +2,70 @@ 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
+ MapBoolean,
5
6
  ScrcpyAudioStreamMetadata,
6
- ScrcpyControlMessageType,
7
7
  ScrcpyDisplay,
8
8
  ScrcpyEncoder,
9
- ScrcpyMediaStreamPacket,
10
9
  ScrcpyOptions,
11
10
  ScrcpyOptionsListEncoders,
12
11
  ScrcpyScrollController,
13
12
  ScrcpyVideoStream,
13
+ ScrcpyVideoStreamPacket,
14
14
  } from "../base/index.js";
15
15
  import { ScrcpyDeviceMessageParsers } from "../base/index.js";
16
16
  import type {
17
17
  ScrcpyBackOrScreenOnControlMessage,
18
18
  ScrcpyInjectTouchControlMessage,
19
19
  ScrcpySetClipboardControlMessage,
20
+ ScrcpySetDisplayPowerControlMessage,
20
21
  } from "../latest.js";
21
22
 
22
- import type { Init } from "./impl/index.js";
23
+ import type { ComputeOptionTypes, Init } from "./impl/index.js";
23
24
  import {
24
25
  AckClipboardHandler,
25
26
  ClipboardStream,
27
+ computeOptionValues,
26
28
  ControlMessageTypes,
27
29
  createMediaStreamTransformer,
28
30
  createScrollController,
29
31
  Defaults,
32
+ parseAudioCodecOption,
33
+ parseAudioMetadataCodec,
30
34
  parseAudioStreamMetadata,
31
35
  parseDisplay,
32
36
  parseEncoder,
37
+ parseVideoCodecOption,
33
38
  parseVideoStreamMetadata,
39
+ parseVideoStreamMetadataAsync,
34
40
  serialize,
35
41
  serializeBackOrScreenOnControlMessage,
36
42
  serializeInjectTouchControlMessage,
43
+ serializeSetClipboardControlMessage,
44
+ serializeSetDisplayPowerControlMessage,
37
45
  setListDisplays,
38
46
  setListEncoders,
39
47
  } from "./impl/index.js";
40
48
 
41
- export class ScrcpyOptions2_3<TVideo extends boolean>
42
- implements ScrcpyOptions<Init<TVideo>>, ScrcpyOptionsListEncoders
49
+ export class ScrcpyOptions2_3<TInit extends Init = Init>
50
+ implements
51
+ ScrcpyOptions<ScrcpyOptions2_3.Value<TInit>>,
52
+ ScrcpyOptionsListEncoders
43
53
  {
44
54
  static readonly Defaults = Defaults;
45
55
 
46
- readonly value: Required<Init<TVideo>>;
56
+ readonly value: ScrcpyOptions2_3.Value<TInit>;
47
57
 
48
- get controlMessageTypes(): readonly ScrcpyControlMessageType[] {
58
+ get controlMessageTypes(): typeof ControlMessageTypes {
49
59
  return ControlMessageTypes;
50
60
  }
51
61
 
52
62
  #clipboard: ClipboardStream | undefined;
53
- get clipboard(): ReadableStream<string> | undefined {
54
- return this.#clipboard;
63
+ get clipboard(): MapBoolean<
64
+ this["value"]["clipboardAutosync"],
65
+ ReadableStream<string>,
66
+ undefined
67
+ > {
68
+ return this.#clipboard as never;
55
69
  }
56
70
 
57
71
  #ackClipboardHandler: AckClipboardHandler | undefined;
@@ -61,17 +75,15 @@ export class ScrcpyOptions2_3<TVideo extends boolean>
61
75
  return this.#deviceMessageParsers;
62
76
  }
63
77
 
64
- constructor(init: Init<TVideo>) {
65
- this.value = { ...Defaults, ...init } as never;
66
-
67
- if (this.value.videoSource === "camera") {
68
- this.value.control = false;
69
- }
78
+ constructor(init: TInit) {
79
+ this.value = computeOptionValues(init, Defaults);
70
80
 
71
- if (this.value.control && this.value.clipboardAutosync) {
72
- this.#clipboard = this.#deviceMessageParsers.add(
73
- new ClipboardStream(),
74
- );
81
+ if (this.value.control) {
82
+ if (this.value.clipboardAutosync) {
83
+ this.#clipboard = this.#deviceMessageParsers.add(
84
+ new ClipboardStream(),
85
+ );
86
+ }
75
87
 
76
88
  this.#ackClipboardHandler = this.#deviceMessageParsers.add(
77
89
  new AckClipboardHandler(),
@@ -80,7 +92,7 @@ export class ScrcpyOptions2_3<TVideo extends boolean>
80
92
  }
81
93
 
82
94
  serialize(): string[] {
83
- return serialize<Init<boolean>>(this.value, Defaults);
95
+ return serialize(this.value, Defaults);
84
96
  }
85
97
 
86
98
  setListDisplays(): void {
@@ -102,18 +114,29 @@ export class ScrcpyOptions2_3<TVideo extends boolean>
102
114
  parseVideoStreamMetadata(
103
115
  stream: ReadableStream<Uint8Array>,
104
116
  ): MaybePromiseLike<ScrcpyVideoStream> {
105
- return parseVideoStreamMetadata(this.value, stream);
117
+ return parseVideoStreamMetadata(
118
+ stream,
119
+ this.value.sendDeviceMeta,
120
+ this.value.sendCodecMeta,
121
+ parseVideoCodecOption(this.value.videoCodec),
122
+ parseVideoStreamMetadataAsync,
123
+ );
106
124
  }
107
125
 
108
126
  parseAudioStreamMetadata(
109
127
  stream: ReadableStream<Uint8Array>,
110
128
  ): MaybePromiseLike<ScrcpyAudioStreamMetadata> {
111
- return parseAudioStreamMetadata(stream, this.value);
129
+ return parseAudioStreamMetadata(
130
+ stream,
131
+ this.value.sendCodecMeta,
132
+ parseAudioMetadataCodec,
133
+ parseAudioCodecOption(this.value.audioCodec),
134
+ );
112
135
  }
113
136
 
114
137
  createMediaStreamTransformer(): TransformStream<
115
138
  Uint8Array,
116
- ScrcpyMediaStreamPacket
139
+ ScrcpyVideoStreamPacket
117
140
  > {
118
141
  return createMediaStreamTransformer(this.value);
119
142
  }
@@ -121,30 +144,57 @@ export class ScrcpyOptions2_3<TVideo extends boolean>
121
144
  serializeInjectTouchControlMessage(
122
145
  message: ScrcpyInjectTouchControlMessage,
123
146
  ): Uint8Array {
147
+ if (!this.value.control) {
148
+ throw new Error("control is disabled");
149
+ }
124
150
  return serializeInjectTouchControlMessage(message);
125
151
  }
126
152
 
127
153
  serializeBackOrScreenOnControlMessage(
128
154
  message: ScrcpyBackOrScreenOnControlMessage,
129
155
  ): Uint8Array | undefined {
156
+ if (!this.value.control) {
157
+ throw new Error("control is disabled");
158
+ }
130
159
  return serializeBackOrScreenOnControlMessage(message);
131
160
  }
132
161
 
133
162
  serializeSetClipboardControlMessage(
134
163
  message: ScrcpySetClipboardControlMessage,
135
164
  ): Uint8Array | [Uint8Array, Promise<void>] {
136
- return this.#ackClipboardHandler!.serializeSetClipboardControlMessage(
165
+ if (!this.value.control) {
166
+ throw new Error("control is disabled");
167
+ }
168
+ return serializeSetClipboardControlMessage(
137
169
  message,
170
+ this.#ackClipboardHandler,
138
171
  );
139
172
  }
140
173
 
174
+ serializeSetDisplayPowerControlMessage(
175
+ message: ScrcpySetDisplayPowerControlMessage,
176
+ ): Uint8Array {
177
+ if (!this.value.control) {
178
+ throw new Error("control is disabled");
179
+ }
180
+ return serializeSetDisplayPowerControlMessage(message);
181
+ }
182
+
141
183
  createScrollController(): ScrcpyScrollController {
184
+ if (!this.value.control) {
185
+ throw new Error("control is disabled");
186
+ }
142
187
  return createScrollController();
143
188
  }
144
189
  }
145
190
 
146
- type Init_<TVideo extends boolean> = Init<TVideo>;
191
+ type Init_ = Init;
147
192
 
148
193
  export namespace ScrcpyOptions2_3 {
149
- export type Init<TVideo extends boolean = boolean> = Init_<TVideo>;
194
+ export type Init = Init_;
195
+
196
+ export type Value<TInit extends Init> = ComputeOptionTypes<
197
+ TInit,
198
+ typeof Defaults
199
+ >;
150
200
  }