@yume-chan/scrcpy 3.0.0-beta.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 (438) hide show
  1. package/esm/1_15/impl/codec-options.d.ts +12 -11
  2. package/esm/1_15/impl/codec-options.d.ts.map +1 -1
  3. package/esm/1_15/impl/codec-options.js +50 -11
  4. package/esm/1_15/impl/codec-options.js.map +1 -1
  5. package/esm/1_15/impl/compute-option-values.d.ts +7 -0
  6. package/esm/1_15/impl/compute-option-values.d.ts.map +1 -0
  7. package/esm/1_15/impl/compute-option-values.js +12 -0
  8. package/esm/1_15/impl/compute-option-values.js.map +1 -0
  9. package/esm/1_15/impl/index.d.ts +2 -0
  10. package/esm/1_15/impl/index.d.ts.map +1 -1
  11. package/esm/1_15/impl/index.js +2 -0
  12. package/esm/1_15/impl/index.js.map +1 -1
  13. package/esm/1_15/impl/init.d.ts +11 -11
  14. package/esm/1_15/impl/init.d.ts.map +1 -1
  15. package/esm/1_15/impl/media-stream-transformer.d.ts +2 -2
  16. package/esm/1_15/impl/media-stream-transformer.js +1 -1
  17. package/esm/1_15/impl/media-stream-transformer.js.map +1 -1
  18. package/esm/1_15/impl/parse-video-stream-metadata.js +4 -4
  19. package/esm/1_15/impl/parse-video-stream-metadata.js.map +1 -1
  20. package/esm/1_15/impl/set-display-power.d.ts +13 -0
  21. package/esm/1_15/impl/set-display-power.d.ts.map +1 -0
  22. package/esm/1_15/impl/set-display-power.js +16 -0
  23. package/esm/1_15/impl/set-display-power.js.map +1 -0
  24. package/esm/1_15/options.d.ts +12 -9
  25. package/esm/1_15/options.d.ts.map +1 -1
  26. package/esm/1_15/options.js +20 -2
  27. package/esm/1_15/options.js.map +1 -1
  28. package/esm/1_17/options.d.ts +11 -9
  29. package/esm/1_17/options.d.ts.map +1 -1
  30. package/esm/1_17/options.js +20 -2
  31. package/esm/1_17/options.js.map +1 -1
  32. package/esm/1_18/impl/init.d.ts +3 -3
  33. package/esm/1_18/impl/init.d.ts.map +1 -1
  34. package/esm/1_18/options.d.ts +11 -9
  35. package/esm/1_18/options.d.ts.map +1 -1
  36. package/esm/1_18/options.js +20 -2
  37. package/esm/1_18/options.js.map +1 -1
  38. package/esm/1_21/impl/compute-option-values.d.ts +23 -0
  39. package/esm/1_21/impl/compute-option-values.d.ts.map +1 -0
  40. package/esm/1_21/impl/compute-option-values.js +12 -0
  41. package/esm/1_21/impl/compute-option-values.js.map +1 -0
  42. package/esm/1_21/impl/index.d.ts +3 -1
  43. package/esm/1_21/impl/index.d.ts.map +1 -1
  44. package/esm/1_21/impl/index.js +2 -1
  45. package/esm/1_21/impl/index.js.map +1 -1
  46. package/esm/1_21/impl/init.d.ts +1 -1
  47. package/esm/1_21/impl/init.d.ts.map +1 -1
  48. package/esm/1_21/impl/serialize.d.ts +1 -1
  49. package/esm/1_21/impl/serialize.d.ts.map +1 -1
  50. package/esm/1_21/impl/serialize.js.map +1 -1
  51. package/esm/1_21/options.d.ts +11 -9
  52. package/esm/1_21/options.d.ts.map +1 -1
  53. package/esm/1_21/options.js +20 -2
  54. package/esm/1_21/options.js.map +1 -1
  55. package/esm/1_22/impl/init.d.ts +3 -3
  56. package/esm/1_22/impl/init.d.ts.map +1 -1
  57. package/esm/1_22/impl/parse-video-stream-metadata.d.ts +2 -2
  58. package/esm/1_22/impl/parse-video-stream-metadata.d.ts.map +1 -1
  59. package/esm/1_22/impl/parse-video-stream-metadata.js +3 -3
  60. package/esm/1_22/impl/parse-video-stream-metadata.js.map +1 -1
  61. package/esm/1_22/options.d.ts +11 -9
  62. package/esm/1_22/options.d.ts.map +1 -1
  63. package/esm/1_22/options.js +21 -3
  64. package/esm/1_22/options.js.map +1 -1
  65. package/esm/1_23/impl/init.d.ts +1 -1
  66. package/esm/1_23/impl/init.d.ts.map +1 -1
  67. package/esm/1_23/impl/media-stream-transformer.d.ts +2 -2
  68. package/esm/1_23/impl/media-stream-transformer.js +1 -1
  69. package/esm/1_23/impl/media-stream-transformer.js.map +1 -1
  70. package/esm/1_23/options.d.ts +11 -9
  71. package/esm/1_23/options.d.ts.map +1 -1
  72. package/esm/1_23/options.js +21 -3
  73. package/esm/1_23/options.js.map +1 -1
  74. package/esm/1_24/impl/init.d.ts +1 -1
  75. package/esm/1_24/impl/init.d.ts.map +1 -1
  76. package/esm/1_24/options.d.ts +11 -9
  77. package/esm/1_24/options.d.ts.map +1 -1
  78. package/esm/1_24/options.js +21 -3
  79. package/esm/1_24/options.js.map +1 -1
  80. package/esm/1_25/options.d.ts +11 -9
  81. package/esm/1_25/options.d.ts.map +1 -1
  82. package/esm/1_25/options.js +21 -3
  83. package/esm/1_25/options.js.map +1 -1
  84. package/esm/2_0/impl/defaults.d.ts +8 -11
  85. package/esm/2_0/impl/defaults.d.ts.map +1 -1
  86. package/esm/2_0/impl/defaults.js +4 -10
  87. package/esm/2_0/impl/defaults.js.map +1 -1
  88. package/esm/2_0/impl/index.d.ts +1 -1
  89. package/esm/2_0/impl/index.d.ts.map +1 -1
  90. package/esm/2_0/impl/index.js +1 -1
  91. package/esm/2_0/impl/index.js.map +1 -1
  92. package/esm/2_0/impl/init.d.ts +8 -8
  93. package/esm/2_0/impl/init.d.ts.map +1 -1
  94. package/esm/2_0/impl/parse-audio-stream-metadata.d.ts +4 -1
  95. package/esm/2_0/impl/parse-audio-stream-metadata.d.ts.map +1 -1
  96. package/esm/2_0/impl/parse-audio-stream-metadata.js +28 -39
  97. package/esm/2_0/impl/parse-audio-stream-metadata.js.map +1 -1
  98. package/esm/2_0/impl/parse-video-stream-metadata.d.ts +5 -2
  99. package/esm/2_0/impl/parse-video-stream-metadata.d.ts.map +1 -1
  100. package/esm/2_0/impl/parse-video-stream-metadata.js +14 -12
  101. package/esm/2_0/impl/parse-video-stream-metadata.js.map +1 -1
  102. package/esm/2_0/options.d.ts +19 -20
  103. package/esm/2_0/options.d.ts.map +1 -1
  104. package/esm/2_0/options.js +22 -4
  105. package/esm/2_0/options.js.map +1 -1
  106. package/esm/2_1/impl/defaults.d.ts +8 -11
  107. package/esm/2_1/impl/defaults.d.ts.map +1 -1
  108. package/esm/2_1/impl/defaults.js.map +1 -1
  109. package/esm/2_1/impl/init.d.ts +3 -3
  110. package/esm/2_1/impl/init.d.ts.map +1 -1
  111. package/esm/2_1/options.d.ts +21 -22
  112. package/esm/2_1/options.d.ts.map +1 -1
  113. package/esm/2_1/options.js +22 -4
  114. package/esm/2_1/options.js.map +1 -1
  115. package/esm/2_2/impl/compute-option-values.d.ts +22 -0
  116. package/esm/2_2/impl/compute-option-values.d.ts.map +1 -0
  117. package/esm/2_2/impl/compute-option-values.js +11 -0
  118. package/esm/2_2/impl/compute-option-values.js.map +1 -0
  119. package/esm/2_2/impl/defaults.d.ts +8 -11
  120. package/esm/2_2/impl/defaults.d.ts.map +1 -1
  121. package/esm/2_2/impl/defaults.js.map +1 -1
  122. package/esm/2_2/impl/index.d.ts +2 -0
  123. package/esm/2_2/impl/index.d.ts.map +1 -1
  124. package/esm/2_2/impl/index.js +1 -0
  125. package/esm/2_2/impl/index.js.map +1 -1
  126. package/esm/2_2/impl/init.d.ts +5 -5
  127. package/esm/2_2/impl/init.d.ts.map +1 -1
  128. package/esm/2_2/options.d.ts +21 -22
  129. package/esm/2_2/options.d.ts.map +1 -1
  130. package/esm/2_2/options.js +22 -7
  131. package/esm/2_2/options.js.map +1 -1
  132. package/esm/2_3/impl/index.d.ts +1 -0
  133. package/esm/2_3/impl/index.d.ts.map +1 -1
  134. package/esm/2_3/impl/index.js +1 -0
  135. package/esm/2_3/impl/index.js.map +1 -1
  136. package/esm/2_3/impl/init.d.ts +2 -2
  137. package/esm/2_3/impl/init.d.ts.map +1 -1
  138. package/esm/2_3/impl/parse-audio-stream-metadata.d.ts +5 -0
  139. package/esm/2_3/impl/parse-audio-stream-metadata.d.ts.map +1 -0
  140. package/esm/2_3/impl/parse-audio-stream-metadata.js +31 -0
  141. package/esm/2_3/impl/parse-audio-stream-metadata.js.map +1 -0
  142. package/esm/2_3/options.d.ts +21 -22
  143. package/esm/2_3/options.d.ts.map +1 -1
  144. package/esm/2_3/options.js +22 -7
  145. package/esm/2_3/options.js.map +1 -1
  146. package/esm/2_4/options.d.ts +22 -23
  147. package/esm/2_4/options.d.ts.map +1 -1
  148. package/esm/2_4/options.js +25 -7
  149. package/esm/2_4/options.js.map +1 -1
  150. package/esm/2_6/impl/compute-option-values.d.ts +29 -0
  151. package/esm/2_6/impl/compute-option-values.d.ts.map +1 -0
  152. package/esm/2_6/impl/compute-option-values.js +12 -0
  153. package/esm/2_6/impl/compute-option-values.js.map +1 -0
  154. package/esm/2_6/impl/defaults.d.ts +8 -11
  155. package/esm/2_6/impl/defaults.d.ts.map +1 -1
  156. package/esm/2_6/impl/defaults.js.map +1 -1
  157. package/esm/2_6/impl/index.d.ts +2 -0
  158. package/esm/2_6/impl/index.d.ts.map +1 -1
  159. package/esm/2_6/impl/index.js +1 -0
  160. package/esm/2_6/impl/index.js.map +1 -1
  161. package/esm/2_6/impl/init.d.ts +3 -3
  162. package/esm/2_6/impl/init.d.ts.map +1 -1
  163. package/esm/2_6/options.d.ts +22 -23
  164. package/esm/2_6/options.d.ts.map +1 -1
  165. package/esm/2_6/options.js +25 -10
  166. package/esm/2_6/options.js.map +1 -1
  167. package/esm/2_7/impl/index.d.ts.map +1 -1
  168. package/esm/2_7/impl/index.js.map +1 -1
  169. package/esm/2_7/options.d.ts +22 -23
  170. package/esm/2_7/options.d.ts.map +1 -1
  171. package/esm/2_7/options.js +25 -10
  172. package/esm/2_7/options.js.map +1 -1
  173. package/esm/3_0/impl/defaults.d.ts +29 -33
  174. package/esm/3_0/impl/defaults.d.ts.map +1 -1
  175. package/esm/3_0/impl/defaults.js +4 -8
  176. package/esm/3_0/impl/defaults.js.map +1 -1
  177. package/esm/3_0/impl/index.d.ts +1 -0
  178. package/esm/3_0/impl/index.d.ts.map +1 -1
  179. package/esm/3_0/impl/index.js +1 -0
  180. package/esm/3_0/impl/index.js.map +1 -1
  181. package/esm/3_0/impl/init.d.ts +4 -4
  182. package/esm/3_0/impl/init.d.ts.map +1 -1
  183. package/esm/3_0/impl/set-display-power.d.ts +12 -0
  184. package/esm/3_0/impl/set-display-power.d.ts.map +1 -0
  185. package/esm/3_0/impl/set-display-power.js +10 -0
  186. package/esm/3_0/impl/set-display-power.js.map +1 -0
  187. package/esm/3_0/options.d.ts +43 -45
  188. package/esm/3_0/options.d.ts.map +1 -1
  189. package/esm/3_0/options.js +25 -10
  190. package/esm/3_0/options.js.map +1 -1
  191. package/esm/3_1/impl/defaults.d.ts +29 -33
  192. package/esm/3_1/impl/defaults.d.ts.map +1 -1
  193. package/esm/3_1/impl/defaults.js.map +1 -1
  194. package/esm/3_1/impl/index.d.ts.map +1 -1
  195. package/esm/3_1/impl/index.js.map +1 -1
  196. package/esm/3_1/impl/init.d.ts +2 -2
  197. package/esm/3_1/impl/init.d.ts.map +1 -1
  198. package/esm/3_1/options.d.ts +43 -45
  199. package/esm/3_1/options.d.ts.map +1 -1
  200. package/esm/3_1/options.js +25 -10
  201. package/esm/3_1/options.js.map +1 -1
  202. package/esm/3_2/impl/defaults.d.ts +29 -33
  203. package/esm/3_2/impl/defaults.d.ts.map +1 -1
  204. package/esm/3_2/impl/defaults.js.map +1 -1
  205. package/esm/3_2/impl/index.d.ts.map +1 -1
  206. package/esm/3_2/impl/index.js.map +1 -1
  207. package/esm/3_2/impl/init.d.ts +2 -2
  208. package/esm/3_2/impl/init.d.ts.map +1 -1
  209. package/esm/3_2/options.d.ts +43 -45
  210. package/esm/3_2/options.d.ts.map +1 -1
  211. package/esm/3_2/options.js +25 -10
  212. package/esm/3_2/options.js.map +1 -1
  213. package/esm/3_3_1/options.d.ts +43 -45
  214. package/esm/3_3_1/options.d.ts.map +1 -1
  215. package/esm/3_3_1/options.js +25 -10
  216. package/esm/3_3_1/options.js.map +1 -1
  217. package/esm/4_0/impl/compute-option-values.d.ts +15 -0
  218. package/esm/4_0/impl/compute-option-values.d.ts.map +1 -0
  219. package/esm/4_0/impl/compute-option-values.js +9 -0
  220. package/esm/4_0/impl/compute-option-values.js.map +1 -0
  221. package/esm/4_0/impl/control-message-types.d.ts +25 -0
  222. package/esm/4_0/impl/control-message-types.d.ts.map +1 -0
  223. package/esm/4_0/impl/control-message-types.js +26 -0
  224. package/esm/4_0/impl/control-message-types.js.map +1 -0
  225. package/esm/4_0/impl/defaults.d.ts +58 -0
  226. package/esm/4_0/impl/defaults.d.ts.map +1 -0
  227. package/esm/4_0/impl/defaults.js +12 -0
  228. package/esm/4_0/impl/defaults.js.map +1 -0
  229. package/esm/4_0/impl/index.d.ts +9 -0
  230. package/esm/4_0/impl/index.d.ts.map +1 -0
  231. package/esm/4_0/impl/index.js +7 -0
  232. package/esm/4_0/impl/index.js.map +1 -0
  233. package/esm/4_0/impl/init.d.ts +10 -0
  234. package/esm/4_0/impl/init.d.ts.map +1 -0
  235. package/esm/4_0/impl/init.js +2 -0
  236. package/esm/4_0/impl/init.js.map +1 -0
  237. package/esm/4_0/impl/media-stream-transformer.d.ts +5 -0
  238. package/esm/4_0/impl/media-stream-transformer.d.ts.map +1 -0
  239. package/esm/4_0/impl/media-stream-transformer.js +39 -0
  240. package/esm/4_0/impl/media-stream-transformer.js.map +1 -0
  241. package/esm/4_0/impl/parse-video-stream-metadata.d.ts +6 -0
  242. package/esm/4_0/impl/parse-video-stream-metadata.d.ts.map +1 -0
  243. package/esm/4_0/impl/parse-video-stream-metadata.js +21 -0
  244. package/esm/4_0/impl/parse-video-stream-metadata.js.map +1 -0
  245. package/esm/4_0/impl/prev.d.ts +2 -0
  246. package/esm/4_0/impl/prev.d.ts.map +1 -0
  247. package/esm/4_0/impl/prev.js +2 -0
  248. package/esm/4_0/impl/prev.js.map +1 -0
  249. package/esm/4_0/index.d.ts +100 -0
  250. package/esm/4_0/index.d.ts.map +1 -0
  251. package/esm/4_0/index.js +93 -0
  252. package/esm/4_0/index.js.map +1 -0
  253. package/esm/4_1/impl/control-message-types.d.ts +26 -0
  254. package/esm/4_1/impl/control-message-types.d.ts.map +1 -0
  255. package/esm/4_1/impl/control-message-types.js +27 -0
  256. package/esm/4_1/impl/control-message-types.js.map +1 -0
  257. package/esm/4_1/impl/defaults.d.ts +59 -0
  258. package/esm/4_1/impl/defaults.d.ts.map +1 -0
  259. package/esm/4_1/impl/defaults.js +6 -0
  260. package/esm/4_1/impl/defaults.js.map +1 -0
  261. package/esm/4_1/impl/index.d.ts +6 -0
  262. package/esm/4_1/impl/index.d.ts.map +1 -0
  263. package/esm/4_1/impl/index.js +5 -0
  264. package/esm/4_1/impl/index.js.map +1 -0
  265. package/esm/4_1/impl/init.d.ts +6 -0
  266. package/esm/4_1/impl/init.d.ts.map +1 -0
  267. package/esm/4_1/impl/init.js +2 -0
  268. package/esm/4_1/impl/init.js.map +1 -0
  269. package/esm/4_1/impl/parse-video-stream-metadata.d.ts +4 -0
  270. package/esm/4_1/impl/parse-video-stream-metadata.d.ts.map +1 -0
  271. package/esm/4_1/impl/parse-video-stream-metadata.js +19 -0
  272. package/esm/4_1/impl/parse-video-stream-metadata.js.map +1 -0
  273. package/esm/4_1/impl/prev.d.ts +2 -0
  274. package/esm/4_1/impl/prev.d.ts.map +1 -0
  275. package/esm/4_1/impl/prev.js +2 -0
  276. package/esm/4_1/impl/prev.js.map +1 -0
  277. package/esm/4_1/index.d.ts +101 -0
  278. package/esm/4_1/index.d.ts.map +1 -0
  279. package/esm/4_1/index.js +93 -0
  280. package/esm/4_1/index.js.map +1 -0
  281. package/esm/base/control-message-type-value.d.ts +5 -0
  282. package/esm/base/control-message-type-value.d.ts.map +1 -1
  283. package/esm/base/control-message-type-value.js +5 -0
  284. package/esm/base/control-message-type-value.js.map +1 -1
  285. package/esm/base/media.d.ts +8 -1
  286. package/esm/base/media.d.ts.map +1 -1
  287. package/esm/base/options.d.ts +6 -4
  288. package/esm/base/options.d.ts.map +1 -1
  289. package/esm/base/video.d.ts +1 -7
  290. package/esm/base/video.d.ts.map +1 -1
  291. package/esm/base/video.js +1 -13
  292. package/esm/base/video.js.map +1 -1
  293. package/esm/control/boolean.d.ts +10 -0
  294. package/esm/control/boolean.d.ts.map +1 -0
  295. package/esm/control/boolean.js +3 -0
  296. package/esm/control/boolean.js.map +1 -0
  297. package/esm/control/index.d.ts +2 -1
  298. package/esm/control/index.d.ts.map +1 -1
  299. package/esm/control/index.js +2 -1
  300. package/esm/control/index.js.map +1 -1
  301. package/esm/control/resize-display.d.ts +12 -0
  302. package/esm/control/resize-display.d.ts.map +1 -0
  303. package/esm/control/resize-display.js +8 -0
  304. package/esm/control/resize-display.js.map +1 -0
  305. package/esm/control/serializer.d.ts +8 -2
  306. package/esm/control/serializer.d.ts.map +1 -1
  307. package/esm/control/serializer.js +30 -4
  308. package/esm/control/serializer.js.map +1 -1
  309. package/esm/control/writer.d.ts +8 -2
  310. package/esm/control/writer.d.ts.map +1 -1
  311. package/esm/control/writer.js +17 -2
  312. package/esm/control/writer.js.map +1 -1
  313. package/esm/index.d.ts +2 -0
  314. package/esm/index.d.ts.map +1 -1
  315. package/esm/index.js +2 -0
  316. package/esm/index.js.map +1 -1
  317. package/esm/latest.d.ts +2 -2
  318. package/esm/latest.d.ts.map +1 -1
  319. package/esm/latest.js +2 -2
  320. package/esm/latest.js.map +1 -1
  321. package/esm/utils/omit.d.ts +1 -1
  322. package/esm/utils/omit.d.ts.map +1 -1
  323. package/esm/video/codec-id.d.ts +6 -0
  324. package/esm/video/codec-id.d.ts.map +1 -0
  325. package/esm/video/codec-id.js +6 -0
  326. package/esm/video/codec-id.js.map +1 -0
  327. package/esm/video/index.d.ts +4 -0
  328. package/esm/video/index.d.ts.map +1 -1
  329. package/esm/video/index.js +12 -0
  330. package/esm/video/index.js.map +1 -1
  331. package/esm/video/size.d.ts +8 -9
  332. package/esm/video/size.d.ts.map +1 -1
  333. package/esm/video/size.js +2 -2
  334. package/esm/video/size.js.map +1 -1
  335. package/package.json +7 -7
  336. package/src/1_15/impl/codec-options.ts +68 -17
  337. package/src/1_15/impl/compute-option-values.ts +26 -0
  338. package/src/1_15/impl/index.ts +2 -0
  339. package/src/1_15/impl/init.ts +11 -11
  340. package/src/1_15/impl/media-stream-transformer.ts +3 -3
  341. package/src/1_15/impl/parse-video-stream-metadata.ts +4 -4
  342. package/src/1_15/impl/set-display-power.ts +29 -0
  343. package/src/1_15/options.ts +45 -9
  344. package/src/1_17/options.ts +46 -10
  345. package/src/1_18/impl/init.ts +3 -3
  346. package/src/1_18/options.ts +46 -10
  347. package/src/1_21/impl/compute-option-values.ts +43 -0
  348. package/src/1_21/impl/index.ts +10 -1
  349. package/src/1_21/impl/init.ts +1 -1
  350. package/src/1_21/impl/serialize.ts +3 -3
  351. package/src/1_21/options.ts +46 -10
  352. package/src/1_22/impl/init.ts +3 -3
  353. package/src/1_22/impl/parse-video-stream-metadata.ts +4 -4
  354. package/src/1_22/options.ts +47 -11
  355. package/src/1_23/impl/init.ts +1 -1
  356. package/src/1_23/impl/media-stream-transformer.ts +3 -3
  357. package/src/1_23/options.ts +47 -11
  358. package/src/1_24/impl/init.ts +1 -1
  359. package/src/1_24/options.ts +47 -11
  360. package/src/1_25/options.ts +47 -11
  361. package/src/2_0/impl/defaults.ts +19 -23
  362. package/src/2_0/impl/index.ts +5 -1
  363. package/src/2_0/impl/init.ts +8 -8
  364. package/src/2_0/impl/parse-audio-stream-metadata.ts +34 -44
  365. package/src/2_0/impl/parse-video-stream-metadata.ts +24 -21
  366. package/src/2_0/options.ts +63 -12
  367. package/src/2_1/impl/defaults.ts +1 -1
  368. package/src/2_1/impl/init.ts +3 -3
  369. package/src/2_1/options.ts +66 -15
  370. package/src/2_2/generate-type-tests.js +106 -0
  371. package/src/2_2/impl/compute-option-values.ts +44 -0
  372. package/src/2_2/impl/defaults.ts +1 -1
  373. package/src/2_2/impl/index.ts +2 -0
  374. package/src/2_2/impl/init.ts +5 -5
  375. package/src/2_2/options.ts +66 -19
  376. package/src/2_3/impl/index.ts +4 -0
  377. package/src/2_3/impl/init.ts +2 -5
  378. package/src/2_3/impl/parse-audio-stream-metadata.ts +36 -0
  379. package/src/2_3/options.ts +66 -19
  380. package/src/2_4/options.ts +75 -23
  381. package/src/2_6/generate-type-tests.js +119 -0
  382. package/src/2_6/impl/compute-option-values.ts +48 -0
  383. package/src/2_6/impl/defaults.ts +1 -1
  384. package/src/2_6/impl/index.ts +9 -0
  385. package/src/2_6/impl/init.ts +3 -6
  386. package/src/2_6/options.ts +75 -27
  387. package/src/2_7/impl/index.ts +1 -0
  388. package/src/2_7/options.ts +75 -27
  389. package/src/3_0/impl/defaults.ts +12 -14
  390. package/src/3_0/impl/index.ts +5 -0
  391. package/src/3_0/impl/init.ts +4 -7
  392. package/src/3_0/impl/set-display-power.ts +23 -0
  393. package/src/3_0/options.ts +75 -27
  394. package/src/3_1/impl/defaults.ts +1 -1
  395. package/src/3_1/impl/index.ts +1 -0
  396. package/src/3_1/impl/init.ts +2 -2
  397. package/src/3_1/options.ts +75 -27
  398. package/src/3_2/impl/defaults.ts +1 -1
  399. package/src/3_2/impl/index.ts +1 -0
  400. package/src/3_2/impl/init.ts +2 -5
  401. package/src/3_2/options.ts +75 -27
  402. package/src/3_3_1/options.ts +75 -27
  403. package/src/4_0/impl/compute-option-values.ts +31 -0
  404. package/src/4_0/impl/control-message-types.ts +27 -0
  405. package/src/4_0/impl/defaults.ts +20 -0
  406. package/src/4_0/impl/index.ts +9 -0
  407. package/src/4_0/impl/init.ts +14 -0
  408. package/src/4_0/impl/media-stream-transformer.ts +58 -0
  409. package/src/4_0/impl/parse-video-stream-metadata.ts +34 -0
  410. package/src/4_0/impl/prev.ts +1 -0
  411. package/src/4_0/index.ts +226 -0
  412. package/src/4_1/impl/control-message-types.ts +28 -0
  413. package/src/4_1/impl/defaults.ts +8 -0
  414. package/src/4_1/impl/index.ts +6 -0
  415. package/src/4_1/impl/init.ts +7 -0
  416. package/src/4_1/impl/parse-video-stream-metadata.ts +23 -0
  417. package/src/4_1/impl/prev.ts +1 -0
  418. package/src/4_1/index.ts +226 -0
  419. package/src/base/control-message-type-value.ts +5 -0
  420. package/src/base/media.ts +12 -3
  421. package/src/base/options.ts +15 -5
  422. package/src/base/video.ts +2 -19
  423. package/src/control/boolean.ts +9 -0
  424. package/src/control/index.ts +2 -1
  425. package/src/control/resize-display.ts +16 -0
  426. package/src/control/serializer.ts +38 -8
  427. package/src/control/writer.ts +24 -6
  428. package/src/index.ts +2 -0
  429. package/src/latest.ts +4 -3
  430. package/src/utils/omit.ts +1 -1
  431. package/src/video/codec-id.ts +6 -0
  432. package/src/video/index.ts +19 -0
  433. package/src/video/size.ts +10 -4
  434. package/esm/control/set-screen-power-mode.d.ts +0 -11
  435. package/esm/control/set-screen-power-mode.d.ts.map +0 -1
  436. package/esm/control/set-screen-power-mode.js +0 -7
  437. package/esm/control/set-screen-power-mode.js.map +0 -1
  438. package/src/control/set-screen-power-mode.ts +0 -17
@@ -2,69 +2,85 @@ 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
7
  ScrcpyDisplay,
7
8
  ScrcpyEncoder,
8
- ScrcpyMediaStreamPacket,
9
9
  ScrcpyOptions,
10
10
  ScrcpyOptionsListEncoders,
11
11
  ScrcpyScrollController,
12
12
  ScrcpyVideoStream,
13
+ ScrcpyVideoStreamPacket,
13
14
  } from "../base/index.js";
14
15
  import { ScrcpyDeviceMessageParsers } from "../base/index.js";
15
16
  import type {
16
17
  ScrcpyBackOrScreenOnControlMessage,
17
18
  ScrcpyInjectTouchControlMessage,
18
19
  ScrcpySetClipboardControlMessage,
20
+ ScrcpySetDisplayPowerControlMessage,
19
21
  ScrcpyUHidCreateControlMessage,
20
22
  ScrcpyUHidOutputDeviceMessage,
21
23
  } from "../latest.js";
22
24
 
23
- import type { Init } from "./impl/index.js";
25
+ import type { ComputeOptionTypes, Init } from "./impl/index.js";
24
26
  import {
25
27
  AckClipboardHandler,
26
28
  ClipboardStream,
29
+ computeOptionValues,
27
30
  ControlMessageTypes,
28
31
  createMediaStreamTransformer,
29
32
  createScrollController,
30
33
  Defaults,
34
+ parseAudioCodecOption,
35
+ parseAudioMetadataCodec,
31
36
  parseAudioStreamMetadata,
32
37
  parseDisplay,
33
38
  parseEncoder,
39
+ parseVideoCodecOption,
34
40
  parseVideoStreamMetadata,
41
+ parseVideoStreamMetadataAsync,
35
42
  serialize,
36
43
  serializeBackOrScreenOnControlMessage,
37
44
  serializeInjectTouchControlMessage,
38
45
  serializeSetClipboardControlMessage,
46
+ serializeSetDisplayPowerControlMessage,
39
47
  serializeUHidCreateControlMessage,
40
48
  setListDisplays,
41
49
  setListEncoders,
42
50
  UHidOutputStream,
43
51
  } from "./impl/index.js";
44
52
 
45
- export class ScrcpyOptions2_6<TVideo extends boolean>
46
- implements ScrcpyOptions<Init<TVideo>>, ScrcpyOptionsListEncoders
53
+ export class ScrcpyOptions2_6<TInit extends Init = Init>
54
+ implements
55
+ ScrcpyOptions<ScrcpyOptions2_6.Value<TInit>>,
56
+ ScrcpyOptionsListEncoders
47
57
  {
48
58
  static readonly Defaults = Defaults;
49
59
 
50
- readonly value: Required<Init<TVideo>>;
60
+ readonly value: ScrcpyOptions2_6.Value<TInit>;
51
61
 
52
62
  get controlMessageTypes(): typeof ControlMessageTypes {
53
63
  return ControlMessageTypes;
54
64
  }
55
65
 
56
66
  #clipboard: ClipboardStream | undefined;
57
- get clipboard(): ReadableStream<string> | undefined {
58
- return this.#clipboard;
67
+ get clipboard(): MapBoolean<
68
+ this["value"]["clipboardAutosync"],
69
+ ReadableStream<string>,
70
+ undefined
71
+ > {
72
+ return this.#clipboard as never;
59
73
  }
60
74
 
61
75
  #ackClipboardHandler: AckClipboardHandler | undefined;
62
76
 
63
77
  #uHidOutput: UHidOutputStream | undefined;
64
- get uHidOutput():
65
- | ReadableStream<ScrcpyUHidOutputDeviceMessage>
66
- | undefined {
67
- return this.#uHidOutput;
78
+ get uHidOutput(): MapBoolean<
79
+ this["value"]["control"],
80
+ ReadableStream<ScrcpyUHidOutputDeviceMessage>,
81
+ undefined
82
+ > {
83
+ return this.#uHidOutput as never;
68
84
  }
69
85
 
70
86
  #deviceMessageParsers = new ScrcpyDeviceMessageParsers();
@@ -72,16 +88,8 @@ export class ScrcpyOptions2_6<TVideo extends boolean>
72
88
  return this.#deviceMessageParsers;
73
89
  }
74
90
 
75
- constructor(init: Init<TVideo>) {
76
- this.value = { ...Defaults, ...init } as never;
77
-
78
- if (this.value.videoSource === "camera") {
79
- this.value.control = false;
80
- }
81
-
82
- if (this.value.audioDup) {
83
- this.value.audioSource = "playback";
84
- }
91
+ constructor(init: TInit) {
92
+ this.value = computeOptionValues(init, Defaults);
85
93
 
86
94
  if (this.value.control) {
87
95
  if (this.value.clipboardAutosync) {
@@ -101,7 +109,7 @@ export class ScrcpyOptions2_6<TVideo extends boolean>
101
109
  }
102
110
 
103
111
  serialize(): string[] {
104
- return serialize<Init<boolean>>(this.value, Defaults);
112
+ return serialize(this.value, Defaults);
105
113
  }
106
114
 
107
115
  setListDisplays(): void {
@@ -123,18 +131,29 @@ export class ScrcpyOptions2_6<TVideo extends boolean>
123
131
  parseVideoStreamMetadata(
124
132
  stream: ReadableStream<Uint8Array>,
125
133
  ): MaybePromiseLike<ScrcpyVideoStream> {
126
- return parseVideoStreamMetadata(this.value, stream);
134
+ return parseVideoStreamMetadata(
135
+ stream,
136
+ this.value.sendDeviceMeta,
137
+ this.value.sendCodecMeta,
138
+ parseVideoCodecOption(this.value.videoCodec),
139
+ parseVideoStreamMetadataAsync,
140
+ );
127
141
  }
128
142
 
129
143
  parseAudioStreamMetadata(
130
144
  stream: ReadableStream<Uint8Array>,
131
145
  ): MaybePromiseLike<ScrcpyAudioStreamMetadata> {
132
- return parseAudioStreamMetadata(stream, this.value);
146
+ return parseAudioStreamMetadata(
147
+ stream,
148
+ this.value.sendCodecMeta,
149
+ parseAudioMetadataCodec,
150
+ parseAudioCodecOption(this.value.audioCodec),
151
+ );
133
152
  }
134
153
 
135
154
  createMediaStreamTransformer(): TransformStream<
136
155
  Uint8Array,
137
- ScrcpyMediaStreamPacket
156
+ ScrcpyVideoStreamPacket
138
157
  > {
139
158
  return createMediaStreamTransformer(this.value);
140
159
  }
@@ -142,37 +161,66 @@ export class ScrcpyOptions2_6<TVideo extends boolean>
142
161
  serializeInjectTouchControlMessage(
143
162
  message: ScrcpyInjectTouchControlMessage,
144
163
  ): Uint8Array {
164
+ if (!this.value.control) {
165
+ throw new Error("control is disabled");
166
+ }
145
167
  return serializeInjectTouchControlMessage(message);
146
168
  }
147
169
 
148
170
  serializeBackOrScreenOnControlMessage(
149
171
  message: ScrcpyBackOrScreenOnControlMessage,
150
172
  ): Uint8Array | undefined {
173
+ if (!this.value.control) {
174
+ throw new Error("control is disabled");
175
+ }
151
176
  return serializeBackOrScreenOnControlMessage(message);
152
177
  }
153
178
 
154
179
  serializeSetClipboardControlMessage(
155
180
  message: ScrcpySetClipboardControlMessage,
156
181
  ): Uint8Array | [Uint8Array, Promise<void>] {
182
+ if (!this.value.control) {
183
+ throw new Error("control is disabled");
184
+ }
157
185
  return serializeSetClipboardControlMessage(
158
186
  message,
159
187
  this.#ackClipboardHandler,
160
188
  );
161
189
  }
162
190
 
191
+ serializeSetDisplayPowerControlMessage(
192
+ message: ScrcpySetDisplayPowerControlMessage,
193
+ ): Uint8Array {
194
+ if (!this.value.control) {
195
+ throw new Error("control is disabled");
196
+ }
197
+ return serializeSetDisplayPowerControlMessage(message);
198
+ }
199
+
163
200
  createScrollController(): ScrcpyScrollController {
201
+ if (!this.value.control) {
202
+ throw new Error("control is disabled");
203
+ }
164
204
  return createScrollController();
165
205
  }
166
206
 
167
207
  serializeUHidCreateControlMessage(
168
208
  message: ScrcpyUHidCreateControlMessage,
169
209
  ): Uint8Array {
210
+ if (!this.value.control) {
211
+ throw new Error("control is disabled");
212
+ }
170
213
  return serializeUHidCreateControlMessage(message);
171
214
  }
172
215
  }
173
216
 
174
- type Init_<TVideo extends boolean> = Init<TVideo>;
217
+ type Init_ = Init;
175
218
 
176
219
  export namespace ScrcpyOptions2_6 {
177
- export type Init<TVideo extends boolean = boolean> = Init_<TVideo>;
220
+ export type Init = Init_;
221
+
222
+ export type Value<TInit extends Init> = ComputeOptionTypes<
223
+ TInit,
224
+ typeof Defaults
225
+ >;
178
226
  }
@@ -1,4 +1,5 @@
1
1
  export * from "../../2_6/impl/index.js";
2
+
2
3
  export { ControlMessageTypes } from "./control-message-types.js";
3
4
  export {
4
5
  serializeUHidCreateControlMessage,
@@ -2,69 +2,85 @@ 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
7
  ScrcpyDisplay,
7
8
  ScrcpyEncoder,
8
- ScrcpyMediaStreamPacket,
9
9
  ScrcpyOptions,
10
10
  ScrcpyOptionsListEncoders,
11
11
  ScrcpyScrollController,
12
12
  ScrcpyVideoStream,
13
+ ScrcpyVideoStreamPacket,
13
14
  } from "../base/index.js";
14
15
  import { ScrcpyDeviceMessageParsers } from "../base/index.js";
15
16
  import type {
16
17
  ScrcpyBackOrScreenOnControlMessage,
17
18
  ScrcpyInjectTouchControlMessage,
18
19
  ScrcpySetClipboardControlMessage,
20
+ ScrcpySetDisplayPowerControlMessage,
19
21
  ScrcpyUHidCreateControlMessage,
20
22
  ScrcpyUHidOutputDeviceMessage,
21
23
  } from "../latest.js";
22
24
 
23
- import type { Init } from "./impl/index.js";
25
+ import type { ComputeOptionTypes, Init } from "./impl/index.js";
24
26
  import {
25
27
  AckClipboardHandler,
26
28
  ClipboardStream,
29
+ computeOptionValues,
27
30
  ControlMessageTypes,
28
31
  createMediaStreamTransformer,
29
32
  createScrollController,
30
33
  Defaults,
34
+ parseAudioCodecOption,
35
+ parseAudioMetadataCodec,
31
36
  parseAudioStreamMetadata,
32
37
  parseDisplay,
33
38
  parseEncoder,
39
+ parseVideoCodecOption,
34
40
  parseVideoStreamMetadata,
41
+ parseVideoStreamMetadataAsync,
35
42
  serialize,
36
43
  serializeBackOrScreenOnControlMessage,
37
44
  serializeInjectTouchControlMessage,
38
45
  serializeSetClipboardControlMessage,
46
+ serializeSetDisplayPowerControlMessage,
39
47
  serializeUHidCreateControlMessage,
40
48
  setListDisplays,
41
49
  setListEncoders,
42
50
  UHidOutputStream,
43
51
  } from "./impl/index.js";
44
52
 
45
- export class ScrcpyOptions2_7<TVideo extends boolean>
46
- implements ScrcpyOptions<Init<TVideo>>, ScrcpyOptionsListEncoders
53
+ export class ScrcpyOptions2_7<TInit extends Init = Init>
54
+ implements
55
+ ScrcpyOptions<ScrcpyOptions2_7.Value<TInit>>,
56
+ ScrcpyOptionsListEncoders
47
57
  {
48
58
  static readonly Defaults = Defaults;
49
59
 
50
- readonly value: Required<Init<TVideo>>;
60
+ readonly value: ScrcpyOptions2_7.Value<TInit>;
51
61
 
52
62
  get controlMessageTypes(): typeof ControlMessageTypes {
53
63
  return ControlMessageTypes;
54
64
  }
55
65
 
56
66
  #clipboard: ClipboardStream | undefined;
57
- get clipboard(): ReadableStream<string> | undefined {
58
- return this.#clipboard;
67
+ get clipboard(): MapBoolean<
68
+ this["value"]["clipboardAutosync"],
69
+ ReadableStream<string>,
70
+ undefined
71
+ > {
72
+ return this.#clipboard as never;
59
73
  }
60
74
 
61
75
  #ackClipboardHandler: AckClipboardHandler | undefined;
62
76
 
63
77
  #uHidOutput: UHidOutputStream | undefined;
64
- get uHidOutput():
65
- | ReadableStream<ScrcpyUHidOutputDeviceMessage>
66
- | undefined {
67
- return this.#uHidOutput;
78
+ get uHidOutput(): MapBoolean<
79
+ this["value"]["control"],
80
+ ReadableStream<ScrcpyUHidOutputDeviceMessage>,
81
+ undefined
82
+ > {
83
+ return this.#uHidOutput as never;
68
84
  }
69
85
 
70
86
  #deviceMessageParsers = new ScrcpyDeviceMessageParsers();
@@ -72,16 +88,8 @@ export class ScrcpyOptions2_7<TVideo extends boolean>
72
88
  return this.#deviceMessageParsers;
73
89
  }
74
90
 
75
- constructor(init: Init<TVideo>) {
76
- this.value = { ...Defaults, ...init } as never;
77
-
78
- if (this.value.videoSource === "camera") {
79
- this.value.control = false;
80
- }
81
-
82
- if (this.value.audioDup) {
83
- this.value.audioSource = "playback";
84
- }
91
+ constructor(init: TInit) {
92
+ this.value = computeOptionValues(init, Defaults);
85
93
 
86
94
  if (this.value.control) {
87
95
  if (this.value.clipboardAutosync) {
@@ -101,7 +109,7 @@ export class ScrcpyOptions2_7<TVideo extends boolean>
101
109
  }
102
110
 
103
111
  serialize(): string[] {
104
- return serialize<Init<boolean>>(this.value, Defaults);
112
+ return serialize(this.value, Defaults);
105
113
  }
106
114
 
107
115
  setListDisplays(): void {
@@ -123,18 +131,29 @@ export class ScrcpyOptions2_7<TVideo extends boolean>
123
131
  parseVideoStreamMetadata(
124
132
  stream: ReadableStream<Uint8Array>,
125
133
  ): MaybePromiseLike<ScrcpyVideoStream> {
126
- return parseVideoStreamMetadata(this.value, stream);
134
+ return parseVideoStreamMetadata(
135
+ stream,
136
+ this.value.sendDeviceMeta,
137
+ this.value.sendCodecMeta,
138
+ parseVideoCodecOption(this.value.videoCodec),
139
+ parseVideoStreamMetadataAsync,
140
+ );
127
141
  }
128
142
 
129
143
  parseAudioStreamMetadata(
130
144
  stream: ReadableStream<Uint8Array>,
131
145
  ): MaybePromiseLike<ScrcpyAudioStreamMetadata> {
132
- return parseAudioStreamMetadata(stream, this.value);
146
+ return parseAudioStreamMetadata(
147
+ stream,
148
+ this.value.sendCodecMeta,
149
+ parseAudioMetadataCodec,
150
+ parseAudioCodecOption(this.value.audioCodec),
151
+ );
133
152
  }
134
153
 
135
154
  createMediaStreamTransformer(): TransformStream<
136
155
  Uint8Array,
137
- ScrcpyMediaStreamPacket
156
+ ScrcpyVideoStreamPacket
138
157
  > {
139
158
  return createMediaStreamTransformer(this.value);
140
159
  }
@@ -142,18 +161,27 @@ export class ScrcpyOptions2_7<TVideo extends boolean>
142
161
  serializeInjectTouchControlMessage(
143
162
  message: ScrcpyInjectTouchControlMessage,
144
163
  ): Uint8Array {
164
+ if (!this.value.control) {
165
+ throw new Error("control is disabled");
166
+ }
145
167
  return serializeInjectTouchControlMessage(message);
146
168
  }
147
169
 
148
170
  serializeBackOrScreenOnControlMessage(
149
171
  message: ScrcpyBackOrScreenOnControlMessage,
150
172
  ): Uint8Array | undefined {
173
+ if (!this.value.control) {
174
+ throw new Error("control is disabled");
175
+ }
151
176
  return serializeBackOrScreenOnControlMessage(message);
152
177
  }
153
178
 
154
179
  serializeSetClipboardControlMessage(
155
180
  message: ScrcpySetClipboardControlMessage,
156
181
  ): Uint8Array | [Uint8Array, Promise<void>] {
182
+ if (!this.value.control) {
183
+ throw new Error("control is disabled");
184
+ }
157
185
  return serializeSetClipboardControlMessage(
158
186
  message,
159
187
  this.#ackClipboardHandler,
@@ -161,18 +189,38 @@ export class ScrcpyOptions2_7<TVideo extends boolean>
161
189
  }
162
190
 
163
191
  createScrollController(): ScrcpyScrollController {
192
+ if (!this.value.control) {
193
+ throw new Error("control is disabled");
194
+ }
164
195
  return createScrollController();
165
196
  }
166
197
 
198
+ serializeSetDisplayPowerControlMessage(
199
+ message: ScrcpySetDisplayPowerControlMessage,
200
+ ): Uint8Array {
201
+ if (!this.value.control) {
202
+ throw new Error("control is disabled");
203
+ }
204
+ return serializeSetDisplayPowerControlMessage(message);
205
+ }
206
+
167
207
  serializeUHidCreateControlMessage(
168
208
  message: ScrcpyUHidCreateControlMessage,
169
209
  ): Uint8Array {
210
+ if (!this.value.control) {
211
+ throw new Error("control is disabled");
212
+ }
170
213
  return serializeUHidCreateControlMessage(message);
171
214
  }
172
215
  }
173
216
 
174
- type Init_<TVideo extends boolean> = Init<TVideo>;
217
+ type Init_ = Init;
175
218
 
176
219
  export namespace ScrcpyOptions2_7 {
177
- export type Init<TVideo extends boolean = boolean> = Init_<TVideo>;
220
+ export type Init = Init_;
221
+
222
+ export type Value<TInit extends Init> = ComputeOptionTypes<
223
+ TInit,
224
+ typeof Defaults
225
+ >;
178
226
  }
@@ -1,18 +1,16 @@
1
+ import { omit } from "../../utils/omit.js";
2
+
1
3
  import type { Init } from "./init.js";
2
4
  import { PrevImpl } from "./prev.js";
3
5
 
4
- export const Defaults = {
5
- ...{
6
- ...PrevImpl.Defaults,
7
- // Remove obsolete values
8
- // relies on the minifier to flatten the nested spread
9
- lockVideoOrientation: undefined,
10
- },
6
+ export const Defaults = /* #__PURE__*/ (() =>
7
+ ({
8
+ ...omit(PrevImpl.Defaults, "lockVideoOrientation"),
11
9
 
12
- captureOrientation: undefined,
13
- angle: 0,
14
- screenOffTimeout: undefined,
15
- listApps: false,
16
- newDisplay: undefined,
17
- vdSystemDecorations: true,
18
- } as const satisfies Required<Init<true>>;
10
+ captureOrientation: undefined,
11
+ angle: 0,
12
+ screenOffTimeout: undefined,
13
+ listApps: false,
14
+ newDisplay: undefined,
15
+ vdSystemDecorations: true,
16
+ }) as const satisfies Required<Init>)();
@@ -1,4 +1,5 @@
1
1
  export * from "../../2_7/impl/index.js";
2
+
2
3
  export { ControlMessageTypes } from "./control-message-types.js";
3
4
  export { Defaults } from "./defaults.js";
4
5
  export {
@@ -9,3 +10,7 @@ export {
9
10
  } from "./init.js";
10
11
  export type { Init } from "./init.js";
11
12
  export { parseEncoder } from "./parse-encoder.js";
13
+ export {
14
+ serializeSetDisplayPowerControlMessage,
15
+ SetDisplayPowerControlMessage,
16
+ } from "./set-display-power.js";
@@ -106,19 +106,16 @@ export class NewDisplay implements ScrcpyOptionValue {
106
106
  }
107
107
  }
108
108
 
109
- export interface Init<TVideo extends boolean> extends Omit<
110
- PrevImpl.Init<TVideo>,
111
- "lockVideoOrientation"
112
- > {
109
+ export interface Init extends Omit<PrevImpl.Init, "lockVideoOrientation"> {
113
110
  captureOrientation?: CaptureOrientation | string | undefined;
114
- angle?: number;
111
+ angle?: number | undefined;
115
112
  screenOffTimeout?: number | undefined;
116
113
 
117
- listApps?: boolean;
114
+ listApps?: boolean | undefined;
118
115
 
119
116
  // `display_id` and `new_display` can't be specified at the same time
120
117
  // but `serialize` method will exclude options that are same as the default value
121
118
  // so `displayId: 0` will be ignored
122
119
  newDisplay?: NewDisplay | string | undefined;
123
- vdSystemDecorations?: boolean;
120
+ vdSystemDecorations?: boolean | undefined;
124
121
  }
@@ -0,0 +1,23 @@
1
+ import type { StructInit } from "@yume-chan/struct";
2
+ import { struct, u8 } from "@yume-chan/struct";
3
+
4
+ import type { ScrcpySetDisplayPowerControlMessage } from "../../latest.js";
5
+
6
+ export const SetDisplayPowerControlMessage = struct(
7
+ {
8
+ // value of `type` can change between versions
9
+ type: u8,
10
+ on: u8<boolean>(),
11
+ },
12
+ { littleEndian: false },
13
+ );
14
+
15
+ export type SetDisplayPowerControlMessage = StructInit<
16
+ typeof SetDisplayPowerControlMessage
17
+ >;
18
+
19
+ export function serializeSetDisplayPowerControlMessage(
20
+ message: ScrcpySetDisplayPowerControlMessage,
21
+ ) {
22
+ return SetDisplayPowerControlMessage.serialize(message);
23
+ }