@yume-chan/scrcpy 2.2.0 → 3.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (442) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/esm/1_15/impl/codec-options.d.ts +146 -0
  4. package/esm/1_15/impl/codec-options.d.ts.map +1 -0
  5. package/esm/1_15/impl/codec-options.js +192 -0
  6. package/esm/1_15/impl/codec-options.js.map +1 -0
  7. package/esm/1_15/impl/control-message-types.d.ts +13 -2
  8. package/esm/1_15/impl/control-message-types.d.ts.map +1 -1
  9. package/esm/1_15/impl/control-message-types.js +13 -14
  10. package/esm/1_15/impl/control-message-types.js.map +1 -1
  11. package/esm/1_15/impl/index.d.ts +1 -0
  12. package/esm/1_15/impl/index.d.ts.map +1 -1
  13. package/esm/1_15/impl/index.js +1 -0
  14. package/esm/1_15/impl/index.js.map +1 -1
  15. package/esm/1_15/impl/init.d.ts +1 -22
  16. package/esm/1_15/impl/init.d.ts.map +1 -1
  17. package/esm/1_15/impl/init.js +0 -39
  18. package/esm/1_15/impl/init.js.map +1 -1
  19. package/esm/1_15/impl/inject-touch.d.ts.map +1 -1
  20. package/esm/1_15/impl/inject-touch.js +1 -0
  21. package/esm/1_15/impl/inject-touch.js.map +1 -1
  22. package/esm/1_15/impl/scroll-controller.d.ts.map +1 -1
  23. package/esm/1_15/impl/scroll-controller.js +1 -0
  24. package/esm/1_15/impl/scroll-controller.js.map +1 -1
  25. package/esm/1_15/impl/set-clipboard.d.ts.map +1 -1
  26. package/esm/1_15/impl/set-clipboard.js +5 -1
  27. package/esm/1_15/impl/set-clipboard.js.map +1 -1
  28. package/esm/1_15/options.d.ts +3 -2
  29. package/esm/1_15/options.d.ts.map +1 -1
  30. package/esm/1_15/options.js.map +1 -1
  31. package/esm/1_15_1.d.ts +1 -7
  32. package/esm/1_15_1.d.ts.map +1 -1
  33. package/esm/1_15_1.js +1 -6
  34. package/esm/1_15_1.js.map +1 -1
  35. package/esm/1_16.d.ts +1 -7
  36. package/esm/1_16.d.ts.map +1 -1
  37. package/esm/1_16.js +1 -6
  38. package/esm/1_16.js.map +1 -1
  39. package/esm/1_17/impl/defaults.d.ts.map +1 -1
  40. package/esm/1_17/impl/defaults.js +2 -2
  41. package/esm/1_17/impl/defaults.js.map +1 -1
  42. package/esm/1_17/options.d.ts +3 -2
  43. package/esm/1_17/options.d.ts.map +1 -1
  44. package/esm/1_17/options.js.map +1 -1
  45. package/esm/1_18/impl/control-message-types.d.ts +14 -2
  46. package/esm/1_18/impl/control-message-types.d.ts.map +1 -1
  47. package/esm/1_18/impl/control-message-types.js +14 -7
  48. package/esm/1_18/impl/control-message-types.js.map +1 -1
  49. package/esm/1_18/impl/defaults.d.ts.map +1 -1
  50. package/esm/1_18/impl/defaults.js +2 -2
  51. package/esm/1_18/impl/defaults.js.map +1 -1
  52. package/esm/1_18/impl/init.d.ts.map +1 -1
  53. package/esm/1_18/options.d.ts +3 -2
  54. package/esm/1_18/options.d.ts.map +1 -1
  55. package/esm/1_18/options.js.map +1 -1
  56. package/esm/1_19.d.ts +1 -7
  57. package/esm/1_19.d.ts.map +1 -1
  58. package/esm/1_19.js +1 -6
  59. package/esm/1_19.js.map +1 -1
  60. package/esm/1_20.d.ts +1 -7
  61. package/esm/1_20.d.ts.map +1 -1
  62. package/esm/1_20.js +1 -6
  63. package/esm/1_20.js.map +1 -1
  64. package/esm/1_21/impl/defaults.d.ts.map +1 -1
  65. package/esm/1_21/impl/defaults.js +2 -2
  66. package/esm/1_21/impl/defaults.js.map +1 -1
  67. package/esm/1_21/impl/index.d.ts +1 -1
  68. package/esm/1_21/impl/index.d.ts.map +1 -1
  69. package/esm/1_21/impl/index.js +1 -1
  70. package/esm/1_21/impl/index.js.map +1 -1
  71. package/esm/1_21/impl/set-clipboard.d.ts +1 -0
  72. package/esm/1_21/impl/set-clipboard.d.ts.map +1 -1
  73. package/esm/1_21/impl/set-clipboard.js +7 -0
  74. package/esm/1_21/impl/set-clipboard.js.map +1 -1
  75. package/esm/1_21/options.d.ts +3 -2
  76. package/esm/1_21/options.d.ts.map +1 -1
  77. package/esm/1_21/options.js +6 -4
  78. package/esm/1_21/options.js.map +1 -1
  79. package/esm/1_22/impl/defaults.d.ts.map +1 -1
  80. package/esm/1_22/impl/defaults.js +2 -2
  81. package/esm/1_22/impl/defaults.js.map +1 -1
  82. package/esm/1_22/options.d.ts +3 -2
  83. package/esm/1_22/options.d.ts.map +1 -1
  84. package/esm/1_22/options.js +6 -4
  85. package/esm/1_22/options.js.map +1 -1
  86. package/esm/1_23/impl/defaults.d.ts.map +1 -1
  87. package/esm/1_23/impl/defaults.js +2 -2
  88. package/esm/1_23/impl/defaults.js.map +1 -1
  89. package/esm/1_23/options.d.ts +3 -2
  90. package/esm/1_23/options.d.ts.map +1 -1
  91. package/esm/1_23/options.js +6 -4
  92. package/esm/1_23/options.js.map +1 -1
  93. package/esm/1_24/impl/defaults.d.ts.map +1 -1
  94. package/esm/1_24/impl/defaults.js +2 -2
  95. package/esm/1_24/impl/defaults.js.map +1 -1
  96. package/esm/1_24/options.d.ts +3 -2
  97. package/esm/1_24/options.d.ts.map +1 -1
  98. package/esm/1_24/options.js +6 -4
  99. package/esm/1_24/options.js.map +1 -1
  100. package/esm/1_25/impl/scroll-controller.d.ts +2 -2
  101. package/esm/1_25/impl/scroll-controller.d.ts.map +1 -1
  102. package/esm/1_25/impl/scroll-controller.js +4 -4
  103. package/esm/1_25/impl/scroll-controller.js.map +1 -1
  104. package/esm/1_25/options.d.ts +3 -2
  105. package/esm/1_25/options.d.ts.map +1 -1
  106. package/esm/1_25/options.js +6 -4
  107. package/esm/1_25/options.js.map +1 -1
  108. package/esm/2_0/impl/defaults.d.ts +3 -3
  109. package/esm/2_0/impl/defaults.d.ts.map +1 -1
  110. package/esm/2_0/impl/defaults.js +10 -4
  111. package/esm/2_0/impl/defaults.js.map +1 -1
  112. package/esm/2_0/impl/init.d.ts.map +1 -1
  113. package/esm/2_0/impl/inject-touch.d.ts +2 -2
  114. package/esm/2_0/impl/inject-touch.d.ts.map +1 -1
  115. package/esm/2_0/impl/inject-touch.js +4 -4
  116. package/esm/2_0/impl/inject-touch.js.map +1 -1
  117. package/esm/2_0/impl/parse-audio-stream-metadata.d.ts.map +1 -1
  118. package/esm/2_0/impl/parse-audio-stream-metadata.js +2 -7
  119. package/esm/2_0/impl/parse-audio-stream-metadata.js.map +1 -1
  120. package/esm/2_0/options.d.ts +6 -5
  121. package/esm/2_0/options.d.ts.map +1 -1
  122. package/esm/2_0/options.js +6 -4
  123. package/esm/2_0/options.js.map +1 -1
  124. package/esm/2_1/impl/defaults.d.ts +3 -3
  125. package/esm/2_1/impl/defaults.d.ts.map +1 -1
  126. package/esm/2_1/impl/defaults.js +2 -2
  127. package/esm/2_1/impl/defaults.js.map +1 -1
  128. package/esm/2_1/options.d.ts +6 -5
  129. package/esm/2_1/options.d.ts.map +1 -1
  130. package/esm/2_1/options.js +6 -4
  131. package/esm/2_1/options.js.map +1 -1
  132. package/esm/2_1_1.d.ts +1 -7
  133. package/esm/2_1_1.d.ts.map +1 -1
  134. package/esm/2_1_1.js +1 -6
  135. package/esm/2_1_1.js.map +1 -1
  136. package/esm/2_2/impl/defaults.d.ts +3 -3
  137. package/esm/2_2/impl/defaults.d.ts.map +1 -1
  138. package/esm/2_2/impl/defaults.js +2 -2
  139. package/esm/2_2/impl/defaults.js.map +1 -1
  140. package/esm/2_2/options.d.ts +6 -5
  141. package/esm/2_2/options.d.ts.map +1 -1
  142. package/esm/2_2/options.js +6 -4
  143. package/esm/2_2/options.js.map +1 -1
  144. package/esm/2_3/impl/init.d.ts.map +1 -1
  145. package/esm/2_3/options.d.ts +6 -5
  146. package/esm/2_3/options.d.ts.map +1 -1
  147. package/esm/2_3/options.js +6 -4
  148. package/esm/2_3/options.js.map +1 -1
  149. package/esm/2_3_1.d.ts +1 -7
  150. package/esm/2_3_1.d.ts.map +1 -1
  151. package/esm/2_3_1.js +1 -6
  152. package/esm/2_3_1.js.map +1 -1
  153. package/esm/2_4/impl/control-message-types.d.ts +17 -2
  154. package/esm/2_4/impl/control-message-types.d.ts.map +1 -1
  155. package/esm/2_4/impl/control-message-types.js +17 -8
  156. package/esm/2_4/impl/control-message-types.js.map +1 -1
  157. package/esm/2_4/impl/serialize-uhid-create.d.ts.map +1 -1
  158. package/esm/2_4/impl/serialize-uhid-create.js +1 -0
  159. package/esm/2_4/impl/serialize-uhid-create.js.map +1 -1
  160. package/esm/2_4/options.d.ts +6 -5
  161. package/esm/2_4/options.d.ts.map +1 -1
  162. package/esm/2_4/options.js +3 -3
  163. package/esm/2_4/options.js.map +1 -1
  164. package/esm/2_5.d.ts +1 -7
  165. package/esm/2_5.d.ts.map +1 -1
  166. package/esm/2_5.js +1 -6
  167. package/esm/2_5.js.map +1 -1
  168. package/esm/2_6/impl/defaults.d.ts +3 -3
  169. package/esm/2_6/impl/defaults.d.ts.map +1 -1
  170. package/esm/2_6/impl/defaults.js +2 -2
  171. package/esm/2_6/impl/defaults.js.map +1 -1
  172. package/esm/2_6/impl/init.d.ts.map +1 -1
  173. package/esm/2_6/options.d.ts +6 -5
  174. package/esm/2_6/options.d.ts.map +1 -1
  175. package/esm/2_6/options.js +3 -3
  176. package/esm/2_6/options.js.map +1 -1
  177. package/esm/2_6_1.d.ts +1 -7
  178. package/esm/2_6_1.d.ts.map +1 -1
  179. package/esm/2_6_1.js +1 -6
  180. package/esm/2_6_1.js.map +1 -1
  181. package/esm/2_7/impl/control-message-types.d.ts +18 -2
  182. package/esm/2_7/impl/control-message-types.d.ts.map +1 -1
  183. package/esm/2_7/impl/control-message-types.js +18 -7
  184. package/esm/2_7/impl/control-message-types.js.map +1 -1
  185. package/esm/2_7/impl/serialize-uhid-create.d.ts.map +1 -1
  186. package/esm/2_7/impl/serialize-uhid-create.js +1 -0
  187. package/esm/2_7/impl/serialize-uhid-create.js.map +1 -1
  188. package/esm/2_7/options.d.ts +6 -5
  189. package/esm/2_7/options.d.ts.map +1 -1
  190. package/esm/2_7/options.js +3 -3
  191. package/esm/2_7/options.js.map +1 -1
  192. package/esm/3_0/impl/control-message-types.d.ts +20 -2
  193. package/esm/3_0/impl/control-message-types.d.ts.map +1 -1
  194. package/esm/3_0/impl/control-message-types.js +20 -7
  195. package/esm/3_0/impl/control-message-types.js.map +1 -1
  196. package/esm/3_0/impl/defaults.d.ts +4 -4
  197. package/esm/3_0/impl/defaults.d.ts.map +1 -1
  198. package/esm/3_0/impl/defaults.js +8 -4
  199. package/esm/3_0/impl/defaults.js.map +1 -1
  200. package/esm/3_0/impl/init.d.ts.map +1 -1
  201. package/esm/3_0/options.d.ts +7 -6
  202. package/esm/3_0/options.d.ts.map +1 -1
  203. package/esm/3_0/options.js +3 -3
  204. package/esm/3_0/options.js.map +1 -1
  205. package/esm/3_0_1.d.ts +1 -7
  206. package/esm/3_0_1.d.ts.map +1 -1
  207. package/esm/3_0_1.js +1 -6
  208. package/esm/3_0_1.js.map +1 -1
  209. package/esm/3_0_2.d.ts +1 -7
  210. package/esm/3_0_2.d.ts.map +1 -1
  211. package/esm/3_0_2.js +1 -6
  212. package/esm/3_0_2.js.map +1 -1
  213. package/esm/3_1/impl/defaults.d.ts +4 -4
  214. package/esm/3_1/impl/defaults.d.ts.map +1 -1
  215. package/esm/3_1/impl/defaults.js +2 -2
  216. package/esm/3_1/impl/defaults.js.map +1 -1
  217. package/esm/3_1/impl/serialize-uhid-create.d.ts.map +1 -1
  218. package/esm/3_1/impl/serialize-uhid-create.js +1 -0
  219. package/esm/3_1/impl/serialize-uhid-create.js.map +1 -1
  220. package/esm/3_1/options.d.ts +7 -6
  221. package/esm/3_1/options.d.ts.map +1 -1
  222. package/esm/3_1/options.js +3 -3
  223. package/esm/3_1/options.js.map +1 -1
  224. package/esm/3_2/impl/defaults.d.ts +4 -4
  225. package/esm/3_2/impl/defaults.d.ts.map +1 -1
  226. package/esm/3_2/impl/defaults.js +2 -2
  227. package/esm/3_2/impl/defaults.js.map +1 -1
  228. package/esm/3_2/impl/init.d.ts.map +1 -1
  229. package/esm/3_2/options.d.ts +7 -6
  230. package/esm/3_2/options.d.ts.map +1 -1
  231. package/esm/3_2/options.js +3 -3
  232. package/esm/3_2/options.js.map +1 -1
  233. package/esm/3_3.d.ts +1 -7
  234. package/esm/3_3.d.ts.map +1 -1
  235. package/esm/3_3.js +1 -6
  236. package/esm/3_3.js.map +1 -1
  237. package/esm/3_3_1/options.d.ts +7 -6
  238. package/esm/3_3_1/options.d.ts.map +1 -1
  239. package/esm/3_3_1/options.js +3 -3
  240. package/esm/3_3_1/options.js.map +1 -1
  241. package/esm/3_3_2.d.ts +1 -7
  242. package/esm/3_3_2.d.ts.map +1 -1
  243. package/esm/3_3_2.js +1 -6
  244. package/esm/3_3_2.js.map +1 -1
  245. package/esm/3_3_3.d.ts +2 -0
  246. package/esm/3_3_3.d.ts.map +1 -0
  247. package/esm/3_3_3.js +2 -0
  248. package/esm/3_3_3.js.map +1 -0
  249. package/esm/3_3_4.d.ts +2 -0
  250. package/esm/3_3_4.d.ts.map +1 -0
  251. package/esm/3_3_4.js +2 -0
  252. package/esm/3_3_4.js.map +1 -0
  253. package/esm/android/key-code-value.d.ts +176 -0
  254. package/esm/android/key-code-value.d.ts.map +1 -0
  255. package/esm/android/key-code-value.js +180 -0
  256. package/esm/android/key-code-value.js.map +1 -0
  257. package/esm/android/key-event.d.ts +3 -164
  258. package/esm/android/key-event.d.ts.map +1 -1
  259. package/esm/android/key-event.js +2 -167
  260. package/esm/android/key-event.js.map +1 -1
  261. package/esm/base/control-message-type-value.d.ts +19 -0
  262. package/esm/base/control-message-type-value.d.ts.map +1 -0
  263. package/esm/base/control-message-type-value.js +19 -0
  264. package/esm/base/control-message-type-value.js.map +1 -0
  265. package/esm/base/control-message-type.d.ts +3 -21
  266. package/esm/base/control-message-type.d.ts.map +1 -1
  267. package/esm/base/control-message-type.js +2 -21
  268. package/esm/base/control-message-type.js.map +1 -1
  269. package/esm/base/options.d.ts +2 -1
  270. package/esm/base/options.d.ts.map +1 -1
  271. package/esm/control/index.d.ts +0 -1
  272. package/esm/control/index.d.ts.map +1 -1
  273. package/esm/control/index.js +0 -1
  274. package/esm/control/index.js.map +1 -1
  275. package/esm/control/inject-key-code.d.ts +2 -2
  276. package/esm/control/inject-key-code.d.ts.map +1 -1
  277. package/esm/control/inject-key-code.js +4 -4
  278. package/esm/control/inject-key-code.js.map +1 -1
  279. package/esm/control/inject-text.d.ts.map +1 -1
  280. package/esm/control/inject-text.js +5 -1
  281. package/esm/control/inject-text.js.map +1 -1
  282. package/esm/control/serializer.d.ts +2 -0
  283. package/esm/control/serializer.d.ts.map +1 -1
  284. package/esm/control/serializer.js +27 -19
  285. package/esm/control/serializer.js.map +1 -1
  286. package/esm/control/set-screen-power-mode.d.ts.map +1 -1
  287. package/esm/control/set-screen-power-mode.js +5 -1
  288. package/esm/control/set-screen-power-mode.js.map +1 -1
  289. package/esm/control/start-app.d.ts.map +1 -1
  290. package/esm/control/start-app.js +1 -0
  291. package/esm/control/start-app.js.map +1 -1
  292. package/esm/control/uhid.d.ts +2 -2
  293. package/esm/control/uhid.d.ts.map +1 -1
  294. package/esm/control/uhid.js +9 -5
  295. package/esm/control/uhid.js.map +1 -1
  296. package/esm/control/writer.d.ts +1 -1
  297. package/esm/control/writer.d.ts.map +1 -1
  298. package/esm/control/writer.js +1 -1
  299. package/esm/control/writer.js.map +1 -1
  300. package/esm/index.d.ts +3 -1
  301. package/esm/index.d.ts.map +1 -1
  302. package/esm/index.js +3 -1
  303. package/esm/index.js.map +1 -1
  304. package/esm/latest.d.ts +2 -8
  305. package/esm/latest.d.ts.map +1 -1
  306. package/esm/latest.js +2 -7
  307. package/esm/latest.js.map +1 -1
  308. package/esm/video/android.d.ts +69 -0
  309. package/esm/video/android.d.ts.map +1 -0
  310. package/esm/video/android.js +70 -0
  311. package/esm/video/android.js.map +1 -0
  312. package/esm/video/index.d.ts +3 -0
  313. package/esm/video/index.d.ts.map +1 -0
  314. package/esm/video/index.js +3 -0
  315. package/esm/video/index.js.map +1 -0
  316. package/esm/video/size.d.ts +21 -0
  317. package/esm/video/size.d.ts.map +1 -0
  318. package/esm/video/size.js +27 -0
  319. package/esm/video/size.js.map +1 -0
  320. package/package.json +11 -10
  321. package/src/1_15/impl/codec-options.ts +236 -0
  322. package/src/1_15/impl/control-message-types.ts +14 -14
  323. package/src/1_15/impl/index.ts +1 -0
  324. package/src/1_15/impl/init.ts +2 -76
  325. package/src/1_15/impl/inject-touch.ts +1 -0
  326. package/src/1_15/impl/scroll-controller.ts +1 -0
  327. package/src/1_15/impl/set-clipboard.ts +5 -1
  328. package/src/1_15/options.ts +1 -2
  329. package/src/1_15_1.ts +1 -11
  330. package/src/1_16.ts +1 -11
  331. package/src/1_17/impl/defaults.ts +4 -5
  332. package/src/1_17/options.ts +1 -2
  333. package/src/1_18/impl/control-message-types.ts +15 -8
  334. package/src/1_18/impl/defaults.ts +6 -7
  335. package/src/1_18/impl/init.ts +4 -2
  336. package/src/1_18/options.ts +1 -2
  337. package/src/1_19.ts +1 -11
  338. package/src/1_20.ts +1 -11
  339. package/src/1_21/impl/defaults.ts +4 -5
  340. package/src/1_21/impl/index.ts +1 -0
  341. package/src/1_21/impl/set-clipboard.ts +14 -0
  342. package/src/1_21/options.ts +10 -7
  343. package/src/1_22/impl/defaults.ts +6 -7
  344. package/src/1_22/options.ts +10 -7
  345. package/src/1_23/impl/defaults.ts +4 -5
  346. package/src/1_23/options.ts +10 -7
  347. package/src/1_24/impl/defaults.ts +4 -5
  348. package/src/1_24/options.ts +10 -7
  349. package/src/1_25/impl/scroll-controller.ts +14 -15
  350. package/src/1_25/options.ts +10 -7
  351. package/src/2_0/impl/defaults.ts +24 -19
  352. package/src/2_0/impl/init.ts +4 -2
  353. package/src/2_0/impl/inject-touch.ts +16 -17
  354. package/src/2_0/impl/parse-audio-stream-metadata.ts +3 -7
  355. package/src/2_0/options.ts +10 -7
  356. package/src/2_1/impl/defaults.ts +5 -6
  357. package/src/2_1/options.ts +10 -7
  358. package/src/2_1_1.ts +1 -14
  359. package/src/2_2/impl/defaults.ts +13 -14
  360. package/src/2_2/options.ts +10 -7
  361. package/src/2_3/impl/init.ts +4 -2
  362. package/src/2_3/options.ts +10 -7
  363. package/src/2_3_1.ts +1 -14
  364. package/src/2_4/impl/control-message-types.ts +18 -9
  365. package/src/2_4/impl/serialize-uhid-create.ts +1 -0
  366. package/src/2_4/options.ts +8 -7
  367. package/src/2_5.ts +1 -14
  368. package/src/2_6/impl/defaults.ts +4 -5
  369. package/src/2_6/impl/init.ts +4 -2
  370. package/src/2_6/options.ts +8 -7
  371. package/src/2_6_1.ts +1 -14
  372. package/src/2_7/impl/control-message-types.ts +19 -8
  373. package/src/2_7/impl/serialize-uhid-create.ts +1 -0
  374. package/src/2_7/options.ts +8 -7
  375. package/src/3_0/impl/control-message-types.ts +21 -8
  376. package/src/3_0/impl/defaults.ts +15 -12
  377. package/src/3_0/impl/init.ts +4 -2
  378. package/src/3_0/options.ts +8 -7
  379. package/src/3_0_1.ts +1 -14
  380. package/src/3_0_2.ts +1 -14
  381. package/src/3_1/impl/defaults.ts +4 -5
  382. package/src/3_1/impl/serialize-uhid-create.ts +1 -0
  383. package/src/3_1/options.ts +8 -7
  384. package/src/3_2/impl/defaults.ts +4 -5
  385. package/src/3_2/impl/init.ts +4 -2
  386. package/src/3_2/options.ts +8 -7
  387. package/src/3_3.ts +1 -14
  388. package/src/3_3_1/options.ts +8 -7
  389. package/src/3_3_2.ts +1 -14
  390. package/src/3_3_3.ts +1 -0
  391. package/src/3_3_4.ts +1 -0
  392. package/src/android/key-code-value.ts +194 -0
  393. package/src/android/key-event.ts +5 -182
  394. package/src/base/control-message-type-value.ts +18 -0
  395. package/src/base/control-message-type.ts +6 -22
  396. package/src/base/options.ts +5 -1
  397. package/src/control/index.ts +0 -1
  398. package/src/control/inject-key-code.ts +11 -12
  399. package/src/control/inject-text.ts +5 -1
  400. package/src/control/serializer.ts +32 -36
  401. package/src/control/set-screen-power-mode.ts +5 -1
  402. package/src/control/start-app.ts +1 -0
  403. package/src/control/uhid.ts +14 -12
  404. package/src/control/writer.ts +1 -1
  405. package/src/index.ts +3 -1
  406. package/src/latest.ts +2 -14
  407. package/src/video/android.ts +72 -0
  408. package/src/video/index.ts +2 -0
  409. package/src/video/size.ts +40 -0
  410. package/tsconfig.build.json +0 -8
  411. package/CHANGELOG.md +0 -218
  412. package/esm/codec/av1.d.ts +0 -462
  413. package/esm/codec/av1.d.ts.map +0 -1
  414. package/esm/codec/av1.js +0 -622
  415. package/esm/codec/av1.js.map +0 -1
  416. package/esm/codec/h264.d.ts +0 -78
  417. package/esm/codec/h264.d.ts.map +0 -1
  418. package/esm/codec/h264.js +0 -254
  419. package/esm/codec/h264.js.map +0 -1
  420. package/esm/codec/h265.d.ts +0 -535
  421. package/esm/codec/h265.d.ts.map +0 -1
  422. package/esm/codec/h265.js +0 -1117
  423. package/esm/codec/h265.js.map +0 -1
  424. package/esm/codec/index.d.ts +0 -5
  425. package/esm/codec/index.d.ts.map +0 -1
  426. package/esm/codec/index.js +0 -5
  427. package/esm/codec/index.js.map +0 -1
  428. package/esm/codec/nalu.d.ts +0 -28
  429. package/esm/codec/nalu.d.ts.map +0 -1
  430. package/esm/codec/nalu.js +0 -250
  431. package/esm/codec/nalu.js.map +0 -1
  432. package/esm/control/message-type-map.d.ts +0 -15
  433. package/esm/control/message-type-map.d.ts.map +0 -1
  434. package/esm/control/message-type-map.js +0 -23
  435. package/esm/control/message-type-map.js.map +0 -1
  436. package/src/codec/av1.ts +0 -724
  437. package/src/codec/h264.ts +0 -317
  438. package/src/codec/h265.ts +0 -1410
  439. package/src/codec/index.ts +0 -4
  440. package/src/codec/nalu.ts +0 -304
  441. package/src/control/message-type-map.ts +0 -30
  442. package/tsconfig.build.tsbuildinfo +0 -1
@@ -6,19 +6,18 @@ import type {
6
6
  AndroidKeyEventAction,
7
7
  AndroidKeyEventMeta,
8
8
  } from "../android/index.js";
9
- import { ScrcpyControlMessageType } from "../base/index.js";
10
9
 
11
- export const ScrcpyInjectKeyCodeControlMessage = /* #__PURE__ */ (() =>
12
- struct(
13
- {
14
- type: u8(ScrcpyControlMessageType.InjectKeyCode),
15
- action: u8<AndroidKeyEventAction>(),
16
- keyCode: u32<AndroidKeyCode>(),
17
- repeat: u32,
18
- metaState: u32<AndroidKeyEventMeta>(),
19
- },
20
- { littleEndian: false },
21
- ))();
10
+ export const ScrcpyInjectKeyCodeControlMessage = struct(
11
+ {
12
+ // value of `type` can change between versions
13
+ type: u8,
14
+ action: u8<AndroidKeyEventAction>(),
15
+ keyCode: u32<AndroidKeyCode>(),
16
+ repeat: u32,
17
+ metaState: u32<AndroidKeyEventMeta>(),
18
+ },
19
+ { littleEndian: false },
20
+ );
22
21
 
23
22
  export type ScrcpyInjectKeyCodeControlMessage = StructInit<
24
23
  typeof ScrcpyInjectKeyCodeControlMessage
@@ -2,7 +2,11 @@ import type { StructInit } from "@yume-chan/struct";
2
2
  import { string, struct, u32, u8 } from "@yume-chan/struct";
3
3
 
4
4
  export const ScrcpyInjectTextControlMessage = struct(
5
- { type: u8, text: string(u32) },
5
+ {
6
+ // value of `type` can change between versions
7
+ type: u8,
8
+ text: string(u32),
9
+ },
6
10
  { littleEndian: false },
7
11
  );
8
12
 
@@ -14,7 +14,6 @@ import type {
14
14
  import { EmptyControlMessage } from "./empty.js";
15
15
  import { ScrcpyInjectKeyCodeControlMessage } from "./inject-key-code.js";
16
16
  import { ScrcpyInjectTextControlMessage } from "./inject-text.js";
17
- import { ScrcpyControlMessageTypeMap } from "./message-type-map.js";
18
17
  import { ScrcpySetDisplayPowerControlMessage } from "./set-screen-power-mode.js";
19
18
  import { ScrcpyStartAppControlMessage } from "./start-app.js";
20
19
  import {
@@ -24,28 +23,39 @@ import {
24
23
 
25
24
  export class ScrcpyControlMessageSerializer {
26
25
  #options: ScrcpyOptions<object>;
27
- #typeMap: ScrcpyControlMessageTypeMap;
28
26
  #scrollController: ScrcpyScrollController;
29
27
 
30
28
  constructor(options: ScrcpyOptions<object>) {
31
29
  this.#options = options;
32
- this.#typeMap = new ScrcpyControlMessageTypeMap(options);
33
30
  this.#scrollController = options.createScrollController();
34
31
  }
35
32
 
33
+ getType(type: ScrcpyControlMessageType): number {
34
+ const value = this.#options.controlMessageTypes[type];
35
+ if (value === undefined) {
36
+ throw new TypeError(`Invalid control message type: ${type}`);
37
+ }
38
+ return value;
39
+ }
40
+
41
+ #addType<T extends { type: number }>(
42
+ message: Omit<T, "type">,
43
+ type: ScrcpyControlMessageType,
44
+ ): T {
45
+ (message as T).type = this.getType(type);
46
+ return message as T;
47
+ }
48
+
36
49
  injectKeyCode(message: Omit<ScrcpyInjectKeyCodeControlMessage, "type">) {
37
50
  return ScrcpyInjectKeyCodeControlMessage.serialize(
38
- this.#typeMap.fillMessageType(
39
- message,
40
- ScrcpyControlMessageType.InjectKeyCode,
41
- ),
51
+ this.#addType(message, ScrcpyControlMessageType.InjectKeyCode),
42
52
  );
43
53
  }
44
54
 
45
55
  injectText(text: string) {
46
56
  return ScrcpyInjectTextControlMessage.serialize({
47
57
  text,
48
- type: this.#typeMap.get(ScrcpyControlMessageType.InjectText),
58
+ type: this.getType(ScrcpyControlMessageType.InjectText),
49
59
  });
50
60
  }
51
61
 
@@ -54,10 +64,7 @@ export class ScrcpyControlMessageSerializer {
54
64
  */
55
65
  injectTouch(message: Omit<ScrcpyInjectTouchControlMessage, "type">) {
56
66
  return this.#options.serializeInjectTouchControlMessage(
57
- this.#typeMap.fillMessageType(
58
- message,
59
- ScrcpyControlMessageType.InjectTouch,
60
- ),
67
+ this.#addType(message, ScrcpyControlMessageType.InjectTouch),
61
68
  );
62
69
  }
63
70
 
@@ -66,30 +73,27 @@ export class ScrcpyControlMessageSerializer {
66
73
  */
67
74
  injectScroll(message: Omit<ScrcpyInjectScrollControlMessage, "type">) {
68
75
  return this.#scrollController.serializeScrollMessage(
69
- this.#typeMap.fillMessageType(
70
- message,
71
- ScrcpyControlMessageType.InjectScroll,
72
- ),
76
+ this.#addType(message, ScrcpyControlMessageType.InjectScroll),
73
77
  );
74
78
  }
75
79
 
76
80
  backOrScreenOn(action: AndroidKeyEventAction) {
77
81
  return this.#options.serializeBackOrScreenOnControlMessage({
78
82
  action,
79
- type: this.#typeMap.get(ScrcpyControlMessageType.BackOrScreenOn),
83
+ type: this.getType(ScrcpyControlMessageType.BackOrScreenOn),
80
84
  });
81
85
  }
82
86
 
83
87
  setDisplayPower(mode: AndroidScreenPowerMode) {
84
88
  return ScrcpySetDisplayPowerControlMessage.serialize({
85
89
  mode,
86
- type: this.#typeMap.get(ScrcpyControlMessageType.SetDisplayPower),
90
+ type: this.getType(ScrcpyControlMessageType.SetDisplayPower),
87
91
  });
88
92
  }
89
93
 
90
94
  expandNotificationPanel() {
91
95
  return EmptyControlMessage.serialize({
92
- type: this.#typeMap.get(
96
+ type: this.getType(
93
97
  ScrcpyControlMessageType.ExpandNotificationPanel,
94
98
  ),
95
99
  });
@@ -97,15 +101,13 @@ export class ScrcpyControlMessageSerializer {
97
101
 
98
102
  expandSettingPanel() {
99
103
  return EmptyControlMessage.serialize({
100
- type: this.#typeMap.get(
101
- ScrcpyControlMessageType.ExpandSettingPanel,
102
- ),
104
+ type: this.getType(ScrcpyControlMessageType.ExpandSettingPanel),
103
105
  });
104
106
  }
105
107
 
106
108
  collapseNotificationPanel() {
107
109
  return EmptyControlMessage.serialize({
108
- type: this.#typeMap.get(
110
+ type: this.getType(
109
111
  ScrcpyControlMessageType.CollapseNotificationPanel,
110
112
  ),
111
113
  });
@@ -113,14 +115,14 @@ export class ScrcpyControlMessageSerializer {
113
115
 
114
116
  rotateDevice() {
115
117
  return EmptyControlMessage.serialize({
116
- type: this.#typeMap.get(ScrcpyControlMessageType.RotateDevice),
118
+ type: this.getType(ScrcpyControlMessageType.RotateDevice),
117
119
  });
118
120
  }
119
121
 
120
122
  setClipboard(message: Omit<ScrcpySetClipboardControlMessage, "type">) {
121
123
  return this.#options.serializeSetClipboardControlMessage({
122
124
  ...message,
123
- type: this.#typeMap.get(ScrcpyControlMessageType.SetClipboard),
125
+ type: this.getType(ScrcpyControlMessageType.SetClipboard),
124
126
  });
125
127
  }
126
128
 
@@ -130,25 +132,19 @@ export class ScrcpyControlMessageSerializer {
130
132
  }
131
133
 
132
134
  return this.#options.serializeUHidCreateControlMessage(
133
- this.#typeMap.fillMessageType(
134
- message,
135
- ScrcpyControlMessageType.UHidCreate,
136
- ),
135
+ this.#addType(message, ScrcpyControlMessageType.UHidCreate),
137
136
  );
138
137
  }
139
138
 
140
139
  uHidInput(message: Omit<ScrcpyUHidInputControlMessage, "type">) {
141
140
  return ScrcpyUHidInputControlMessage.serialize(
142
- this.#typeMap.fillMessageType(
143
- message,
144
- ScrcpyControlMessageType.UHidInput,
145
- ),
141
+ this.#addType(message, ScrcpyControlMessageType.UHidInput),
146
142
  );
147
143
  }
148
144
 
149
145
  uHidDestroy(id: number) {
150
146
  return ScrcpyUHidDestroyControlMessage.serialize({
151
- type: this.#typeMap.get(ScrcpyControlMessageType.UHidDestroy),
147
+ type: this.getType(ScrcpyControlMessageType.UHidDestroy),
152
148
  id,
153
149
  });
154
150
  }
@@ -165,14 +161,14 @@ export class ScrcpyControlMessageSerializer {
165
161
  }
166
162
 
167
163
  return ScrcpyStartAppControlMessage.serialize({
168
- type: this.#typeMap.get(ScrcpyControlMessageType.StartApp),
164
+ type: this.getType(ScrcpyControlMessageType.StartApp),
169
165
  name,
170
166
  });
171
167
  }
172
168
 
173
169
  resetVideo() {
174
170
  return EmptyControlMessage.serialize({
175
- type: this.#typeMap.get(ScrcpyControlMessageType.ResetVideo),
171
+ type: this.getType(ScrcpyControlMessageType.ResetVideo),
176
172
  });
177
173
  }
178
174
  }
@@ -4,7 +4,11 @@ import { struct, u8 } from "@yume-chan/struct";
4
4
  import type { AndroidScreenPowerMode } from "../android/index.js";
5
5
 
6
6
  export const ScrcpySetDisplayPowerControlMessage = struct(
7
- { type: u8, mode: u8<AndroidScreenPowerMode>() },
7
+ {
8
+ // value of `type` can change between versions
9
+ type: u8,
10
+ mode: u8<AndroidScreenPowerMode>(),
11
+ },
8
12
  { littleEndian: false },
9
13
  );
10
14
 
@@ -3,6 +3,7 @@ import { string, struct, u8 } from "@yume-chan/struct";
3
3
 
4
4
  export const ScrcpyStartAppControlMessage = struct(
5
5
  {
6
+ // value of `type` can change between versions
6
7
  type: u8,
7
8
  name: string(u8),
8
9
  },
@@ -1,24 +1,26 @@
1
1
  import type { StructInit } from "@yume-chan/struct";
2
2
  import { buffer, struct, u16, u8 } from "@yume-chan/struct";
3
3
 
4
- import { ScrcpyControlMessageType } from "../base/index.js";
5
-
6
- export const ScrcpyUHidInputControlMessage = /* #__PURE__ */ (() =>
7
- struct(
8
- {
9
- type: u8(ScrcpyControlMessageType.UHidInput),
10
- id: u16,
11
- data: buffer(u16),
12
- },
13
- { littleEndian: false },
14
- ))();
4
+ export const ScrcpyUHidInputControlMessage = struct(
5
+ {
6
+ // value of `type` can change between versions
7
+ type: u8,
8
+ id: u16,
9
+ data: buffer(u16),
10
+ },
11
+ { littleEndian: false },
12
+ );
15
13
 
16
14
  export type ScrcpyUHidInputControlMessage = StructInit<
17
15
  typeof ScrcpyUHidInputControlMessage
18
16
  >;
19
17
 
20
18
  export const ScrcpyUHidDestroyControlMessage = struct(
21
- { type: u8, id: u16 },
19
+ {
20
+ // value of `type` can change between versions
21
+ type: u8,
22
+ id: u16,
23
+ },
22
24
  { littleEndian: false },
23
25
  );
24
26
 
@@ -67,7 +67,7 @@ export class ScrcpyControlMessageWriter {
67
67
  }
68
68
  }
69
69
 
70
- setScreenPowerMode(mode: AndroidScreenPowerMode) {
70
+ setDisplayPower(mode: AndroidScreenPowerMode) {
71
71
  return this.write(this.#serializer.setDisplayPower(mode));
72
72
  }
73
73
 
package/src/index.ts CHANGED
@@ -29,9 +29,11 @@ export * from "./3_2/index.js";
29
29
  export * from "./3_3.js";
30
30
  export * from "./3_3_1/index.js";
31
31
  export * from "./3_3_2.js";
32
+ export * from "./3_3_3.js";
33
+ export * from "./3_3_4.js";
32
34
  export * from "./android/index.js";
33
35
  export * from "./base/index.js";
34
- export * from "./codec/index.js";
35
36
  export * from "./control/index.js";
36
37
  export * from "./latest.js";
37
38
  export * from "./utils/index.js";
39
+ export * from "./video/index.js";
package/src/latest.ts CHANGED
@@ -1,22 +1,10 @@
1
- import { ScrcpyOptions3_3_2 } from "./3_3_2.js";
2
-
3
- export class ScrcpyOptionsLatest<
4
- TVideo extends boolean,
5
- > extends ScrcpyOptions3_3_2<TVideo> {
6
- constructor(init: ScrcpyOptions3_3_2.Init<TVideo>) {
7
- super(init);
8
- }
9
- }
10
-
11
- export namespace ScrcpyOptionsLatest {
12
- export type Init<TVideo extends boolean = boolean> =
13
- ScrcpyOptions3_3_2.Init<TVideo>;
14
- }
1
+ export { ScrcpyOptions3_3_2 as ScrcpyOptionsLatest } from "./3_3_2.js";
15
2
 
16
3
  export {
17
4
  BackOrScreenOnControlMessage as ScrcpyBackOrScreenOnControlMessage,
18
5
  CaptureOrientation as ScrcpyCaptureOrientation,
19
6
  CodecOptions as ScrcpyCodecOptions,
7
+ VideoCodecOptions as ScrcpyVideoCodecOptions,
20
8
  Crop as ScrcpyCrop,
21
9
  InjectScrollControlMessage as ScrcpyInjectScrollControlMessage,
22
10
  InjectTouchControlMessage as ScrcpyInjectTouchControlMessage,
@@ -0,0 +1,72 @@
1
+ // From https://developer.android.com/reference/android/media/MediaCodecInfo.CodecProfileLevel
2
+ export const AndroidAvcProfile = {
3
+ Baseline: 1 << 0,
4
+ Main: 1 << 1,
5
+ Extended: 1 << 2,
6
+ High: 1 << 3,
7
+ High10: 1 << 4,
8
+ High422: 1 << 5,
9
+ High444: 1 << 6,
10
+ ConstrainedBaseline: 1 << 16,
11
+ ConstrainedHigh: 1 << 19,
12
+ };
13
+
14
+ export const AndroidAvcLevel = {
15
+ Level1: 1 << 0,
16
+ Level1b: 1 << 1,
17
+ Level11: 1 << 2,
18
+ Level12: 1 << 3,
19
+ Level13: 1 << 4,
20
+ Level2: 1 << 5,
21
+ Level21: 1 << 6,
22
+ Level22: 1 << 7,
23
+ Level3: 1 << 8,
24
+ Level31: 1 << 9,
25
+ Level32: 1 << 10,
26
+ Level4: 1 << 11,
27
+ Level41: 1 << 12,
28
+ Level42: 1 << 13,
29
+ Level5: 1 << 14,
30
+ Level51: 1 << 15,
31
+ Level52: 1 << 16,
32
+ Level6: 1 << 17,
33
+ Level61: 1 << 18,
34
+ Level62: 1 << 19,
35
+ };
36
+
37
+ export const AndroidHevcProfile = {
38
+ Main: 1 << 0,
39
+ Main10: 1 << 1,
40
+ MainStill: 1 << 2,
41
+ Main10Hdr10: 1 << 12,
42
+ Main10Hdr10Plus: 1 << 13,
43
+ };
44
+
45
+ export const AndroidHevcLevel = {
46
+ MainTierLevel1: 1 << 0,
47
+ HighTierLevel1: 1 << 1,
48
+ MainTierLevel2: 1 << 2,
49
+ HighTierLevel2: 1 << 3,
50
+ MainTierLevel21: 1 << 4,
51
+ HighTierLevel21: 1 << 5,
52
+ MainTierLevel3: 1 << 6,
53
+ HighTierLevel3: 1 << 7,
54
+ MainTierLevel31: 1 << 8,
55
+ HighTierLevel31: 1 << 9,
56
+ MainTierLevel4: 1 << 10,
57
+ HighTierLevel4: 1 << 11,
58
+ MainTierLevel41: 1 << 12,
59
+ HighTierLevel41: 1 << 13,
60
+ MainTierLevel5: 1 << 14,
61
+ HighTierLevel5: 1 << 15,
62
+ MainTierLevel51: 1 << 16,
63
+ HighTierLevel51: 1 << 17,
64
+ MainTierLevel52: 1 << 18,
65
+ HighTierLevel52: 1 << 19,
66
+ MainTierLevel6: 1 << 20,
67
+ HighTierLevel6: 1 << 21,
68
+ MainTierLevel61: 1 << 22,
69
+ HighTierLevel61: 1 << 23,
70
+ MainTierLevel62: 1 << 24,
71
+ HighTierLevel62: 1 << 25,
72
+ };
@@ -0,0 +1,2 @@
1
+ export * from "./android.js";
2
+ export * from "./size.js";
@@ -0,0 +1,40 @@
1
+ import type { Event } from "@yume-chan/event";
2
+ import { StickyEventEmitter } from "@yume-chan/event";
3
+
4
+ export interface ScrcpyVideoSize {
5
+ readonly width: number;
6
+ readonly height: number;
7
+
8
+ readonly sizeChanged: Event<{ width: number; height: number }>;
9
+ }
10
+
11
+ export class ScrcpyVideoSizeImpl implements ScrcpyVideoSize {
12
+ #width: number = 0;
13
+ get width() {
14
+ return this.#width;
15
+ }
16
+
17
+ #height: number = 0;
18
+ get height() {
19
+ return this.#height;
20
+ }
21
+
22
+ #sizeChanged = new StickyEventEmitter<{ width: number; height: number }>();
23
+ get sizeChanged() {
24
+ return this.#sizeChanged.event;
25
+ }
26
+
27
+ setSize(width: number, height: number) {
28
+ if (this.#width === width && this.#height === height) {
29
+ return;
30
+ }
31
+
32
+ this.#width = width;
33
+ this.#height = height;
34
+ this.#sizeChanged.fire({ width, height });
35
+ }
36
+
37
+ dispose() {
38
+ this.#sizeChanged.dispose();
39
+ }
40
+ }
@@ -1,11 +1,3 @@
1
1
  {
2
2
  "extends": "./node_modules/@yume-chan/tsconfig/tsconfig.base.json",
3
- "references": [
4
- {
5
- "path": "../stream-extra/tsconfig.build.json"
6
- },
7
- {
8
- "path": "../struct/tsconfig.build.json"
9
- }
10
- ]
11
3
  }
package/CHANGELOG.md DELETED
@@ -1,218 +0,0 @@
1
- # Change Log - @yume-chan/scrcpy
2
-
3
- ## 2.2.0
4
-
5
- ### Minor Changes
6
-
7
- - f34724f: Add support for Scrcpy server version 3.3.2 (no protocol changes)
8
-
9
- ## 2.1.1
10
-
11
- ### Patch Changes
12
-
13
- - 7edd616: Fix UHID output stream doesn't work from server version 2.6
14
- - e0def5b: Add support for server version 3.3.1
15
-
16
- ## 2.1.0
17
-
18
- ### Patch Changes
19
-
20
- - Updated dependencies [40a60ca]
21
- - @yume-chan/stream-extra@2.1.0
22
-
23
- ## 2.0.1
24
-
25
- ### Patch Changes
26
-
27
- - Updated dependencies [0bcb9b8]
28
- - @yume-chan/struct@2.0.1
29
- - @yume-chan/stream-extra@2.0.1
30
-
31
- ## 2.0.0
32
-
33
- ### Major Changes
34
-
35
- - fe06652: Move `version` parameter to `AdbScrcpyOptions`
36
-
37
- ### Minor Changes
38
-
39
- - 02f5bd5: Add alias for all AdbScrcpyOptions versions
40
-
41
- ### Patch Changes
42
-
43
- - Updated dependencies [b79df96]
44
- - Updated dependencies
45
- - @yume-chan/struct@2.0.0
46
- - @yume-chan/no-data-view@2.0.0
47
- - @yume-chan/stream-extra@2.0.0
48
-
49
- ## 1.1.0
50
-
51
- ### Minor Changes
52
-
53
- - 8c5b3c2: Add support for Scrcpy 3.1
54
- - cb44b63: Move `version` info to option classes and provide default values
55
-
56
- ### Patch Changes
57
-
58
- - 6140ebc: Accept raw (serialized) values for complex options
59
- - 6140ebc: Add `ScrcpyCrop` class for the `crop` option
60
- - 6140ebc: Add aliases for all Scrcpy patch versions
61
- - 7f2a09c: Fix incorrect scroll controller in version 1.22 and later
62
-
63
- ## 1.0.1
64
-
65
- ### Patch Changes
66
-
67
- - 53688d3: Use PNPM workspace and Changesets to manage the monorepo.
68
-
69
- Because Changesets doesn't support alpha versions (`0.x.x`), this version is `1.0.0`. Future versions will follow SemVer rules, for example, breaking API changes will introduce a new major version.
70
-
71
- - db8466f: Rewrite the struct API completely
72
- - ea5002b: Add support up to Scrcpy version 3.0
73
- - db8466f: Improve tree-shaking by removing TypeScript enum and namespace
74
- - Updated dependencies [53688d3]
75
- - Updated dependencies [db8466f]
76
- - Updated dependencies [ea5002b]
77
- - Updated dependencies [db8466f]
78
- - @yume-chan/no-data-view@1.0.1
79
- - @yume-chan/stream-extra@1.0.1
80
- - @yume-chan/struct@1.0.1
81
-
82
- This log was last generated on Tue, 18 Jun 2024 02:49:43 GMT and should not be manually modified.
83
-
84
- ## 0.0.24
85
-
86
- Tue, 18 Jun 2024 02:49:43 GMT
87
-
88
- ### Updates
89
-
90
- - Add AV1 metadata parser `Av1`
91
- - Move clipboard stream to `ScrcpyOptions#clipboard`
92
- - Make `ScrcpyControlMessageWriter#setClipboard` wait for the clipboard to be updated on device (when `sequence` is not 0)
93
- - Add options class for version 2.3
94
-
95
- ## 0.0.23
96
-
97
- Thu, 21 Mar 2024 03:15:10 GMT
98
-
99
- ### Updates
100
-
101
- - Fix several ReDos vulnerabilities
102
-
103
- ## 0.0.22
104
-
105
- Wed, 13 Dec 2023 05:57:27 GMT
106
-
107
- ### Updates
108
-
109
- - Fix parsing `sps_max_dec_pic_buffering_minus1` in H.265 SPS
110
- - Support parsing `vui_hrd_parameters` in H.265 SPS
111
- - Add support for Scrcpy 2.2
112
-
113
- ## 0.0.21
114
-
115
- Fri, 25 Aug 2023 14:05:18 GMT
116
-
117
- ### Updates
118
-
119
- - Add support for Scrcpy server version 2.1 and 2.1.1
120
- - Move the fetching server binary script to `@yume-chan/scrcpy-fetch-server` package
121
-
122
- ## 0.0.20
123
-
124
- Mon, 05 Jun 2023 02:51:41 GMT
125
-
126
- ### Updates
127
-
128
- - Add support for Scrcpy 2.0. New features including audio forwarding (supports PCM, AAC and OPUS encoding) and other video codecs (supports H.264 and H.265, AV1 not supported). Read the PR for new options and breaking changes. ([#495](https://github.com/yume-chan/ya-webadb/pull/495))
129
- - Move ADB related code to `@yume-chan/adb-scrcpy` package. This package now only implements the Scrcpy protocol.
130
-
131
- ## 0.0.19
132
-
133
- Sun, 09 Apr 2023 05:55:33 GMT
134
-
135
- ### Updates
136
-
137
- - Change `AdbScrcpyClient#pushServer` to take a `ReadableStream<Uint8Array>` instead of returning a `WritableStream<Uint8Array>`
138
- - Add `AdbReverseNotSupportedError` handling and automatically switch to forward tunnel in `AdbScrcpyClient`.
139
- - Update `AndroidKeyCode` enum to align with Web `KeyboardEvent.code`
140
-
141
- ## 0.0.18
142
-
143
- Wed, 25 Jan 2023 21:33:49 GMT
144
-
145
- ### Updates
146
-
147
- - Move `@yume-chan/adb` to `peerDependencies`
148
- - Add support for Scrcpy server version 1.25
149
- - Add support for `SetClipboard` control message and `AckClipboard` device message
150
-
151
- ## 0.0.17
152
-
153
- Tue, 18 Oct 2022 09:32:30 GMT
154
-
155
- ### Updates
156
-
157
- - Add standalone types for serializing/deserializing Scrcpy packets
158
- - Separate decoders to own packages so they don't need optional peer dependencies.
159
-
160
- ## 0.0.16
161
-
162
- Sat, 28 May 2022 03:56:37 GMT
163
-
164
- ### Updates
165
-
166
- - Upgrade TypeScript to 4.7.2 to enable Node.js ESM
167
- - Add support for more `CodecOptions` keys
168
- - Add support for `CodecOptions` value types other than `int`
169
-
170
- ## 0.0.15
171
-
172
- Mon, 02 May 2022 04:18:01 GMT
173
-
174
- ### Updates
175
-
176
- - Add support for `rotateDevice` control message
177
- - Add method to get screen list
178
-
179
- ## 0.0.14
180
-
181
- Sat, 30 Apr 2022 14:05:48 GMT
182
-
183
- ### Updates
184
-
185
- - Add support for Scrcpy server version 1.24
186
-
187
- ## 0.0.13
188
-
189
- Thu, 28 Apr 2022 01:23:53 GMT
190
-
191
- ### Updates
192
-
193
- - Add support for Scrcpy server version 1.23
194
-
195
- ## 0.0.12
196
-
197
- Sun, 03 Apr 2022 11:18:47 GMT
198
-
199
- _Version update only_
200
-
201
- ## 0.0.11
202
-
203
- Sun, 03 Apr 2022 10:54:15 GMT
204
-
205
- ### Updates
206
-
207
- - Add support for Scrcpy server version 1.22
208
- - Update to use Web Streams API
209
- - Improve compatibility with Node.js 12 ESM format
210
- - Workaround a issue with server crash on Samsung ROM (https://github.com/Genymobile/scrcpy/issues/2841)
211
- - Remove output parsing. It's output is for debugging only, not machine readable.
212
- - Update license year
213
-
214
- ## 0.0.10
215
-
216
- Sun, 09 Jan 2022 15:52:20 GMT
217
-
218
- _Initial release_