@yume-chan/scrcpy 0.0.19 → 0.0.21

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 (278) hide show
  1. package/CHANGELOG.json +30 -0
  2. package/CHANGELOG.md +17 -1
  3. package/README.md +76 -266
  4. package/esm/codec/av1.js +2 -2
  5. package/esm/codec/av1.js.map +1 -1
  6. package/esm/codec/h264.d.ts +1 -21
  7. package/esm/codec/h264.d.ts.map +1 -1
  8. package/esm/codec/h264.js +15 -236
  9. package/esm/codec/h264.js.map +1 -1
  10. package/esm/codec/h265.d.ts +454 -0
  11. package/esm/codec/h265.d.ts.map +1 -1
  12. package/esm/codec/h265.js +1062 -2
  13. package/esm/codec/h265.js.map +1 -1
  14. package/esm/codec/index.d.ts +1 -0
  15. package/esm/codec/index.d.ts.map +1 -1
  16. package/esm/codec/index.js +1 -0
  17. package/esm/codec/index.js.map +1 -1
  18. package/esm/codec/nalu.d.ts +37 -0
  19. package/esm/codec/nalu.d.ts.map +1 -0
  20. package/esm/codec/nalu.js +323 -0
  21. package/esm/codec/nalu.js.map +1 -0
  22. package/esm/control/back-or-screen-on.d.ts +1 -1
  23. package/esm/control/back-or-screen-on.d.ts.map +1 -1
  24. package/esm/control/hover-helper.d.ts +1 -1
  25. package/esm/control/hover-helper.d.ts.map +1 -1
  26. package/esm/control/hover-helper.js +8 -9
  27. package/esm/control/hover-helper.js.map +1 -1
  28. package/esm/control/index.d.ts +2 -0
  29. package/esm/control/index.d.ts.map +1 -1
  30. package/esm/control/index.js +2 -0
  31. package/esm/control/index.js.map +1 -1
  32. package/esm/control/inject-keycode.d.ts +1 -2
  33. package/esm/control/inject-keycode.d.ts.map +1 -1
  34. package/esm/control/inject-keycode.js +4 -5
  35. package/esm/control/inject-keycode.js.map +1 -1
  36. package/esm/control/inject-text.d.ts +1 -2
  37. package/esm/control/inject-text.d.ts.map +1 -1
  38. package/esm/control/inject-text.js +1 -2
  39. package/esm/control/inject-text.js.map +1 -1
  40. package/esm/control/inject-touch.d.ts +15 -20
  41. package/esm/control/inject-touch.d.ts.map +1 -1
  42. package/esm/control/inject-touch.js +16 -43
  43. package/esm/control/inject-touch.js.map +1 -1
  44. package/esm/control/rotate-device.d.ts +2 -4
  45. package/esm/control/rotate-device.d.ts.map +1 -1
  46. package/esm/control/rotate-device.js +2 -3
  47. package/esm/control/rotate-device.js.map +1 -1
  48. package/esm/control/serializer.d.ts +11 -23
  49. package/esm/control/serializer.d.ts.map +1 -1
  50. package/esm/control/serializer.js +23 -52
  51. package/esm/control/serializer.js.map +1 -1
  52. package/esm/control/set-screen-power-mode.d.ts +1 -2
  53. package/esm/control/set-screen-power-mode.d.ts.map +1 -1
  54. package/esm/control/set-screen-power-mode.js +2 -3
  55. package/esm/control/set-screen-power-mode.js.map +1 -1
  56. package/esm/control/type.d.ts +14 -0
  57. package/esm/control/type.d.ts.map +1 -1
  58. package/esm/control/type.js +23 -1
  59. package/esm/control/type.js.map +1 -1
  60. package/esm/control/writer.d.ts +26 -0
  61. package/esm/control/writer.d.ts.map +1 -0
  62. package/esm/control/writer.js +53 -0
  63. package/esm/control/writer.js.map +1 -0
  64. package/esm/device-message/stream.d.ts.map +1 -1
  65. package/esm/device-message/stream.js +23 -8
  66. package/esm/device-message/stream.js.map +1 -1
  67. package/esm/device-message/type.js +1 -1
  68. package/esm/device-message/type.js.map +1 -1
  69. package/esm/index.d.ts +1 -2
  70. package/esm/index.d.ts.map +1 -1
  71. package/esm/index.js +1 -2
  72. package/esm/index.js.map +1 -1
  73. package/esm/options/1_16/codec-options.d.ts +2 -3
  74. package/esm/options/1_16/codec-options.d.ts.map +1 -1
  75. package/esm/options/1_16/codec-options.js.map +1 -1
  76. package/esm/options/1_16/index.d.ts +3 -1
  77. package/esm/options/1_16/index.d.ts.map +1 -1
  78. package/esm/options/1_16/index.js +3 -1
  79. package/esm/options/1_16/index.js.map +1 -1
  80. package/esm/options/1_16/init.js +2 -2
  81. package/esm/options/1_16/init.js.map +1 -1
  82. package/esm/options/1_16/options.d.ts +42 -96
  83. package/esm/options/1_16/options.d.ts.map +1 -1
  84. package/esm/options/1_16/options.js +104 -142
  85. package/esm/options/1_16/options.js.map +1 -1
  86. package/esm/options/1_16/scroll.d.ts +2 -4
  87. package/esm/options/1_16/scroll.d.ts.map +1 -1
  88. package/esm/options/1_16/scroll.js +13 -14
  89. package/esm/options/1_16/scroll.js.map +1 -1
  90. package/esm/options/1_17.d.ts +1 -0
  91. package/esm/options/1_17.d.ts.map +1 -1
  92. package/esm/options/1_17.js +8 -3
  93. package/esm/options/1_17.js.map +1 -1
  94. package/esm/options/1_18.d.ts +49 -11
  95. package/esm/options/1_18.d.ts.map +1 -1
  96. package/esm/options/1_18.js +64 -32
  97. package/esm/options/1_18.js.map +1 -1
  98. package/esm/options/1_21.d.ts +26 -7
  99. package/esm/options/1_21.d.ts.map +1 -1
  100. package/esm/options/1_21.js +34 -20
  101. package/esm/options/1_21.js.map +1 -1
  102. package/esm/options/1_22/index.d.ts +1 -0
  103. package/esm/options/1_22/index.d.ts.map +1 -1
  104. package/esm/options/1_22/index.js +1 -0
  105. package/esm/options/1_22/index.js.map +1 -1
  106. package/esm/options/1_22/options.d.ts +32 -26
  107. package/esm/options/1_22/options.d.ts.map +1 -1
  108. package/esm/options/1_22/options.js +26 -16
  109. package/esm/options/1_22/options.js.map +1 -1
  110. package/esm/options/1_22/scroll.d.ts +1 -1
  111. package/esm/options/1_22/scroll.d.ts.map +1 -1
  112. package/esm/options/1_22/scroll.js +1 -1
  113. package/esm/options/1_22/scroll.js.map +1 -1
  114. package/esm/options/1_23.d.ts +32 -8
  115. package/esm/options/1_23.d.ts.map +1 -1
  116. package/esm/options/1_23.js +23 -14
  117. package/esm/options/1_23.js.map +1 -1
  118. package/esm/options/1_24.d.ts +29 -4
  119. package/esm/options/1_24.d.ts.map +1 -1
  120. package/esm/options/1_24.js +16 -7
  121. package/esm/options/1_24.js.map +1 -1
  122. package/esm/options/1_25/options.d.ts +6 -2
  123. package/esm/options/1_25/options.d.ts.map +1 -1
  124. package/esm/options/1_25/options.js +16 -2
  125. package/esm/options/1_25/options.js.map +1 -1
  126. package/esm/options/1_25/scroll.d.ts.map +1 -1
  127. package/esm/options/1_25/scroll.js +2 -1
  128. package/esm/options/1_25/scroll.js.map +1 -1
  129. package/esm/options/2_0.d.ts +12 -8
  130. package/esm/options/2_0.d.ts.map +1 -1
  131. package/esm/options/2_0.js +82 -15
  132. package/esm/options/2_0.js.map +1 -1
  133. package/esm/options/2_1.d.ts +48 -0
  134. package/esm/options/2_1.d.ts.map +1 -0
  135. package/esm/options/2_1.js +23 -0
  136. package/esm/options/2_1.js.map +1 -0
  137. package/esm/options/codec.d.ts +4 -4
  138. package/esm/options/codec.d.ts.map +1 -1
  139. package/esm/options/codec.js +5 -6
  140. package/esm/options/codec.js.map +1 -1
  141. package/esm/options/index.d.ts +5 -0
  142. package/esm/options/index.d.ts.map +1 -1
  143. package/esm/options/index.js +5 -0
  144. package/esm/options/index.js.map +1 -1
  145. package/esm/options/latest.d.ts +4 -5
  146. package/esm/options/latest.d.ts.map +1 -1
  147. package/esm/options/latest.js +2 -3
  148. package/esm/options/latest.js.map +1 -1
  149. package/esm/options/types.d.ts +74 -33
  150. package/esm/options/types.d.ts.map +1 -1
  151. package/esm/options/types.js +62 -0
  152. package/esm/options/types.js.map +1 -1
  153. package/package.json +9 -19
  154. package/src/codec/av1.ts +33 -0
  155. package/src/codec/h264.ts +317 -0
  156. package/src/codec/h265.ts +1375 -0
  157. package/src/codec/index.ts +4 -0
  158. package/src/codec/nalu.ts +391 -0
  159. package/src/control/back-or-screen-on.ts +1 -1
  160. package/{esm/control/simple.js → src/control/basic.ts} +3 -3
  161. package/src/control/hover-helper.ts +10 -11
  162. package/src/control/index.ts +2 -0
  163. package/src/control/inject-keycode.ts +1 -3
  164. package/src/control/inject-text.ts +1 -3
  165. package/src/control/inject-touch.ts +16 -55
  166. package/src/control/rotate-device.ts +2 -7
  167. package/src/control/serializer.ts +50 -113
  168. package/src/control/set-screen-power-mode.ts +1 -3
  169. package/src/control/type.ts +32 -0
  170. package/src/control/writer.ts +85 -0
  171. package/src/device-message/stream.ts +32 -12
  172. package/src/index.ts +1 -2
  173. package/src/options/1_16/codec-options.ts +6 -7
  174. package/src/options/1_16/float-to-uint16.ts +33 -0
  175. package/src/options/1_16/index.ts +3 -1
  176. package/src/options/1_16/init.ts +80 -0
  177. package/src/options/1_16/message.ts +55 -0
  178. package/src/options/1_16/options.ts +147 -260
  179. package/src/options/1_16/scroll.ts +17 -18
  180. package/src/options/1_17.ts +66 -0
  181. package/src/options/1_18.ts +103 -39
  182. package/src/options/1_21.ts +49 -27
  183. package/src/options/1_22/index.ts +1 -0
  184. package/src/options/1_22/init.ts +19 -0
  185. package/src/options/1_22/options.ts +38 -45
  186. package/src/options/1_22/scroll.ts +3 -3
  187. package/src/options/1_23.ts +34 -22
  188. package/src/options/1_24.ts +23 -11
  189. package/src/options/1_25/options.ts +22 -4
  190. package/src/options/1_25/scroll.ts +4 -3
  191. package/src/options/2_0.ts +342 -0
  192. package/src/options/2_1.ts +35 -0
  193. package/src/options/codec.ts +98 -0
  194. package/src/options/index.ts +5 -0
  195. package/src/options/latest.ts +12 -0
  196. package/src/options/types.ts +164 -43
  197. package/tsconfig.build.json +9 -1
  198. package/tsconfig.build.tsbuildinfo +1 -1
  199. package/bin/scrcpy-server +0 -0
  200. package/bin/version.d.ts +0 -1
  201. package/bin/version.js +0 -1
  202. package/esm/adb/client.d.ts +0 -41
  203. package/esm/adb/client.d.ts.map +0 -1
  204. package/esm/adb/client.js +0 -224
  205. package/esm/adb/client.js.map +0 -1
  206. package/esm/adb/connection.d.ts +0 -49
  207. package/esm/adb/connection.d.ts.map +0 -1
  208. package/esm/adb/connection.js +0 -122
  209. package/esm/adb/connection.js.map +0 -1
  210. package/esm/adb/index.d.ts +0 -4
  211. package/esm/adb/index.d.ts.map +0 -1
  212. package/esm/adb/index.js +0 -4
  213. package/esm/adb/index.js.map +0 -1
  214. package/esm/adb/options/1_16.d.ts +0 -8
  215. package/esm/adb/options/1_16.d.ts.map +0 -1
  216. package/esm/adb/options/1_16.js +0 -20
  217. package/esm/adb/options/1_16.js.map +0 -1
  218. package/esm/adb/options/1_22.d.ts +0 -8
  219. package/esm/adb/options/1_22.d.ts.map +0 -1
  220. package/esm/adb/options/1_22.js +0 -17
  221. package/esm/adb/options/1_22.js.map +0 -1
  222. package/esm/adb/options/1_26.d.ts +0 -9
  223. package/esm/adb/options/1_26.d.ts.map +0 -1
  224. package/esm/adb/options/1_26.js +0 -11
  225. package/esm/adb/options/1_26.js.map +0 -1
  226. package/esm/adb/options/2_0.d.ts +0 -8
  227. package/esm/adb/options/2_0.d.ts.map +0 -1
  228. package/esm/adb/options/2_0.js +0 -13
  229. package/esm/adb/options/2_0.js.map +0 -1
  230. package/esm/adb/options/index.d.ts +0 -4
  231. package/esm/adb/options/index.d.ts.map +0 -1
  232. package/esm/adb/options/index.js +0 -4
  233. package/esm/adb/options/index.js.map +0 -1
  234. package/esm/adb/options/types.d.ts +0 -24
  235. package/esm/adb/options/types.d.ts.map +0 -1
  236. package/esm/adb/options/types.js +0 -37
  237. package/esm/adb/options/types.js.map +0 -1
  238. package/esm/codec.d.ts +0 -34
  239. package/esm/codec.d.ts.map +0 -1
  240. package/esm/codec.js +0 -37
  241. package/esm/codec.js.map +0 -1
  242. package/esm/control/simple.d.ts +0 -5
  243. package/esm/control/simple.d.ts.map +0 -1
  244. package/esm/control/simple.js.map +0 -1
  245. package/esm/decoder.d.ts +0 -2
  246. package/esm/decoder.d.ts.map +0 -1
  247. package/esm/decoder.js +0 -2
  248. package/esm/decoder.js.map +0 -1
  249. package/esm/options/1.17.d.ts +0 -3
  250. package/esm/options/1.17.d.ts.map +0 -1
  251. package/esm/options/1.17.js +0 -2
  252. package/esm/options/1.17.js.map +0 -1
  253. package/esm/options/1_16/h264-configuration.d.ts +0 -49
  254. package/esm/options/1_16/h264-configuration.d.ts.map +0 -1
  255. package/esm/options/1_16/h264-configuration.js +0 -414
  256. package/esm/options/1_16/h264-configuration.js.map +0 -1
  257. package/esm/options/1_16/sps.d.ts +0 -22
  258. package/esm/options/1_16/sps.d.ts.map +0 -1
  259. package/esm/options/1_16/sps.js +0 -263
  260. package/esm/options/1_16/sps.js.map +0 -1
  261. package/esm/options/1_26.d.ts +0 -57
  262. package/esm/options/1_26.d.ts.map +0 -1
  263. package/esm/options/1_26.js +0 -67
  264. package/esm/options/1_26.js.map +0 -1
  265. package/esm/options/2.d.ts +0 -57
  266. package/esm/options/2.d.ts.map +0 -1
  267. package/esm/options/2.js +0 -67
  268. package/esm/options/2.js.map +0 -1
  269. package/scripts/fetch-server.cjs +0 -38
  270. package/src/adb/client.ts +0 -329
  271. package/src/adb/connection.ts +0 -209
  272. package/src/adb/index.ts +0 -3
  273. package/src/adb/options/1_16.ts +0 -32
  274. package/src/adb/options/1_22.ts +0 -26
  275. package/src/adb/options/index.ts +0 -3
  276. package/src/adb/options/types.ts +0 -75
  277. package/src/codec.ts +0 -35
  278. package/src/options/1_16/h264-configuration.ts +0 -485
@@ -1,10 +1,9 @@
1
1
  import Struct, { placeholder } from "@yume-chan/struct";
2
- import { ScrcpyControlMessageType } from "./type.js";
3
2
  export var AndroidKeyEventAction;
4
3
  (function (AndroidKeyEventAction) {
5
4
  AndroidKeyEventAction[AndroidKeyEventAction["Down"] = 0] = "Down";
6
5
  AndroidKeyEventAction[AndroidKeyEventAction["Up"] = 1] = "Up";
7
- })(AndroidKeyEventAction = AndroidKeyEventAction || (AndroidKeyEventAction = {}));
6
+ })(AndroidKeyEventAction || (AndroidKeyEventAction = {}));
8
7
  // https://cs.android.com/android/platform/superproject/+/master:frameworks/base/core/java/android/view/KeyEvent.java;l=993;drc=95c1165bb895dd844e1793460710f7163dd330a3
9
8
  export var AndroidKeyEventMeta;
10
9
  (function (AndroidKeyEventMeta) {
@@ -23,7 +22,7 @@ export var AndroidKeyEventMeta;
23
22
  AndroidKeyEventMeta[AndroidKeyEventMeta["CapsLockOn"] = 1048576] = "CapsLockOn";
24
23
  AndroidKeyEventMeta[AndroidKeyEventMeta["NumLockOn"] = 2097152] = "NumLockOn";
25
24
  AndroidKeyEventMeta[AndroidKeyEventMeta["ScrollLockOn"] = 4194304] = "ScrollLockOn";
26
- })(AndroidKeyEventMeta = AndroidKeyEventMeta || (AndroidKeyEventMeta = {}));
25
+ })(AndroidKeyEventMeta || (AndroidKeyEventMeta = {}));
27
26
  // https://cs.android.com/android/platform/superproject/+/master:frameworks/base/core/java/android/view/KeyEvent.java;l=97;drc=95c1165bb895dd844e1793460710f7163dd330a3
28
27
  // Most names follow Web API `KeyboardEvent.code`,
29
28
  // Android-only (not exist in HID keyboard standard) keys are prefixed by `Android`.
@@ -190,9 +189,9 @@ export var AndroidKeyCode;
190
189
  AndroidKeyCode[AndroidKeyCode["AndroidCut"] = 277] = "AndroidCut";
191
190
  AndroidKeyCode[AndroidKeyCode["AndroidCopy"] = 278] = "AndroidCopy";
192
191
  AndroidKeyCode[AndroidKeyCode["AndroidPaste"] = 279] = "AndroidPaste";
193
- })(AndroidKeyCode = AndroidKeyCode || (AndroidKeyCode = {}));
192
+ })(AndroidKeyCode || (AndroidKeyCode = {}));
194
193
  export const ScrcpyInjectKeyCodeControlMessage = new Struct()
195
- .uint8("type", ScrcpyControlMessageType.InjectKeyCode)
194
+ .uint8("type")
196
195
  .uint8("action", placeholder())
197
196
  .uint32("keyCode")
198
197
  .uint32("repeat")
@@ -1 +1 @@
1
- {"version":3,"file":"inject-keycode.js","sourceRoot":"","sources":["../../src/control/inject-keycode.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,CAAN,IAAY,qBAGX;AAHD,WAAY,qBAAqB;IAC7B,iEAAQ,CAAA;IACR,6DAAM,CAAA;AACV,CAAC,EAHW,qBAAqB,GAArB,qBAAqB,KAArB,qBAAqB,QAGhC;AAED,wKAAwK;AACxK,MAAM,CAAN,IAAY,mBAgBX;AAhBD,WAAY,mBAAmB;IAC3B,+DAAY,CAAA;IACZ,wEAAgB,CAAA;IAChB,0EAAiB,CAAA;IACjB,mEAAc,CAAA;IACd,4EAAkB,CAAA;IAClB,+EAAmB,CAAA;IACnB,oEAAe,CAAA;IACf,4EAAmB,CAAA;IACnB,+EAAoB,CAAA;IACpB,qEAAgB,CAAA;IAChB,8EAAoB,CAAA;IACpB,gFAAqB,CAAA;IACrB,+EAAqB,CAAA;IACrB,6EAAoB,CAAA;IACpB,mFAAuB,CAAA;AAC3B,CAAC,EAhBW,mBAAmB,GAAnB,mBAAmB,KAAnB,mBAAmB,QAgB9B;AAED,uKAAuK;AACvK,kDAAkD;AAClD,oFAAoF;AACpF,MAAM,CAAN,IAAY,cA+KX;AA/KD,WAAY,cAAc;IACtB,iEAAe,CAAA;IACf,iEAAe,CAAA;IACf,iEAAW,CAAA;IACX,uEAAc,CAAA;IAEd,uDAAM,CAAA;IACN,uDAAM,CAAA;IACN,uDAAM,CAAA;IACN,wDAAM,CAAA;IACN,wDAAM,CAAA;IACN,wDAAM,CAAA;IACN,wDAAM,CAAA;IACN,wDAAM,CAAA;IACN,wDAAM,CAAA;IACN,wDAAM,CAAA;IACN;;OAEG;IACH,oDAAI,CAAA;IACJ;;OAEG;IACH,sDAAK,CAAA;IAEL;;OAEG;IACH,0DAAO,CAAA;IACP;;OAEG;IACH,8DAAS,CAAA;IACT;;OAEG;IACH,8DAAS,CAAA;IACT;;OAEG;IACH,gEAAU,CAAA;IACV;;OAEG;IACH,8EAAiB,CAAA;IAEjB,4DAAQ,CAAA;IACR,gEAAU,CAAA;IACV,sDAAK,CAAA;IACL,sEAAa,CAAA;IACb,sDAAK,CAAA;IAEL,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,oDAAI,CAAA;IACJ,sDAAK,CAAA;IACL,wDAAM,CAAA;IACN,0DAAO,CAAA;IACP,4DAAQ,CAAA;IACR,8DAAS,CAAA;IACT,gEAAU,CAAA;IACV,kDAAG,CAAA;IACH,sDAAK,CAAA;IACL,sEAAa,CAAA;IACb,0EAAe,CAAA;IACf,0EAAe,CAAA;IACf,sDAAK,CAAA;IACL,8DAAS,CAAA;IACT,8DAAS,CAAA;IACT,sDAAK,CAAA;IACL,sDAAK,CAAA;IACL,kEAAW,CAAA;IACX,oEAAY,CAAA;IACZ,8DAAS,CAAA;IACT,8DAAS,CAAA;IACT,sDAAK,CAAA;IACL,sDAAK,CAAA;IACL,gDAAE,CAAA;IAEF,gEAAU,CAAA;IACV,gFAAkB,CAAA;IAClB;;OAEG;IACH,oEAAY,CAAA;IAEZ,oDAAI,CAAA;IACJ,kEAAW,CAAA;IACX,kFAAmB,CAAA;IACnB,sEAAa,CAAA;IAEb,wDAAW,CAAA;IACX,4DAAQ,CAAA;IAER,yDAAY,CAAA;IACZ,yDAAM,CAAA;IACN,mEAAW,CAAA;IACX,qEAAY,CAAA;IACZ,6DAAQ,CAAA;IACR,iEAAU,CAAA;IACV,6DAAQ,CAAA;IACR,+DAAS,CAAA;IACT,2EAAe,CAAA;IACf,mEAAW,CAAA;IACX,uDAAK,CAAA;IAEL,qDAAI,CAAA;IACJ,mDAAG,CAAA;IACH,yDAAM,CAAA;IACN,yEAAc,CAAA;IAEd,iDAAQ,CAAA;IACR,iDAAE,CAAA;IACF,iDAAE,CAAA;IACF,iDAAE,CAAA;IACF,iDAAE,CAAA;IACF,iDAAE,CAAA;IACF,iDAAE,CAAA;IACF,iDAAE,CAAA;IACF,iDAAE,CAAA;IACF,mDAAG,CAAA;IACH,mDAAG,CAAA;IACH,mDAAG,CAAA;IAEH,2DAAO,CAAA;IACP,2DAAO,CAAA;IACP,2DAAO,CAAA;IACP,2DAAO,CAAA;IACP,2DAAO,CAAA;IACP,2DAAO,CAAA;IACP,2DAAO,CAAA;IACP,2DAAO,CAAA;IACP,2DAAO,CAAA;IACP,2DAAO,CAAA;IACP,2DAAO,CAAA;IACP,qEAAY,CAAA;IACZ,yEAAc,CAAA;IACd,yEAAc,CAAA;IACd,+DAAS,CAAA;IACT,uEAAa,CAAA;IACb,mEAAW,CAAA;IACX,mEAAW,CAAA;IACX,qEAAY,CAAA;IACZ,2EAAe,CAAA;IACf,6EAAgB,CAAA;IAEhB,iEAAgB,CAAA;IAChB,6EAAsB,CAAA;IAEtB,iEAAgB,CAAA;IAChB,mEAAW,CAAA;IACX,qEAAY,CAAA;AAChB,CAAC,EA/KW,cAAc,GAAd,cAAc,KAAd,cAAc,QA+KzB;AAED,MAAM,CAAC,MAAM,iCAAiC,GAAG,IAAI,MAAM,EAAE;KACxD,KAAK,CAAC,MAAM,EAAE,wBAAwB,CAAC,aAAsB,CAAC;KAC9D,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAyB,CAAC;KACrD,MAAM,CAAC,SAAS,CAAC;KACjB,MAAM,CAAC,QAAQ,CAAC;KAChB,MAAM,CAAC,WAAW,CAAC,CAAC"}
1
+ {"version":3,"file":"inject-keycode.js","sourceRoot":"","sources":["../../src/control/inject-keycode.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import Struct from "@yume-chan/struct";
2
- import { ScrcpyControlMessageType } from "./type.js";
3
2
  export declare const ScrcpyInjectTextControlMessage: Struct<{
4
- type: ScrcpyControlMessageType.InjectText;
3
+ type: number;
5
4
  length: number;
6
5
  text: string;
7
6
  }, "length", Record<never, never>, undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"inject-text.d.ts","sourceRoot":"","sources":["../../src/control/inject-text.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,eAAO,MAAM,8BAA8B;;;;6CAGG,CAAC;AAE/C,MAAM,MAAM,8BAA8B,GACtC,CAAC,OAAO,8BAA8B,CAAC,CAAC,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"inject-text.d.ts","sourceRoot":"","sources":["../../src/control/inject-text.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,eAAO,MAAM,8BAA8B;;;;6CAGG,CAAC;AAE/C,MAAM,MAAM,8BAA8B,GACtC,CAAC,OAAO,8BAA8B,CAAC,CAAC,OAAO,CAAC,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import Struct from "@yume-chan/struct";
2
- import { ScrcpyControlMessageType } from "./type.js";
3
2
  export const ScrcpyInjectTextControlMessage = new Struct()
4
- .uint8("type", ScrcpyControlMessageType.InjectText)
3
+ .uint8("type")
5
4
  .uint32("length")
6
5
  .string("text", { lengthField: "length" });
7
6
  //# sourceMappingURL=inject-text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inject-text.js","sourceRoot":"","sources":["../../src/control/inject-text.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,MAAM,EAAE;KACrD,KAAK,CAAC,MAAM,EAAE,wBAAwB,CAAC,UAAmB,CAAC;KAC3D,MAAM,CAAC,QAAQ,CAAC;KAChB,MAAM,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"inject-text.js","sourceRoot":"","sources":["../../src/control/inject-text.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,MAAM,EAAE;KACrD,KAAK,CAAC,MAAM,CAAC;KACb,MAAM,CAAC,QAAQ,CAAC;KAChB,MAAM,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC"}
@@ -1,5 +1,4 @@
1
- import Struct, { NumberFieldType } from "@yume-chan/struct";
2
- import { ScrcpyControlMessageType } from "./type.js";
1
+ import type { ScrcpyInjectTouchControlMessage2_0 } from "../options/index.js";
3
2
  export declare enum AndroidMotionEventAction {
4
3
  Down = 0,
5
4
  Up = 1,
@@ -15,24 +14,20 @@ export declare enum AndroidMotionEventAction {
15
14
  ButtonPress = 11,
16
15
  ButtonRelease = 12
17
16
  }
17
+ export declare enum AndroidMotionEventButton {
18
+ Primary = 1,
19
+ Secondary = 2,
20
+ Tertiary = 4,
21
+ Back = 8,
22
+ Forward = 16,
23
+ StylusPrimary = 32,
24
+ StylusSecondary = 64
25
+ }
18
26
  export declare namespace ScrcpyPointerId {
19
- const Mouse: bigint;
20
- const Finger: bigint;
21
- const VirtualMouse: bigint;
22
- const VirtualFinger: bigint;
27
+ const Mouse = -1n;
28
+ const Finger = -2n;
29
+ const VirtualMouse = -3n;
30
+ const VirtualFinger = -4n;
23
31
  }
24
- export declare function clamp(value: number, min: number, max: number): number;
25
- export declare const ScrcpyFloatToUint16NumberType: NumberFieldType;
26
- export declare const ScrcpyInjectTouchControlMessage: Struct<{
27
- type: ScrcpyControlMessageType.InjectTouch;
28
- action: AndroidMotionEventAction;
29
- pointerId: bigint;
30
- pointerX: number;
31
- pointerY: number;
32
- screenWidth: number;
33
- screenHeight: number;
34
- pressure: number;
35
- buttons: number;
36
- }, never, Record<never, never>, undefined>;
37
- export type ScrcpyInjectTouchControlMessage = (typeof ScrcpyInjectTouchControlMessage)["TInit"];
32
+ export type ScrcpyInjectTouchControlMessage = ScrcpyInjectTouchControlMessage2_0;
38
33
  //# sourceMappingURL=inject-touch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inject-touch.d.ts","sourceRoot":"","sources":["../../src/control/inject-touch.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAEX,eAAe,EAElB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAGrD,oBAAY,wBAAwB;IAChC,IAAI,IAAA;IACJ,EAAE,IAAA;IACF,IAAI,IAAA;IACJ,MAAM,IAAA;IACN,OAAO,IAAA;IACP,WAAW,IAAA;IACX,SAAS,IAAA;IACT,SAAS,IAAA;IACT,MAAM,IAAA;IACN,UAAU,IAAA;IACV,SAAS,KAAA;IACT,WAAW,KAAA;IACX,aAAa,KAAA;CAChB;AAGD,yBAAiB,eAAe,CAAC;IACtB,MAAM,KAAK,QAAa,CAAC;IACzB,MAAM,MAAM,QAAa,CAAC;IAC1B,MAAM,YAAY,QAAa,CAAC;IAChC,MAAM,aAAa,QAAa,CAAC;CAC3C;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAUrE;AAED,eAAO,MAAM,6BAA6B,EAAE,eAc3C,CAAC;AAMF,eAAO,MAAM,+BAA+B;;;;;;;;;;0CAStB,CAAC;AAEvB,MAAM,MAAM,+BAA+B,GACvC,CAAC,OAAO,+BAA+B,CAAC,CAAC,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"inject-touch.d.ts","sourceRoot":"","sources":["../../src/control/inject-touch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,qBAAqB,CAAC;AAG9E,oBAAY,wBAAwB;IAChC,IAAI,IAAA;IACJ,EAAE,IAAA;IACF,IAAI,IAAA;IACJ,MAAM,IAAA;IACN,OAAO,IAAA;IACP,WAAW,IAAA;IACX,SAAS,IAAA;IACT,SAAS,IAAA;IACT,MAAM,IAAA;IACN,UAAU,IAAA;IACV,SAAS,KAAA;IACT,WAAW,KAAA;IACX,aAAa,KAAA;CAChB;AAED,oBAAY,wBAAwB;IAChC,OAAO,IAAO;IACd,SAAS,IAAO;IAChB,QAAQ,IAAO;IACf,IAAI,IAAO;IACX,OAAO,KAAO;IACd,aAAa,KAAO;IACpB,eAAe,KAAO;CACzB;AAGD,yBAAiB,eAAe,CAAC;IACtB,MAAM,KAAK,MAAM,CAAC;IAClB,MAAM,MAAM,MAAM,CAAC;IACnB,MAAM,YAAY,MAAM,CAAC;IACzB,MAAM,aAAa,MAAM,CAAC;CACpC;AAED,MAAM,MAAM,+BAA+B,GACvC,kCAAkC,CAAC"}
@@ -1,5 +1,3 @@
1
- import Struct, { NumberFieldDefinition, NumberFieldType, placeholder, } from "@yume-chan/struct";
2
- import { ScrcpyControlMessageType } from "./type.js";
3
1
  // https://developer.android.com/reference/android/view/MotionEvent#constants_1
4
2
  export var AndroidMotionEventAction;
5
3
  (function (AndroidMotionEventAction) {
@@ -16,48 +14,23 @@ export var AndroidMotionEventAction;
16
14
  AndroidMotionEventAction[AndroidMotionEventAction["HoverExit"] = 10] = "HoverExit";
17
15
  AndroidMotionEventAction[AndroidMotionEventAction["ButtonPress"] = 11] = "ButtonPress";
18
16
  AndroidMotionEventAction[AndroidMotionEventAction["ButtonRelease"] = 12] = "ButtonRelease";
19
- })(AndroidMotionEventAction = AndroidMotionEventAction || (AndroidMotionEventAction = {}));
17
+ })(AndroidMotionEventAction || (AndroidMotionEventAction = {}));
18
+ export var AndroidMotionEventButton;
19
+ (function (AndroidMotionEventButton) {
20
+ AndroidMotionEventButton[AndroidMotionEventButton["Primary"] = 1] = "Primary";
21
+ AndroidMotionEventButton[AndroidMotionEventButton["Secondary"] = 2] = "Secondary";
22
+ AndroidMotionEventButton[AndroidMotionEventButton["Tertiary"] = 4] = "Tertiary";
23
+ AndroidMotionEventButton[AndroidMotionEventButton["Back"] = 8] = "Back";
24
+ AndroidMotionEventButton[AndroidMotionEventButton["Forward"] = 16] = "Forward";
25
+ AndroidMotionEventButton[AndroidMotionEventButton["StylusPrimary"] = 32] = "StylusPrimary";
26
+ AndroidMotionEventButton[AndroidMotionEventButton["StylusSecondary"] = 64] = "StylusSecondary";
27
+ })(AndroidMotionEventButton || (AndroidMotionEventButton = {}));
20
28
  // eslint-disable-next-line @typescript-eslint/no-namespace
21
29
  export var ScrcpyPointerId;
22
30
  (function (ScrcpyPointerId) {
23
- ScrcpyPointerId.Mouse = BigInt(-1);
24
- ScrcpyPointerId.Finger = BigInt(-2);
25
- ScrcpyPointerId.VirtualMouse = BigInt(-3);
26
- ScrcpyPointerId.VirtualFinger = BigInt(-4);
27
- })(ScrcpyPointerId = ScrcpyPointerId || (ScrcpyPointerId = {}));
28
- export function clamp(value, min, max) {
29
- if (value < min) {
30
- return min;
31
- }
32
- if (value > max) {
33
- return max;
34
- }
35
- return value;
36
- }
37
- export const ScrcpyFloatToUint16NumberType = {
38
- size: 2,
39
- signed: false,
40
- deserialize(array, littleEndian) {
41
- const value = NumberFieldType.Uint16.deserialize(array, littleEndian);
42
- // https://github.com/Genymobile/scrcpy/blob/1f138aef41de651668043b32c4effc2d4adbfc44/server/src/main/java/com/genymobile/scrcpy/Binary.java#L22
43
- return value === 0xffff ? 1 : value / 0x10000;
44
- },
45
- serialize(dataView, offset, value, littleEndian) {
46
- // https://github.com/Genymobile/scrcpy/blob/1f138aef41de651668043b32c4effc2d4adbfc44/app/src/util/binary.h#L51
47
- value = clamp(value, -1, 1);
48
- value = value === 1 ? 0xffff : value * 0x10000;
49
- NumberFieldType.Uint16.serialize(dataView, offset, value, littleEndian);
50
- },
51
- };
52
- const ScrcpyFloatToUint16FieldDefinition = new NumberFieldDefinition(ScrcpyFloatToUint16NumberType);
53
- export const ScrcpyInjectTouchControlMessage = new Struct()
54
- .uint8("type", ScrcpyControlMessageType.InjectTouch)
55
- .uint8("action", placeholder())
56
- .uint64("pointerId")
57
- .uint32("pointerX")
58
- .uint32("pointerY")
59
- .uint16("screenWidth")
60
- .uint16("screenHeight")
61
- .field("pressure", ScrcpyFloatToUint16FieldDefinition)
62
- .uint32("buttons");
31
+ ScrcpyPointerId.Mouse = -1n;
32
+ ScrcpyPointerId.Finger = -2n;
33
+ ScrcpyPointerId.VirtualMouse = -3n;
34
+ ScrcpyPointerId.VirtualFinger = -4n;
35
+ })(ScrcpyPointerId || (ScrcpyPointerId = {}));
63
36
  //# sourceMappingURL=inject-touch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inject-touch.js","sourceRoot":"","sources":["../../src/control/inject-touch.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EACX,qBAAqB,EACrB,eAAe,EACf,WAAW,GACd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,+EAA+E;AAC/E,MAAM,CAAN,IAAY,wBAcX;AAdD,WAAY,wBAAwB;IAChC,uEAAI,CAAA;IACJ,mEAAE,CAAA;IACF,uEAAI,CAAA;IACJ,2EAAM,CAAA;IACN,6EAAO,CAAA;IACP,qFAAW,CAAA;IACX,iFAAS,CAAA;IACT,iFAAS,CAAA;IACT,2EAAM,CAAA;IACN,mFAAU,CAAA;IACV,kFAAS,CAAA;IACT,sFAAW,CAAA;IACX,0FAAa,CAAA;AACjB,CAAC,EAdW,wBAAwB,GAAxB,wBAAwB,KAAxB,wBAAwB,QAcnC;AAED,2DAA2D;AAC3D,MAAM,KAAW,eAAe,CAK/B;AALD,WAAiB,eAAe;IACf,qBAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACnB,sBAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,4BAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,6BAAa,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC,EALgB,eAAe,GAAf,eAAe,KAAf,eAAe,QAK/B;AAED,MAAM,UAAU,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW;IACzD,IAAI,KAAK,GAAG,GAAG,EAAE;QACb,OAAO,GAAG,CAAC;KACd;IAED,IAAI,KAAK,GAAG,GAAG,EAAE;QACb,OAAO,GAAG,CAAC;KACd;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAoB;IAC1D,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,KAAK;IACb,WAAW,CAAC,KAAK,EAAE,YAAY;QAC3B,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACtE,gJAAgJ;QAChJ,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC;IAClD,CAAC;IACD,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY;QAC3C,+GAA+G;QAC/G,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,KAAK,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC;QAC/C,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAC5E,CAAC;CACJ,CAAC;AAEF,MAAM,kCAAkC,GAAG,IAAI,qBAAqB,CAChE,6BAA6B,CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG,IAAI,MAAM,EAAE;KACtD,KAAK,CAAC,MAAM,EAAE,wBAAwB,CAAC,WAAoB,CAAC;KAC5D,KAAK,CAAC,QAAQ,EAAE,WAAW,EAA4B,CAAC;KACxD,MAAM,CAAC,WAAW,CAAC;KACnB,MAAM,CAAC,UAAU,CAAC;KAClB,MAAM,CAAC,UAAU,CAAC;KAClB,MAAM,CAAC,aAAa,CAAC;KACrB,MAAM,CAAC,cAAc,CAAC;KACtB,KAAK,CAAC,UAAU,EAAE,kCAAkC,CAAC;KACrD,MAAM,CAAC,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"inject-touch.js","sourceRoot":"","sources":["../../src/control/inject-touch.ts"],"names":[],"mappings":"AAEA,+EAA+E;AAC/E,MAAM,CAAN,IAAY,wBAcX;AAdD,WAAY,wBAAwB;IAChC,uEAAI,CAAA;IACJ,mEAAE,CAAA;IACF,uEAAI,CAAA;IACJ,2EAAM,CAAA;IACN,6EAAO,CAAA;IACP,qFAAW,CAAA;IACX,iFAAS,CAAA;IACT,iFAAS,CAAA;IACT,2EAAM,CAAA;IACN,mFAAU,CAAA;IACV,kFAAS,CAAA;IACT,sFAAW,CAAA;IACX,0FAAa,CAAA;AACjB,CAAC,EAdW,wBAAwB,KAAxB,wBAAwB,QAcnC;AAED,MAAM,CAAN,IAAY,wBAQX;AARD,WAAY,wBAAwB;IAChC,6EAAc,CAAA;IACd,iFAAgB,CAAA;IAChB,+EAAe,CAAA;IACf,uEAAW,CAAA;IACX,8EAAc,CAAA;IACd,0FAAoB,CAAA;IACpB,8FAAsB,CAAA;AAC1B,CAAC,EARW,wBAAwB,KAAxB,wBAAwB,QAQnC;AAED,2DAA2D;AAC3D,MAAM,KAAW,eAAe,CAK/B;AALD,WAAiB,eAAe;IACf,qBAAK,GAAG,CAAC,EAAE,CAAC;IACZ,sBAAM,GAAG,CAAC,EAAE,CAAC;IACb,4BAAY,GAAG,CAAC,EAAE,CAAC;IACnB,6BAAa,GAAG,CAAC,EAAE,CAAC;AACrC,CAAC,EALgB,eAAe,KAAf,eAAe,QAK/B"}
@@ -1,7 +1,5 @@
1
- import Struct from "@yume-chan/struct";
2
- import { ScrcpyControlMessageType } from "./type.js";
3
- export declare const ScrcpyRotateDeviceControlMessage: Struct<{
4
- type: ScrcpyControlMessageType.RotateDevice;
1
+ export declare const ScrcpyRotateDeviceControlMessage: import("@yume-chan/struct").default<{
2
+ type: number;
5
3
  }, never, Record<never, never>, undefined>;
6
4
  export type ScrcpyRotateDeviceControlMessage = (typeof ScrcpyRotateDeviceControlMessage)["TInit"];
7
5
  //# sourceMappingURL=rotate-device.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rotate-device.d.ts","sourceRoot":"","sources":["../../src/control/rotate-device.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,eAAO,MAAM,gCAAgC;;0CAG5C,CAAC;AAEF,MAAM,MAAM,gCAAgC,GACxC,CAAC,OAAO,gCAAgC,CAAC,CAAC,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"rotate-device.d.ts","sourceRoot":"","sources":["../../src/control/rotate-device.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gCAAgC;;0CAAsB,CAAC;AAEpE,MAAM,MAAM,gCAAgC,GACxC,CAAC,OAAO,gCAAgC,CAAC,CAAC,OAAO,CAAC,CAAC"}
@@ -1,4 +1,3 @@
1
- import Struct from "@yume-chan/struct";
2
- import { ScrcpyControlMessageType } from "./type.js";
3
- export const ScrcpyRotateDeviceControlMessage = new Struct().uint8("type", ScrcpyControlMessageType.RotateDevice);
1
+ import { BasicControlMessage } from "./basic.js";
2
+ export const ScrcpyRotateDeviceControlMessage = BasicControlMessage;
4
3
  //# sourceMappingURL=rotate-device.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rotate-device.js","sourceRoot":"","sources":["../../src/control/rotate-device.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,CAAC,MAAM,gCAAgC,GAAG,IAAI,MAAM,EAAE,CAAC,KAAK,CAC9D,MAAM,EACN,wBAAwB,CAAC,YAAqB,CACjD,CAAC"}
1
+ {"version":3,"file":"rotate-device.js","sourceRoot":"","sources":["../../src/control/rotate-device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,CAAC,MAAM,gCAAgC,GAAG,mBAAmB,CAAC"}
@@ -1,36 +1,24 @@
1
- import type { Consumable, WritableStream } from "@yume-chan/stream-extra";
2
- import type { ScrcpyOptions, ScrcpyOptionsInit1_16 } from "../options/index.js";
1
+ import type { ScrcpyOptions } from "../options/index.js";
3
2
  import type { AndroidKeyEventAction } from "./inject-keycode.js";
4
3
  import { ScrcpyInjectKeyCodeControlMessage } from "./inject-keycode.js";
5
4
  import type { ScrcpyInjectScrollControlMessage } from "./inject-scroll.js";
6
- import { ScrcpyInjectTouchControlMessage } from "./inject-touch.js";
5
+ import type { ScrcpyInjectTouchControlMessage } from "./inject-touch.js";
7
6
  import type { AndroidScreenPowerMode } from "./set-screen-power-mode.js";
8
- import { ScrcpyControlMessageType } from "./type.js";
9
7
  export declare class ScrcpyControlMessageSerializer {
10
- private options;
11
- /** Control message type values for current version of server */
12
- private types;
13
- private writer;
14
- private scrollController;
15
- constructor(stream: WritableStream<Consumable<Uint8Array>>, options: ScrcpyOptions<ScrcpyOptionsInit1_16>);
16
- getActualMessageType(type: ScrcpyControlMessageType): number;
17
- addMessageType<T extends {
18
- type: ScrcpyControlMessageType;
19
- }>(message: Omit<T, "type">, type: T["type"]): T;
20
- private write;
21
- injectKeyCode(message: Omit<ScrcpyInjectKeyCodeControlMessage, "type">): Promise<void>;
22
- injectText(text: string): Promise<void>;
8
+ #private;
9
+ constructor(options: ScrcpyOptions<object>);
10
+ injectKeyCode(message: Omit<ScrcpyInjectKeyCodeControlMessage, "type">): Uint8Array;
11
+ injectText(text: string): Uint8Array;
23
12
  /**
24
13
  * `pressure` is a float value between 0 and 1.
25
14
  */
26
- injectTouch(message: Omit<ScrcpyInjectTouchControlMessage, "type">): Promise<void>;
15
+ injectTouch(message: Omit<ScrcpyInjectTouchControlMessage, "type">): Uint8Array;
27
16
  /**
28
17
  * `scrollX` and `scrollY` are float values between 0 and 1.
29
18
  */
30
- injectScroll(message: Omit<ScrcpyInjectScrollControlMessage, "type">): Promise<void> | undefined;
31
- backOrScreenOn(action: AndroidKeyEventAction): Promise<void>;
32
- setScreenPowerMode(mode: AndroidScreenPowerMode): Promise<void>;
33
- rotateDevice(): Promise<void>;
34
- close(): Promise<void>;
19
+ injectScroll(message: Omit<ScrcpyInjectScrollControlMessage, "type">): Uint8Array | undefined;
20
+ backOrScreenOn(action: AndroidKeyEventAction): Uint8Array | undefined;
21
+ setScreenPowerMode(mode: AndroidScreenPowerMode): Uint8Array;
22
+ rotateDevice(): Uint8Array;
35
23
  }
36
24
  //# sourceMappingURL=serializer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../../src/control/serializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,UAAU,EACV,cAAc,EAEjB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EACR,aAAa,EACb,qBAAqB,EAExB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,qBAAa,8BAA8B;IACvC,OAAO,CAAC,OAAO,CAAuC;IACtD,gEAAgE;IAChE,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,MAAM,CAAsD;IACpE,OAAO,CAAC,gBAAgB,CAAyB;gBAG7C,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAC9C,OAAO,EAAE,aAAa,CAAC,qBAAqB,CAAC;IAS1C,oBAAoB,CAAC,IAAI,EAAE,wBAAwB,GAAG,MAAM;IAQ5D,cAAc,CAAC,CAAC,SAAS;QAAE,IAAI,EAAE,wBAAwB,CAAA;KAAE,EAC9D,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,EACxB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,GAChB,CAAC;YAKU,KAAK;IAIZ,aAAa,CAChB,OAAO,EAAE,IAAI,CAAC,iCAAiC,EAAE,MAAM,CAAC;IAYrD,UAAU,CAAC,IAAI,EAAE,MAAM;IAW9B;;OAEG;IACI,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,+BAA+B,EAAE,MAAM,CAAC;IAWzE;;OAEG;IACI,YAAY,CACf,OAAO,EAAE,IAAI,CAAC,gCAAgC,EAAE,MAAM,CAAC;IAa9C,cAAc,CAAC,MAAM,EAAE,qBAAqB;IAalD,kBAAkB,CAAC,IAAI,EAAE,sBAAsB;IAW/C,YAAY;IAUZ,KAAK;CAGf"}
1
+ {"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../../src/control/serializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,aAAa,EAEhB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAOzE,qBAAa,8BAA8B;;gBAK3B,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC;IAM1C,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,iCAAiC,EAAE,MAAM,CAAC;IAStE,UAAU,CAAC,IAAI,EAAE,MAAM;IAOvB;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,+BAA+B,EAAE,MAAM,CAAC;IASlE;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,gCAAgC,EAAE,MAAM,CAAC;IASpE,cAAc,CAAC,MAAM,EAAE,qBAAqB;IAO5C,kBAAkB,CAAC,IAAI,EAAE,sBAAsB;IAS/C,YAAY;CAKf"}
@@ -1,83 +1,54 @@
1
- import { ConsumableWritableStream } from "@yume-chan/stream-extra";
2
1
  import { ScrcpyInjectKeyCodeControlMessage } from "./inject-keycode.js";
3
2
  import { ScrcpyInjectTextControlMessage } from "./inject-text.js";
4
- import { ScrcpyInjectTouchControlMessage } from "./inject-touch.js";
5
3
  import { ScrcpyRotateDeviceControlMessage } from "./rotate-device.js";
6
4
  import { ScrcpySetScreenPowerModeControlMessage } from "./set-screen-power-mode.js";
7
- import { ScrcpyControlMessageType } from "./type.js";
5
+ import { ScrcpyControlMessageType, ScrcpyControlMessageTypeValue, } from "./type.js";
8
6
  export class ScrcpyControlMessageSerializer {
9
- options;
10
- /** Control message type values for current version of server */
11
- types;
12
- writer;
13
- scrollController;
14
- constructor(stream, options) {
15
- this.writer = stream.getWriter();
16
- this.options = options;
17
- this.types = options.getControlMessageTypes();
18
- this.scrollController = options.getScrollController();
19
- }
20
- getActualMessageType(type) {
21
- const value = this.types.indexOf(type);
22
- if (value === -1) {
23
- throw new Error("Not supported");
24
- }
25
- return value;
26
- }
27
- addMessageType(message, type) {
28
- message.type = this.getActualMessageType(type);
29
- return message;
30
- }
31
- async write(data) {
32
- await ConsumableWritableStream.write(this.writer, data);
7
+ #options;
8
+ #typeValues;
9
+ #scrollController;
10
+ constructor(options) {
11
+ this.#options = options;
12
+ this.#typeValues = new ScrcpyControlMessageTypeValue(options);
13
+ this.#scrollController = options.createScrollController();
33
14
  }
34
15
  injectKeyCode(message) {
35
- return this.write(ScrcpyInjectKeyCodeControlMessage.serialize(this.addMessageType(message, ScrcpyControlMessageType.InjectKeyCode)));
16
+ return ScrcpyInjectKeyCodeControlMessage.serialize(this.#typeValues.fillMessageType(message, ScrcpyControlMessageType.InjectKeyCode));
36
17
  }
37
18
  injectText(text) {
38
- return this.write(ScrcpyInjectTextControlMessage.serialize({
19
+ return ScrcpyInjectTextControlMessage.serialize({
39
20
  text,
40
- type: this.getActualMessageType(ScrcpyControlMessageType.InjectText),
41
- }));
21
+ type: this.#typeValues.get(ScrcpyControlMessageType.InjectText),
22
+ });
42
23
  }
43
24
  /**
44
25
  * `pressure` is a float value between 0 and 1.
45
26
  */
46
27
  injectTouch(message) {
47
- return this.write(ScrcpyInjectTouchControlMessage.serialize(this.addMessageType(message, ScrcpyControlMessageType.InjectTouch)));
28
+ return this.#options.serializeInjectTouchControlMessage(this.#typeValues.fillMessageType(message, ScrcpyControlMessageType.InjectTouch));
48
29
  }
49
30
  /**
50
31
  * `scrollX` and `scrollY` are float values between 0 and 1.
51
32
  */
52
33
  injectScroll(message) {
53
- const data = this.scrollController.serializeScrollMessage(this.addMessageType(message, ScrcpyControlMessageType.InjectScroll));
54
- if (!data) {
55
- return;
56
- }
57
- return this.write(data);
34
+ return this.#scrollController.serializeScrollMessage(this.#typeValues.fillMessageType(message, ScrcpyControlMessageType.InjectScroll));
58
35
  }
59
- async backOrScreenOn(action) {
60
- const buffer = this.options.serializeBackOrScreenOnControlMessage({
36
+ backOrScreenOn(action) {
37
+ return this.#options.serializeBackOrScreenOnControlMessage({
61
38
  action,
62
- type: this.getActualMessageType(ScrcpyControlMessageType.BackOrScreenOn),
39
+ type: this.#typeValues.get(ScrcpyControlMessageType.BackOrScreenOn),
63
40
  });
64
- if (buffer) {
65
- return await this.write(buffer);
66
- }
67
41
  }
68
42
  setScreenPowerMode(mode) {
69
- return this.write(ScrcpySetScreenPowerModeControlMessage.serialize({
43
+ return ScrcpySetScreenPowerModeControlMessage.serialize({
70
44
  mode,
71
- type: this.getActualMessageType(ScrcpyControlMessageType.SetScreenPowerMode),
72
- }));
45
+ type: this.#typeValues.get(ScrcpyControlMessageType.SetScreenPowerMode),
46
+ });
73
47
  }
74
48
  rotateDevice() {
75
- return this.write(ScrcpyRotateDeviceControlMessage.serialize({
76
- type: this.getActualMessageType(ScrcpyControlMessageType.RotateDevice),
77
- }));
78
- }
79
- close() {
80
- return this.writer.close();
49
+ return ScrcpyRotateDeviceControlMessage.serialize({
50
+ type: this.#typeValues.get(ScrcpyControlMessageType.RotateDevice),
51
+ });
81
52
  }
82
53
  }
83
54
  //# sourceMappingURL=serializer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../src/control/serializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../src/control/serializer.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,EAAE,sCAAsC,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EACH,wBAAwB,EACxB,6BAA6B,GAChC,MAAM,WAAW,CAAC;AAEnB,MAAM,OAAO,8BAA8B;IACvC,QAAQ,CAAwB;IAChC,WAAW,CAAgC;IAC3C,iBAAiB,CAAyB;IAE1C,YAAY,OAA8B;QACtC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,IAAI,6BAA6B,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAC9D,CAAC;IAED,aAAa,CAAC,OAAwD;QAClE,OAAO,iCAAiC,CAAC,SAAS,CAC9C,IAAI,CAAC,WAAW,CAAC,eAAe,CAC5B,OAAO,EACP,wBAAwB,CAAC,aAAa,CACzC,CACJ,CAAC;IACN,CAAC;IAED,UAAU,CAAC,IAAY;QACnB,OAAO,8BAA8B,CAAC,SAAS,CAAC;YAC5C,IAAI;YACJ,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,wBAAwB,CAAC,UAAU,CAAC;SAClE,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAAsD;QAC9D,OAAO,IAAI,CAAC,QAAQ,CAAC,kCAAkC,CACnD,IAAI,CAAC,WAAW,CAAC,eAAe,CAC5B,OAAO,EACP,wBAAwB,CAAC,WAAW,CACvC,CACJ,CAAC;IACN,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,OAAuD;QAChE,OAAO,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAChD,IAAI,CAAC,WAAW,CAAC,eAAe,CAC5B,OAAO,EACP,wBAAwB,CAAC,YAAY,CACxC,CACJ,CAAC;IACN,CAAC;IAED,cAAc,CAAC,MAA6B;QACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,qCAAqC,CAAC;YACvD,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,wBAAwB,CAAC,cAAc,CAAC;SACtE,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB,CAAC,IAA4B;QAC3C,OAAO,sCAAsC,CAAC,SAAS,CAAC;YACpD,IAAI;YACJ,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CACtB,wBAAwB,CAAC,kBAAkB,CAC9C;SACJ,CAAC,CAAC;IACP,CAAC;IAED,YAAY;QACR,OAAO,gCAAgC,CAAC,SAAS,CAAC;YAC9C,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,wBAAwB,CAAC,YAAY,CAAC;SACpE,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -1,11 +1,10 @@
1
1
  import Struct from "@yume-chan/struct";
2
- import { ScrcpyControlMessageType } from "./type.js";
3
2
  export declare enum AndroidScreenPowerMode {
4
3
  Off = 0,
5
4
  Normal = 2
6
5
  }
7
6
  export declare const ScrcpySetScreenPowerModeControlMessage: Struct<{
8
- type: ScrcpyControlMessageType.SetScreenPowerMode;
7
+ type: number;
9
8
  mode: AndroidScreenPowerMode;
10
9
  }, never, Record<never, never>, undefined>;
11
10
  export type ScrcpySetScreenPowerModeControlMessage = (typeof ScrcpySetScreenPowerModeControlMessage)["TInit"];
@@ -1 +1 @@
1
- {"version":3,"file":"set-screen-power-mode.d.ts","sourceRoot":"","sources":["../../src/control/set-screen-power-mode.ts"],"names":[],"mappings":"AAAA,OAAO,MAAuB,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAGrD,oBAAY,sBAAsB;IAC9B,GAAG,IAAI;IACP,MAAM,IAAI;CACb;AAED,eAAO,MAAM,sCAAsC;;;0CAEM,CAAC;AAE1D,MAAM,MAAM,sCAAsC,GAC9C,CAAC,OAAO,sCAAsC,CAAC,CAAC,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"set-screen-power-mode.d.ts","sourceRoot":"","sources":["../../src/control/set-screen-power-mode.ts"],"names":[],"mappings":"AAAA,OAAO,MAAuB,MAAM,mBAAmB,CAAC;AAGxD,oBAAY,sBAAsB;IAC9B,GAAG,IAAI;IACP,MAAM,IAAI;CACb;AAED,eAAO,MAAM,sCAAsC;;;0CAEM,CAAC;AAE1D,MAAM,MAAM,sCAAsC,GAC9C,CAAC,OAAO,sCAAsC,CAAC,CAAC,OAAO,CAAC,CAAC"}
@@ -1,12 +1,11 @@
1
1
  import Struct, { placeholder } from "@yume-chan/struct";
2
- import { ScrcpyControlMessageType } from "./type.js";
3
2
  // https://cs.android.com/android/platform/superproject/+/master:frameworks/base/core/java/android/view/SurfaceControl.java;l=659;drc=20303e05bf73796124ab70a279cf849b61b97905
4
3
  export var AndroidScreenPowerMode;
5
4
  (function (AndroidScreenPowerMode) {
6
5
  AndroidScreenPowerMode[AndroidScreenPowerMode["Off"] = 0] = "Off";
7
6
  AndroidScreenPowerMode[AndroidScreenPowerMode["Normal"] = 2] = "Normal";
8
- })(AndroidScreenPowerMode = AndroidScreenPowerMode || (AndroidScreenPowerMode = {}));
7
+ })(AndroidScreenPowerMode || (AndroidScreenPowerMode = {}));
9
8
  export const ScrcpySetScreenPowerModeControlMessage = new Struct()
10
- .uint8("type", ScrcpyControlMessageType.SetScreenPowerMode)
9
+ .uint8("type")
11
10
  .uint8("mode", placeholder());
12
11
  //# sourceMappingURL=set-screen-power-mode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"set-screen-power-mode.js","sourceRoot":"","sources":["../../src/control/set-screen-power-mode.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,8KAA8K;AAC9K,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAC9B,iEAAO,CAAA;IACP,uEAAU,CAAA;AACd,CAAC,EAHW,sBAAsB,GAAtB,sBAAsB,KAAtB,sBAAsB,QAGjC;AAED,MAAM,CAAC,MAAM,sCAAsC,GAAG,IAAI,MAAM,EAAE;KAC7D,KAAK,CAAC,MAAM,EAAE,wBAAwB,CAAC,kBAA2B,CAAC;KACnE,KAAK,CAAC,MAAM,EAAE,WAAW,EAA0B,CAAC,CAAC"}
1
+ {"version":3,"file":"set-screen-power-mode.js","sourceRoot":"","sources":["../../src/control/set-screen-power-mode.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAExD,8KAA8K;AAC9K,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAC9B,iEAAO,CAAA;IACP,uEAAU,CAAA;AACd,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC;AAED,MAAM,CAAC,MAAM,sCAAsC,GAAG,IAAI,MAAM,EAAE;KAC7D,KAAK,CAAC,MAAM,CAAC;KACb,KAAK,CAAC,MAAM,EAAE,WAAW,EAA0B,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { ScrcpyOptions } from "../options/index.js";
1
2
  export declare enum ScrcpyControlMessageType {
2
3
  InjectKeyCode = 0,
3
4
  InjectText = 1,
@@ -12,4 +13,17 @@ export declare enum ScrcpyControlMessageType {
12
13
  SetScreenPowerMode = 10,
13
14
  RotateDevice = 11
14
15
  }
16
+ /**
17
+ * Scrcpy control message types have different values between versions.
18
+ *
19
+ * This class provides a way to get the actual value for a given type.
20
+ */
21
+ export declare class ScrcpyControlMessageTypeValue {
22
+ #private;
23
+ constructor(options: ScrcpyOptions<object>);
24
+ get(type: ScrcpyControlMessageType): number;
25
+ fillMessageType<T extends {
26
+ type: ScrcpyControlMessageType;
27
+ }>(message: Omit<T, "type">, type: T["type"]): T;
28
+ }
15
29
  //# sourceMappingURL=type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../src/control/type.ts"],"names":[],"mappings":"AAGA,oBAAY,wBAAwB;IAChC,aAAa,IAAA;IACb,UAAU,IAAA;IACV,WAAW,IAAA;IACX,YAAY,IAAA;IACZ,cAAc,IAAA;IACd,uBAAuB,IAAA;IACvB,kBAAkB,IAAA;IAClB,yBAAyB,IAAA;IACzB,YAAY,IAAA;IACZ,YAAY,IAAA;IACZ,kBAAkB,KAAA;IAClB,YAAY,KAAA;CACf"}
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../src/control/type.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,oBAAY,wBAAwB;IAChC,aAAa,IAAA;IACb,UAAU,IAAA;IACV,WAAW,IAAA;IACX,YAAY,IAAA;IACZ,cAAc,IAAA;IACd,uBAAuB,IAAA;IACvB,kBAAkB,IAAA;IAClB,yBAAyB,IAAA;IACzB,YAAY,IAAA;IACZ,YAAY,IAAA;IACZ,kBAAkB,KAAA;IAClB,YAAY,KAAA;CACf;AAED;;;;GAIG;AACH,qBAAa,6BAA6B;;gBAG1B,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC;IAI1C,GAAG,CAAC,IAAI,EAAE,wBAAwB,GAAG,MAAM;IAQ3C,eAAe,CAAC,CAAC,SAAS;QAAE,IAAI,EAAE,wBAAwB,CAAA;KAAE,EACxD,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,EACxB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,GAChB,CAAC;CAIP"}
@@ -15,5 +15,27 @@ export var ScrcpyControlMessageType;
15
15
  ScrcpyControlMessageType[ScrcpyControlMessageType["SetClipboard"] = 9] = "SetClipboard";
16
16
  ScrcpyControlMessageType[ScrcpyControlMessageType["SetScreenPowerMode"] = 10] = "SetScreenPowerMode";
17
17
  ScrcpyControlMessageType[ScrcpyControlMessageType["RotateDevice"] = 11] = "RotateDevice";
18
- })(ScrcpyControlMessageType = ScrcpyControlMessageType || (ScrcpyControlMessageType = {}));
18
+ })(ScrcpyControlMessageType || (ScrcpyControlMessageType = {}));
19
+ /**
20
+ * Scrcpy control message types have different values between versions.
21
+ *
22
+ * This class provides a way to get the actual value for a given type.
23
+ */
24
+ export class ScrcpyControlMessageTypeValue {
25
+ #types;
26
+ constructor(options) {
27
+ this.#types = options.controlMessageTypes;
28
+ }
29
+ get(type) {
30
+ const value = this.#types.indexOf(type);
31
+ if (value === -1) {
32
+ throw new Error("Not supported");
33
+ }
34
+ return value;
35
+ }
36
+ fillMessageType(message, type) {
37
+ message.type = this.get(type);
38
+ return message;
39
+ }
40
+ }
19
41
  //# sourceMappingURL=type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/control/type.ts"],"names":[],"mappings":"AAAA,+GAA+G;AAC/G,6IAA6I;AAC7I,sFAAsF;AACtF,MAAM,CAAN,IAAY,wBAaX;AAbD,WAAY,wBAAwB;IAChC,yFAAa,CAAA;IACb,mFAAU,CAAA;IACV,qFAAW,CAAA;IACX,uFAAY,CAAA;IACZ,2FAAc,CAAA;IACd,6GAAuB,CAAA;IACvB,mGAAkB,CAAA;IAClB,iHAAyB,CAAA;IACzB,uFAAY,CAAA;IACZ,uFAAY,CAAA;IACZ,oGAAkB,CAAA;IAClB,wFAAY,CAAA;AAChB,CAAC,EAbW,wBAAwB,GAAxB,wBAAwB,KAAxB,wBAAwB,QAanC"}
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/control/type.ts"],"names":[],"mappings":"AAAA,+GAA+G;AAC/G,6IAA6I;AAI7I,sFAAsF;AACtF,MAAM,CAAN,IAAY,wBAaX;AAbD,WAAY,wBAAwB;IAChC,yFAAa,CAAA;IACb,mFAAU,CAAA;IACV,qFAAW,CAAA;IACX,uFAAY,CAAA;IACZ,2FAAc,CAAA;IACd,6GAAuB,CAAA;IACvB,mGAAkB,CAAA;IAClB,iHAAyB,CAAA;IACzB,uFAAY,CAAA;IACZ,uFAAY,CAAA;IACZ,oGAAkB,CAAA;IAClB,wFAAY,CAAA;AAChB,CAAC,EAbW,wBAAwB,KAAxB,wBAAwB,QAanC;AAED;;;;GAIG;AACH,MAAM,OAAO,6BAA6B;IACtC,MAAM,CAAsC;IAE5C,YAAY,OAA8B;QACtC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAC9C,CAAC;IAED,GAAG,CAAC,IAA8B;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;SACpC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,eAAe,CACX,OAAwB,EACxB,IAAe;QAEd,OAAa,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,OAAY,CAAC;IACxB,CAAC;CACJ"}
@@ -0,0 +1,26 @@
1
+ import type { Consumable, WritableStreamDefaultWriter } from "@yume-chan/stream-extra";
2
+ import type { ScrcpyOptions } from "../options/index.js";
3
+ import type { AndroidKeyEventAction, ScrcpyInjectKeyCodeControlMessage } from "./inject-keycode.js";
4
+ import type { ScrcpyInjectScrollControlMessage } from "./inject-scroll.js";
5
+ import type { ScrcpyInjectTouchControlMessage } from "./inject-touch.js";
6
+ import type { AndroidScreenPowerMode } from "./set-screen-power-mode.js";
7
+ export declare class ScrcpyControlMessageWriter {
8
+ #private;
9
+ constructor(writer: WritableStreamDefaultWriter<Consumable<Uint8Array>>, options: ScrcpyOptions<object>);
10
+ injectKeyCode(message: Omit<ScrcpyInjectKeyCodeControlMessage, "type">): Promise<void>;
11
+ injectText(text: string): Promise<void>;
12
+ /**
13
+ * `pressure` is a float value between 0 and 1.
14
+ */
15
+ injectTouch(message: Omit<ScrcpyInjectTouchControlMessage, "type">): Promise<void>;
16
+ /**
17
+ * `scrollX` and `scrollY` are float values between 0 and 1.
18
+ */
19
+ injectScroll(message: Omit<ScrcpyInjectScrollControlMessage, "type">): Promise<void>;
20
+ backOrScreenOn(action: AndroidKeyEventAction): Promise<void>;
21
+ setScreenPowerMode(mode: AndroidScreenPowerMode): Promise<void>;
22
+ rotateDevice(): Promise<void>;
23
+ releaseLock(): void;
24
+ close(): Promise<void>;
25
+ }
26
+ //# sourceMappingURL=writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/control/writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,UAAU,EACV,2BAA2B,EAC9B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EACR,qBAAqB,EACrB,iCAAiC,EACpC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEzE,qBAAa,0BAA0B;;gBAK/B,MAAM,EAAE,2BAA2B,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAC3D,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC;IAU5B,aAAa,CACf,OAAO,EAAE,IAAI,CAAC,iCAAiC,EAAE,MAAM,CAAC;IAKtD,UAAU,CAAC,IAAI,EAAE,MAAM;IAI7B;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,+BAA+B,EAAE,MAAM,CAAC;IAIxE;;OAEG;IACG,YAAY,CACd,OAAO,EAAE,IAAI,CAAC,gCAAgC,EAAE,MAAM,CAAC;IAQrD,cAAc,CAAC,MAAM,EAAE,qBAAqB;IAO5C,kBAAkB,CAAC,IAAI,EAAE,sBAAsB;IAI/C,YAAY;IAIlB,WAAW;IAIL,KAAK;CAGd"}