@yume-chan/scrcpy 0.0.16 → 0.0.17

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 (209) hide show
  1. package/CHANGELOG.json +15 -0
  2. package/CHANGELOG.md +9 -1
  3. package/README.md +275 -38
  4. package/esm/adb/client.d.ts +40 -0
  5. package/esm/adb/client.d.ts.map +1 -0
  6. package/esm/adb/client.js +218 -0
  7. package/esm/adb/client.js.map +1 -0
  8. package/esm/adb/connection.d.ts +38 -0
  9. package/esm/adb/connection.d.ts.map +1 -0
  10. package/esm/{connection.js → adb/connection.js} +20 -24
  11. package/esm/adb/connection.js.map +1 -0
  12. package/esm/adb/index.d.ts +4 -0
  13. package/esm/adb/index.d.ts.map +1 -0
  14. package/esm/adb/index.js +4 -0
  15. package/esm/adb/index.js.map +1 -0
  16. package/esm/adb/options/1_16.d.ts +8 -0
  17. package/esm/adb/options/1_16.d.ts.map +1 -0
  18. package/esm/adb/options/1_16.js +20 -0
  19. package/esm/adb/options/1_16.js.map +1 -0
  20. package/esm/adb/options/1_22.d.ts +8 -0
  21. package/esm/adb/options/1_22.d.ts.map +1 -0
  22. package/esm/adb/options/1_22.js +17 -0
  23. package/esm/adb/options/1_22.js.map +1 -0
  24. package/esm/adb/options/index.d.ts +4 -0
  25. package/esm/adb/options/index.d.ts.map +1 -0
  26. package/esm/adb/options/index.js +4 -0
  27. package/esm/adb/options/index.js.map +1 -0
  28. package/esm/adb/options/types.d.ts +23 -0
  29. package/esm/adb/options/types.d.ts.map +1 -0
  30. package/esm/adb/options/types.js +30 -0
  31. package/esm/adb/options/types.js.map +1 -0
  32. package/esm/codec.js +2 -2
  33. package/esm/codec.js.map +1 -1
  34. package/esm/control/index.d.ts +8 -0
  35. package/esm/control/index.d.ts.map +1 -0
  36. package/esm/control/index.js +8 -0
  37. package/esm/control/index.js.map +1 -0
  38. package/esm/control/inject-keycode.d.ts +53 -0
  39. package/esm/control/inject-keycode.d.ts.map +1 -0
  40. package/esm/control/inject-keycode.js +54 -0
  41. package/esm/control/inject-keycode.js.map +1 -0
  42. package/esm/control/inject-text.d.ts +9 -0
  43. package/esm/control/inject-text.d.ts.map +1 -0
  44. package/esm/control/inject-text.js +7 -0
  45. package/esm/control/inject-text.js.map +1 -0
  46. package/esm/control/inject-touch.d.ts +30 -0
  47. package/esm/control/inject-touch.d.ts.map +1 -0
  48. package/esm/control/inject-touch.js +30 -0
  49. package/esm/control/inject-touch.js.map +1 -0
  50. package/esm/control/rotate-device.d.ts +7 -0
  51. package/esm/control/rotate-device.d.ts.map +1 -0
  52. package/esm/control/rotate-device.js +5 -0
  53. package/esm/control/rotate-device.js.map +1 -0
  54. package/esm/control/serializer.d.ts +23 -0
  55. package/esm/control/serializer.d.ts.map +1 -0
  56. package/esm/control/serializer.js +73 -0
  57. package/esm/control/serializer.js.map +1 -0
  58. package/esm/control/set-screen-power-mode.d.ts +12 -0
  59. package/esm/control/set-screen-power-mode.d.ts.map +1 -0
  60. package/esm/control/set-screen-power-mode.js +12 -0
  61. package/esm/control/set-screen-power-mode.js.map +1 -0
  62. package/esm/control/type.d.ts +15 -0
  63. package/esm/control/type.d.ts.map +1 -0
  64. package/esm/control/type.js +19 -0
  65. package/esm/control/type.js.map +1 -0
  66. package/esm/decoder/index.d.ts +27 -3
  67. package/esm/decoder/index.d.ts.map +1 -1
  68. package/esm/decoder/index.js +1 -3
  69. package/esm/decoder/index.js.map +1 -1
  70. package/esm/decoder/tinyh264/index.d.ts +5 -5
  71. package/esm/decoder/tinyh264/index.d.ts.map +1 -1
  72. package/esm/decoder/tinyh264/index.js +4 -4
  73. package/esm/decoder/tinyh264/index.js.map +1 -1
  74. package/esm/decoder/tinyh264/worker.js.map +1 -1
  75. package/esm/decoder/tinyh264/wrapper.d.ts.map +1 -1
  76. package/esm/decoder/tinyh264/wrapper.js +14 -8
  77. package/esm/decoder/tinyh264/wrapper.js.map +1 -1
  78. package/esm/decoder/types.d.ts +1 -27
  79. package/esm/decoder/types.d.ts.map +1 -1
  80. package/esm/decoder/web-codecs/index.d.ts +4 -4
  81. package/esm/decoder/web-codecs/index.d.ts.map +1 -1
  82. package/esm/decoder/web-codecs/index.js +1 -1
  83. package/esm/decoder/web-codecs/index.js.map +1 -1
  84. package/esm/device-message/clipboard.d.ts +10 -0
  85. package/esm/device-message/clipboard.d.ts.map +1 -0
  86. package/esm/device-message/clipboard.js +7 -0
  87. package/esm/device-message/clipboard.js.map +1 -0
  88. package/esm/device-message/index.d.ts +4 -0
  89. package/esm/device-message/index.d.ts.map +1 -0
  90. package/esm/device-message/index.js +4 -0
  91. package/esm/device-message/index.js.map +1 -0
  92. package/esm/device-message/stream.d.ts +7 -0
  93. package/esm/device-message/stream.d.ts.map +1 -0
  94. package/esm/device-message/stream.js +16 -0
  95. package/esm/device-message/stream.js.map +1 -0
  96. package/esm/device-message/type.d.ts +5 -0
  97. package/esm/device-message/type.d.ts.map +1 -0
  98. package/esm/device-message/type.js +7 -0
  99. package/esm/device-message/type.js.map +1 -0
  100. package/esm/index.d.ts +3 -6
  101. package/esm/index.d.ts.map +1 -1
  102. package/esm/index.js +3 -6
  103. package/esm/index.js.map +1 -1
  104. package/esm/options/1_16/codec-options.d.ts +19 -0
  105. package/esm/options/1_16/codec-options.d.ts.map +1 -0
  106. package/esm/options/1_16/codec-options.js +27 -0
  107. package/esm/options/1_16/codec-options.js.map +1 -0
  108. package/esm/options/1_16/index.d.ts +3 -110
  109. package/esm/options/1_16/index.d.ts.map +1 -1
  110. package/esm/options/1_16/index.js +3 -226
  111. package/esm/options/1_16/index.js.map +1 -1
  112. package/esm/options/1_16/options.d.ts +97 -0
  113. package/esm/options/1_16/options.d.ts.map +1 -0
  114. package/esm/options/1_16/options.js +188 -0
  115. package/esm/options/1_16/options.js.map +1 -0
  116. package/esm/options/1_18.d.ts +8 -8
  117. package/esm/options/1_18.d.ts.map +1 -1
  118. package/esm/options/1_18.js +6 -6
  119. package/esm/options/1_18.js.map +1 -1
  120. package/esm/options/1_21.d.ts +1 -1
  121. package/esm/options/1_21.d.ts.map +1 -1
  122. package/esm/options/1_21.js +1 -1
  123. package/esm/options/1_21.js.map +1 -1
  124. package/esm/options/1_22.d.ts +5 -8
  125. package/esm/options/1_22.d.ts.map +1 -1
  126. package/esm/options/1_22.js +4 -17
  127. package/esm/options/1_22.js.map +1 -1
  128. package/esm/options/1_23.d.ts +4 -4
  129. package/esm/options/1_23.d.ts.map +1 -1
  130. package/esm/options/1_23.js +1 -1
  131. package/esm/options/1_23.js.map +1 -1
  132. package/esm/options/1_24.d.ts +1 -1
  133. package/esm/options/1_24.d.ts.map +1 -1
  134. package/esm/options/1_24.js.map +1 -1
  135. package/esm/options/index.d.ts +1 -1
  136. package/esm/options/index.d.ts.map +1 -1
  137. package/esm/options/index.js +1 -1
  138. package/esm/options/index.js.map +1 -1
  139. package/esm/options/types.d.ts +45 -0
  140. package/esm/options/types.d.ts.map +1 -0
  141. package/esm/options/{common.js → types.js} +1 -1
  142. package/esm/options/types.js.map +1 -0
  143. package/package.json +24 -24
  144. package/src/adb/client.ts +292 -0
  145. package/src/{connection.ts → adb/connection.ts} +35 -38
  146. package/src/adb/index.ts +3 -0
  147. package/src/adb/options/1_16.ts +23 -0
  148. package/src/adb/options/1_22.ts +20 -0
  149. package/src/adb/options/index.ts +3 -0
  150. package/src/adb/options/types.ts +55 -0
  151. package/src/control/index.ts +7 -0
  152. package/src/control/inject-keycode.ts +59 -0
  153. package/src/control/inject-text.ts +12 -0
  154. package/src/control/inject-touch.ts +34 -0
  155. package/src/control/rotate-device.ts +10 -0
  156. package/src/control/serializer.ts +86 -0
  157. package/src/control/set-screen-power-mode.ts +17 -0
  158. package/src/control/type.ts +17 -0
  159. package/src/device-message/clipboard.ts +11 -0
  160. package/src/device-message/index.ts +3 -0
  161. package/src/device-message/stream.ts +19 -0
  162. package/src/device-message/type.ts +5 -0
  163. package/src/index.ts +3 -6
  164. package/src/options/1_16/codec-options.ts +48 -0
  165. package/src/options/1_16/index.ts +3 -345
  166. package/src/options/1_16/options.ts +294 -0
  167. package/src/options/1_18.ts +12 -10
  168. package/src/options/1_21.ts +16 -6
  169. package/src/options/1_22.ts +10 -21
  170. package/src/options/1_23.ts +7 -5
  171. package/src/options/1_24.ts +3 -2
  172. package/src/options/index.ts +1 -1
  173. package/src/options/{common.ts → types.ts} +32 -13
  174. package/tsconfig.build.json +3 -0
  175. package/tsconfig.build.tsbuildinfo +1 -0
  176. package/tsconfig.test.tsbuildinfo +1 -0
  177. package/esm/client.d.ts +0 -48
  178. package/esm/client.d.ts.map +0 -1
  179. package/esm/client.js +0 -341
  180. package/esm/client.js.map +0 -1
  181. package/esm/connection.d.ts +0 -37
  182. package/esm/connection.d.ts.map +0 -1
  183. package/esm/connection.js.map +0 -1
  184. package/esm/message.d.ts +0 -98
  185. package/esm/message.d.ts.map +0 -1
  186. package/esm/message.js +0 -98
  187. package/esm/message.js.map +0 -1
  188. package/esm/options/common.d.ts +0 -34
  189. package/esm/options/common.d.ts.map +0 -1
  190. package/esm/options/common.js.map +0 -1
  191. package/esm/push-server.d.ts +0 -6
  192. package/esm/push-server.d.ts.map +0 -1
  193. package/esm/push-server.js +0 -16
  194. package/esm/push-server.js.map +0 -1
  195. package/esm/utils.d.ts +0 -2
  196. package/esm/utils.d.ts.map +0 -1
  197. package/esm/utils.js +0 -6
  198. package/esm/utils.js.map +0 -1
  199. package/src/client.ts +0 -435
  200. package/src/decoder/index.ts +0 -3
  201. package/src/decoder/tinyh264/index.ts +0 -112
  202. package/src/decoder/tinyh264/types.d.ts +0 -137
  203. package/src/decoder/tinyh264/worker.ts +0 -2
  204. package/src/decoder/tinyh264/wrapper.ts +0 -89
  205. package/src/decoder/types.ts +0 -35
  206. package/src/decoder/web-codecs/index.ts +0 -99
  207. package/src/message.ts +0 -113
  208. package/src/push-server.ts +0 -24
  209. package/src/utils.ts +0 -5
@@ -0,0 +1,188 @@
1
+ import { StructDeserializeStream, TransformStream } from '@yume-chan/stream-extra';
2
+ import Struct from '@yume-chan/struct';
3
+ import { AndroidKeyEventAction, ScrcpyControlMessageType } from '../../control/index.js';
4
+ import { toScrcpyOptionValue } from '../types.js';
5
+ import { CodecOptions } from './codec-options.js';
6
+ import { parse_sequence_parameter_set } from './sps.js';
7
+ export var ScrcpyLogLevel;
8
+ (function (ScrcpyLogLevel) {
9
+ ScrcpyLogLevel["Verbose"] = "verbose";
10
+ ScrcpyLogLevel["Debug"] = "debug";
11
+ ScrcpyLogLevel["Info"] = "info";
12
+ ScrcpyLogLevel["Warn"] = "warn";
13
+ ScrcpyLogLevel["Error"] = "error";
14
+ })(ScrcpyLogLevel = ScrcpyLogLevel || (ScrcpyLogLevel = {}));
15
+ export var ScrcpyVideoOrientation;
16
+ (function (ScrcpyVideoOrientation) {
17
+ ScrcpyVideoOrientation[ScrcpyVideoOrientation["Initial"] = -2] = "Initial";
18
+ ScrcpyVideoOrientation[ScrcpyVideoOrientation["Unlocked"] = -1] = "Unlocked";
19
+ ScrcpyVideoOrientation[ScrcpyVideoOrientation["Portrait"] = 0] = "Portrait";
20
+ ScrcpyVideoOrientation[ScrcpyVideoOrientation["Landscape"] = 1] = "Landscape";
21
+ ScrcpyVideoOrientation[ScrcpyVideoOrientation["PortraitFlipped"] = 2] = "PortraitFlipped";
22
+ ScrcpyVideoOrientation[ScrcpyVideoOrientation["LandscapeFlipped"] = 3] = "LandscapeFlipped";
23
+ })(ScrcpyVideoOrientation = ScrcpyVideoOrientation || (ScrcpyVideoOrientation = {}));
24
+ export const VideoPacket = new Struct()
25
+ .uint64('pts')
26
+ .uint32('size')
27
+ .uint8Array('data', { lengthField: 'size' });
28
+ export const NO_PTS = BigInt(1) << BigInt(63);
29
+ export const ScrcpyBackOrScreenOnControlMessage1_16 = new Struct()
30
+ .uint8('type', ScrcpyControlMessageType.BackOrScreenOn);
31
+ export const ScrcpyInjectScrollControlMessage1_16 = new Struct()
32
+ .uint8('type', ScrcpyControlMessageType.InjectScroll)
33
+ .uint32('pointerX')
34
+ .uint32('pointerY')
35
+ .uint16('screenWidth')
36
+ .uint16('screenHeight')
37
+ .int32('scrollX')
38
+ .int32('scrollY');
39
+ export class ScrcpyOptions1_16 {
40
+ value;
41
+ constructor(value) {
42
+ if (new.target === ScrcpyOptions1_16 &&
43
+ value.logLevel === ScrcpyLogLevel.Verbose) {
44
+ value.logLevel = ScrcpyLogLevel.Debug;
45
+ }
46
+ if (new.target === ScrcpyOptions1_16 &&
47
+ value.lockVideoOrientation === ScrcpyVideoOrientation.Initial) {
48
+ value.lockVideoOrientation = ScrcpyVideoOrientation.Unlocked;
49
+ }
50
+ this.value = value;
51
+ }
52
+ getArgumentOrder() {
53
+ return [
54
+ 'logLevel',
55
+ 'maxSize',
56
+ 'bitRate',
57
+ 'maxFps',
58
+ 'lockVideoOrientation',
59
+ 'tunnelForward',
60
+ 'crop',
61
+ 'sendFrameMeta',
62
+ 'control',
63
+ 'displayId',
64
+ 'showTouches',
65
+ 'stayAwake',
66
+ 'codecOptions',
67
+ 'encoderName',
68
+ ];
69
+ }
70
+ getDefaultValue() {
71
+ return {
72
+ logLevel: ScrcpyLogLevel.Debug,
73
+ maxSize: 0,
74
+ bitRate: 8000000,
75
+ maxFps: 0,
76
+ lockVideoOrientation: ScrcpyVideoOrientation.Unlocked,
77
+ tunnelForward: false,
78
+ crop: '-',
79
+ sendFrameMeta: true,
80
+ control: true,
81
+ displayId: 0,
82
+ showTouches: false,
83
+ stayAwake: false,
84
+ codecOptions: new CodecOptions({}),
85
+ encoderName: '-',
86
+ };
87
+ }
88
+ formatServerArguments() {
89
+ const defaults = this.getDefaultValue();
90
+ return this.getArgumentOrder()
91
+ .map(key => toScrcpyOptionValue(this.value[key] || defaults[key], '-'));
92
+ }
93
+ getOutputEncoderNameRegex() {
94
+ return /\s+scrcpy --encoder-name '(.*?)'/;
95
+ }
96
+ createVideoStreamTransformer() {
97
+ // Optimized path for video frames only
98
+ if (this.value.sendFrameMeta === false) {
99
+ return new TransformStream({
100
+ transform(chunk, controller) {
101
+ controller.enqueue({
102
+ type: 'frame',
103
+ data: chunk,
104
+ });
105
+ },
106
+ });
107
+ }
108
+ let header;
109
+ let deserializeStream = new StructDeserializeStream(VideoPacket);
110
+ return {
111
+ writable: deserializeStream.writable,
112
+ readable: deserializeStream.readable.pipeThrough(new TransformStream({
113
+ transform(packet, controller) {
114
+ if (packet.pts === NO_PTS) {
115
+ const sequenceParameterSet = parse_sequence_parameter_set(packet.data.slice().buffer);
116
+ const { profile_idc: profileIndex, constraint_set: constraintSet, level_idc: levelIndex, pic_width_in_mbs_minus1, pic_height_in_map_units_minus1, frame_mbs_only_flag, frame_crop_left_offset, frame_crop_right_offset, frame_crop_top_offset, frame_crop_bottom_offset, } = sequenceParameterSet;
117
+ const encodedWidth = (pic_width_in_mbs_minus1 + 1) * 16;
118
+ const encodedHeight = (pic_height_in_map_units_minus1 + 1) * (2 - frame_mbs_only_flag) * 16;
119
+ const cropLeft = frame_crop_left_offset * 2;
120
+ const cropRight = frame_crop_right_offset * 2;
121
+ const cropTop = frame_crop_top_offset * 2;
122
+ const cropBottom = frame_crop_bottom_offset * 2;
123
+ const croppedWidth = encodedWidth - cropLeft - cropRight;
124
+ const croppedHeight = encodedHeight - cropTop - cropBottom;
125
+ header = packet.data;
126
+ controller.enqueue({
127
+ type: 'configuration',
128
+ data: {
129
+ profileIndex,
130
+ constraintSet,
131
+ levelIndex,
132
+ encodedWidth,
133
+ encodedHeight,
134
+ cropLeft,
135
+ cropRight,
136
+ cropTop,
137
+ cropBottom,
138
+ croppedWidth,
139
+ croppedHeight,
140
+ }
141
+ });
142
+ return;
143
+ }
144
+ let frameData;
145
+ if (header) {
146
+ frameData = new Uint8Array(header.byteLength + packet.data.byteLength);
147
+ frameData.set(header);
148
+ frameData.set(packet.data, header.byteLength);
149
+ header = undefined;
150
+ }
151
+ else {
152
+ frameData = packet.data;
153
+ }
154
+ controller.enqueue({
155
+ type: 'frame',
156
+ pts: packet.pts,
157
+ data: frameData,
158
+ });
159
+ }
160
+ }))
161
+ };
162
+ }
163
+ getControlMessageTypes() {
164
+ return [
165
+ /* 0 */ ScrcpyControlMessageType.InjectKeyCode,
166
+ /* 1 */ ScrcpyControlMessageType.InjectText,
167
+ /* 2 */ ScrcpyControlMessageType.InjectTouch,
168
+ /* 3 */ ScrcpyControlMessageType.InjectScroll,
169
+ /* 4 */ ScrcpyControlMessageType.BackOrScreenOn,
170
+ /* 5 */ ScrcpyControlMessageType.ExpandNotificationPanel,
171
+ /* 6 */ ScrcpyControlMessageType.CollapseNotificationPanel,
172
+ /* 7 */ ScrcpyControlMessageType.GetClipboard,
173
+ /* 8 */ ScrcpyControlMessageType.SetClipboard,
174
+ /* 9 */ ScrcpyControlMessageType.SetScreenPowerMode,
175
+ /* 10 */ ScrcpyControlMessageType.RotateDevice,
176
+ ];
177
+ }
178
+ serializeBackOrScreenOnControlMessage(message) {
179
+ if (message.action === AndroidKeyEventAction.Down) {
180
+ return ScrcpyBackOrScreenOnControlMessage1_16.serialize(message);
181
+ }
182
+ return undefined;
183
+ }
184
+ serializeInjectScrollControlMessage(message) {
185
+ return ScrcpyInjectScrollControlMessage1_16.serialize(message);
186
+ }
187
+ }
188
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/options/1_16/options.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,20 @@
1
- import Struct from "@yume-chan/struct";
2
- import { AndroidKeyEventAction, ScrcpyControlMessageType } from "../message.js";
3
- import { ScrcpyOptions1_16, type ScrcpyOptionsInit1_16 } from "./1_16/index.js";
1
+ import Struct from '@yume-chan/struct';
2
+ import { AndroidKeyEventAction, ScrcpyControlMessageType } from '../control/index.js';
3
+ import { ScrcpyOptions1_16, type ScrcpyOptionsInit1_16 } from './1_16/options.js';
4
4
  export interface ScrcpyOptionsInit1_18 extends ScrcpyOptionsInit1_16 {
5
5
  powerOffOnClose: boolean;
6
6
  }
7
- export declare const ScrcpyBackOrScreenOnEvent1_18: Struct<{
8
- type: number;
7
+ export declare const ScrcpyBackOrScreenOnControlMessage1_18: Struct<{
8
+ type: ScrcpyControlMessageType.BackOrScreenOn;
9
9
  action: AndroidKeyEventAction;
10
10
  }, never, {}, undefined>;
11
- export declare type ScrcpyBackOrScreenOnEvent1_18 = typeof ScrcpyBackOrScreenOnEvent1_18["TInit"];
11
+ export declare type ScrcpyBackOrScreenOnControlMessage1_18 = typeof ScrcpyBackOrScreenOnControlMessage1_18['TInit'];
12
12
  export declare class ScrcpyOptions1_18<T extends ScrcpyOptionsInit1_18 = ScrcpyOptionsInit1_18> extends ScrcpyOptions1_16<T> {
13
13
  constructor(value: Partial<ScrcpyOptionsInit1_18>);
14
14
  protected getArgumentOrder(): (keyof T)[];
15
- protected getDefaultValue(): T;
15
+ getDefaultValue(): T;
16
16
  getOutputEncoderNameRegex(): RegExp;
17
17
  getControlMessageTypes(): ScrcpyControlMessageType[];
18
- serializeBackOrScreenOnControlMessage(message: ScrcpyBackOrScreenOnEvent1_18): Uint8Array;
18
+ serializeBackOrScreenOnControlMessage(message: ScrcpyBackOrScreenOnControlMessage1_18): Uint8Array;
19
19
  }
20
20
  //# sourceMappingURL=1_18.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"1_18.d.ts","sourceRoot":"","sources":["../../src/options/1_18.ts"],"names":[],"mappings":"AAAA,OAAO,MAAuB,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAiC,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE/G,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAChE,eAAe,EAAE,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,6BAA6B;;;wBAGoB,CAAC;AAE/D,oBAAY,6BAA6B,GAAG,OAAO,6BAA6B,CAAC,OAAO,CAAC,CAAC;AAE1F,qBAAa,iBAAiB,CAAC,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;gBACpG,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC;cAI9B,gBAAgB,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;cAI/B,eAAe,IAAI,CAAC;IAOvB,yBAAyB,IAAI,MAAM;IAInC,sBAAsB,IAAI,wBAAwB,EAAE;IAoBpD,qCAAqC,CACjD,OAAO,EAAE,6BAA6B;CAI7C"}
1
+ {"version":3,"file":"1_18.d.ts","sourceRoot":"","sources":["../../src/options/1_18.ts"],"names":[],"mappings":"AAAA,OAAO,MAAuB,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAA0C,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1H,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAChE,eAAe,EAAE,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,sCAAsC;;;wBAGW,CAAC;AAE/D,oBAAY,sCAAsC,GAAG,OAAO,sCAAsC,CAAC,OAAO,CAAC,CAAC;AAE5G,qBAAa,iBAAiB,CAAC,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CAClF,SAAQ,iBAAiB,CAAC,CAAC,CAAC;gBAChB,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC;cAI9B,gBAAgB,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;IAIlC,eAAe,IAAI,CAAC;IAOpB,yBAAyB,IAAI,MAAM;IAInC,sBAAsB,IAAI,wBAAwB,EAAE;IAoBpD,qCAAqC,CACjD,OAAO,EAAE,sCAAsC;CAItD"}
@@ -1,8 +1,8 @@
1
- import Struct, { placeholder } from "@yume-chan/struct";
2
- import { ScrcpyControlMessageType } from "../message.js";
3
- import { ScrcpyBackOrScreenOnEvent1_16, ScrcpyOptions1_16 } from "./1_16/index.js";
4
- export const ScrcpyBackOrScreenOnEvent1_18 = new Struct()
5
- .fields(ScrcpyBackOrScreenOnEvent1_16)
1
+ import Struct, { placeholder } from '@yume-chan/struct';
2
+ import { ScrcpyControlMessageType } from '../control/index.js';
3
+ import { ScrcpyBackOrScreenOnControlMessage1_16, ScrcpyOptions1_16 } from './1_16/options.js';
4
+ export const ScrcpyBackOrScreenOnControlMessage1_18 = new Struct()
5
+ .fields(ScrcpyBackOrScreenOnControlMessage1_16)
6
6
  .uint8('action', placeholder());
7
7
  export class ScrcpyOptions1_18 extends ScrcpyOptions1_16 {
8
8
  constructor(value) {
@@ -40,7 +40,7 @@ export class ScrcpyOptions1_18 extends ScrcpyOptions1_16 {
40
40
  return types;
41
41
  }
42
42
  serializeBackOrScreenOnControlMessage(message) {
43
- return ScrcpyBackOrScreenOnEvent1_18.serialize(message);
43
+ return ScrcpyBackOrScreenOnControlMessage1_18.serialize(message);
44
44
  }
45
45
  }
46
46
  //# sourceMappingURL=1_18.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"1_18.js","sourceRoot":"","sources":["../../src/options/1_18.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAyB,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,6BAA6B,EAAE,iBAAiB,EAA8B,MAAM,iBAAiB,CAAC;AAM/G,MAAM,CAAC,MAAM,6BAA6B,GACtC,IAAI,MAAM,EAAE;KACP,MAAM,CAAC,6BAA6B,CAAC;KACrC,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAyB,CAAC,CAAC;AAI/D,MAAM,OAAO,iBAA2E,SAAQ,iBAAoB;IAChH,YAAY,KAAqC;QAC7C,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAEkB,gBAAgB;QAC/B,OAAO,KAAK,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAChE,CAAC;IAEkB,eAAe;QAC9B,OAAO;YACH,GAAG,KAAK,CAAC,eAAe,EAAE;YAC1B,eAAe,EAAE,KAAK;SACzB,CAAC;IACN,CAAC;IAEe,yBAAyB;QACrC,OAAO,6BAA6B,CAAC;IACzC,CAAC;IAEe,sBAAsB;QAClC;;;;;;;;;;;;;WAaG;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,sBAAsB,EAAE,CAAC;QAC7C,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;QAChE,OAAO,KAAK,CAAC;IACjB,CAAC;IAEe,qCAAqC,CACjD,OAAsC;QAEtC,OAAO,6BAA6B,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;CACJ"}
1
+ {"version":3,"file":"1_18.js","sourceRoot":"","sources":["../../src/options/1_18.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAyB,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,sCAAsC,EAAE,iBAAiB,EAA8B,MAAM,mBAAmB,CAAC;AAM1H,MAAM,CAAC,MAAM,sCAAsC,GAC/C,IAAI,MAAM,EAAE;KACP,MAAM,CAAC,sCAAsC,CAAC;KAC9C,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAyB,CAAC,CAAC;AAI/D,MAAM,OAAO,iBACT,SAAQ,iBAAoB;IAC5B,YAAY,KAAqC;QAC7C,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAEkB,gBAAgB;QAC/B,OAAO,KAAK,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAChE,CAAC;IAEe,eAAe;QAC3B,OAAO;YACH,GAAG,KAAK,CAAC,eAAe,EAAE;YAC1B,eAAe,EAAE,KAAK;SACzB,CAAC;IACN,CAAC;IAEe,yBAAyB;QACrC,OAAO,6BAA6B,CAAC;IACzC,CAAC;IAEe,sBAAsB;QAClC;;;;;;;;;;;;;WAaG;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,sBAAsB,EAAE,CAAC;QAC7C,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;QAChE,OAAO,KAAK,CAAC;IACjB,CAAC;IAEe,qCAAqC,CACjD,OAA+C;QAE/C,OAAO,sCAAsC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC;CACJ"}
@@ -4,7 +4,7 @@ export interface ScrcpyOptionsInit1_21 extends ScrcpyOptionsInit1_18 {
4
4
  }
5
5
  export declare class ScrcpyOptions1_21<T extends ScrcpyOptionsInit1_21 = ScrcpyOptionsInit1_21> extends ScrcpyOptions1_18<T> {
6
6
  constructor(init: Partial<ScrcpyOptionsInit1_21>);
7
- protected getDefaultValue(): T;
7
+ getDefaultValue(): T;
8
8
  formatServerArguments(): string[];
9
9
  }
10
10
  //# sourceMappingURL=1_21.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"1_21.d.ts","sourceRoot":"","sources":["../../src/options/1_21.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAG1E,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAChE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAMD,qBAAa,iBAAiB,CAAC,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;gBAC7F,IAAI,EAAE,OAAO,CAAC,qBAAqB,CAAC;cAIpC,eAAe,IAAI,CAAC;IAOvB,qBAAqB,IAAI,MAAM,EAAE;CAQpD"}
1
+ {"version":3,"file":"1_21.d.ts","sourceRoot":"","sources":["../../src/options/1_21.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAG1E,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAChE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAMD,qBAAa,iBAAiB,CAAC,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CAClF,SAAQ,iBAAiB,CAAC,CAAC,CAAC;gBACT,IAAI,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAIvC,eAAe,IAAI,CAAC;IAOpB,qBAAqB,IAAI,MAAM,EAAE;CAiBpD"}
@@ -1,6 +1,6 @@
1
1
  // cspell: ignore autosync
2
2
  import { ScrcpyOptions1_18 } from './1_18.js';
3
- import { toScrcpyOptionValue } from "./common.js";
3
+ import { toScrcpyOptionValue } from './types.js';
4
4
  function toSnakeCase(input) {
5
5
  return input.replace(/([A-Z])/g, '_$1').toLowerCase();
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"1_21.js","sourceRoot":"","sources":["../../src/options/1_21.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,EAAE,iBAAiB,EAA8B,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAMlD,SAAS,WAAW,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,OAAO,iBAA2E,SAAQ,iBAAoB;IAChH,YAAmB,IAAoC;QACnD,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEkB,eAAe;QAC9B,OAAO;YACH,GAAG,KAAK,CAAC,eAAe,EAAE;YAC1B,iBAAiB,EAAE,IAAI;SAC1B,CAAC;IACN,CAAC;IAEe,qBAAqB;QACjC,uCAAuC;QACvC,8CAA8C;QAC9C,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;aAC5B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAU,CAAC;aAC5E,MAAM,CAAC,CAAC,IAAI,EAA4B,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;aACjE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;CACJ"}
1
+ {"version":3,"file":"1_21.js","sourceRoot":"","sources":["../../src/options/1_21.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,EAAE,iBAAiB,EAA8B,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAMjD,SAAS,WAAW,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,OAAO,iBACT,SAAQ,iBAAoB;IAC5B,YAAmB,IAAoC;QACnD,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEe,eAAe;QAC3B,OAAO;YACH,GAAG,KAAK,CAAC,eAAe,EAAE;YAC1B,iBAAiB,EAAE,IAAI;SAC1B,CAAC;IACN,CAAC;IAEe,qBAAqB;QACjC,uCAAuC;QACvC,8CAA8C;QAC9C,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;aAC5B,GAAG,CACA,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CACb,CAAC,GAAG,EAAE,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAU,CAC5D;aACA,MAAM,CACH,CAAC,IAAI,EAA4B,EAAE,CAC/B,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAC5B;aACA,GAAG,CACA,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CACb,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CACrC,CAAC;IACV,CAAC;CACJ"}
@@ -1,7 +1,5 @@
1
- import type { Adb } from "@yume-chan/adb";
2
- import Struct from "@yume-chan/struct";
3
- import { type ScrcpyClientConnection } from "../connection.js";
4
- import { ScrcpyOptions1_21, type ScrcpyOptionsInit1_21 } from "./1_21.js";
1
+ import Struct from '@yume-chan/struct';
2
+ import { ScrcpyOptions1_21, type ScrcpyOptionsInit1_21 } from './1_21.js';
5
3
  export interface ScrcpyOptionsInit1_22 extends ScrcpyOptionsInit1_21 {
6
4
  downsizeOnError: boolean;
7
5
  /**
@@ -24,7 +22,7 @@ export interface ScrcpyOptionsInit1_22 extends ScrcpyOptionsInit1_21 {
24
22
  rawVideoStream: boolean;
25
23
  }
26
24
  export declare const ScrcpyInjectScrollControlMessage1_22: Struct<{
27
- type: number;
25
+ type: import("../index.js").ScrcpyControlMessageType.InjectScroll;
28
26
  pointerX: number;
29
27
  pointerY: number;
30
28
  screenWidth: number;
@@ -33,11 +31,10 @@ export declare const ScrcpyInjectScrollControlMessage1_22: Struct<{
33
31
  scrollY: number;
34
32
  buttons: number;
35
33
  }, never, {}, undefined>;
36
- export declare type ScrcpyInjectScrollControlMessage1_22 = typeof ScrcpyInjectScrollControlMessage1_22["TInit"];
34
+ export declare type ScrcpyInjectScrollControlMessage1_22 = typeof ScrcpyInjectScrollControlMessage1_22['TInit'];
37
35
  export declare class ScrcpyOptions1_22<T extends ScrcpyOptionsInit1_22 = ScrcpyOptionsInit1_22> extends ScrcpyOptions1_21<T> {
38
36
  constructor(init: Partial<ScrcpyOptionsInit1_22>);
39
- protected getDefaultValue(): T;
40
- createConnection(device: Adb): ScrcpyClientConnection;
37
+ getDefaultValue(): T;
41
38
  serializeInjectScrollControlMessage(message: ScrcpyInjectScrollControlMessage1_22): Uint8Array;
42
39
  }
43
40
  //# sourceMappingURL=1_22.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"1_22.d.ts","sourceRoot":"","sources":["../../src/options/1_22.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAgE,KAAK,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE7H,OAAO,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAE1E,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAChE,eAAe,EAAE,OAAO,CAAC;IAEzB;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAC;CAC3B;AAED,eAAO,MAAM,oCAAoC;;;;;;;;;wBAGxB,CAAC;AAE1B,oBAAY,oCAAoC,GAAG,OAAO,oCAAoC,CAAC,OAAO,CAAC,CAAC;AAExG,qBAAa,iBAAiB,CAAC,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;gBAC7F,IAAI,EAAE,OAAO,CAAC,qBAAqB,CAAC;cAWpC,eAAe,IAAI,CAAC;IAUvB,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,sBAAsB;IAYrD,mCAAmC,CAC/C,OAAO,EAAE,oCAAoC,GAC9C,UAAU;CAGhB"}
1
+ {"version":3,"file":"1_22.d.ts","sourceRoot":"","sources":["../../src/options/1_22.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAGvC,OAAO,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAE1E,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAChE,eAAe,EAAE,OAAO,CAAC;IAEzB;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAC;CAC3B;AAED,eAAO,MAAM,oCAAoC;;;;;;;;;wBAGxB,CAAC;AAE1B,oBAAY,oCAAoC,GAC5C,OAAO,oCAAoC,CAAC,OAAO,CAAC,CAAC;AAEzD,qBAAa,iBAAiB,CAAC,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CAClF,SAAQ,iBAAiB,CAAC,CAAC,CAAC;gBACT,IAAI,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAWvC,eAAe,IAAI,CAAC;IAUpB,mCAAmC,CAC/C,OAAO,EAAE,oCAAoC,GAC9C,UAAU;CAGhB"}
@@ -1,10 +1,9 @@
1
- import Struct from "@yume-chan/struct";
2
- import { ScrcpyClientForwardConnection, ScrcpyClientReverseConnection } from "../connection.js";
3
- import { ScrcpyInjectScrollControlMessage1_16 } from "./1_16/index.js";
4
- import { ScrcpyOptions1_21 } from "./1_21.js";
1
+ import Struct from '@yume-chan/struct';
2
+ import { ScrcpyInjectScrollControlMessage1_16 } from './1_16/options.js';
3
+ import { ScrcpyOptions1_21 } from './1_21.js';
5
4
  export const ScrcpyInjectScrollControlMessage1_22 = new Struct()
6
5
  .fields(ScrcpyInjectScrollControlMessage1_16)
7
- .int32("buttons");
6
+ .int32('buttons');
8
7
  export class ScrcpyOptions1_22 extends ScrcpyOptions1_21 {
9
8
  constructor(init) {
10
9
  if (init.rawVideoStream) {
@@ -24,18 +23,6 @@ export class ScrcpyOptions1_22 extends ScrcpyOptions1_21 {
24
23
  rawVideoStream: false,
25
24
  };
26
25
  }
27
- createConnection(device) {
28
- const options = {
29
- ...this.getDefaultValue(),
30
- ...this.value,
31
- };
32
- if (this.value.tunnelForward) {
33
- return new ScrcpyClientForwardConnection(device, options);
34
- }
35
- else {
36
- return new ScrcpyClientReverseConnection(device, options);
37
- }
38
- }
39
26
  serializeInjectScrollControlMessage(message) {
40
27
  return ScrcpyInjectScrollControlMessage1_22.serialize(message);
41
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"1_22.js","sourceRoot":"","sources":["../../src/options/1_22.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,6BAA6B,EAAE,6BAA6B,EAA+B,MAAM,kBAAkB,CAAC;AAC7H,OAAO,EAAE,oCAAoC,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAA8B,MAAM,WAAW,CAAC;AA2B1E,MAAM,CAAC,MAAM,oCAAoC,GAC7C,IAAI,MAAM,EAAE;KACP,MAAM,CAAC,oCAAoC,CAAC;KAC5C,KAAK,CAAC,SAAS,CAAC,CAAC;AAI1B,MAAM,OAAO,iBAA2E,SAAQ,iBAAoB;IAChH,YAAmB,IAAoC;QACnD,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,iDAAiD;YACjD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;SAC9B;QAED,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEkB,eAAe;QAC9B,OAAO;YACH,GAAG,KAAK,CAAC,eAAe,EAAE;YAC1B,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,KAAK;SACxB,CAAC;IACN,CAAC;IAEe,gBAAgB,CAAC,MAAW;QACxC,MAAM,OAAO,GAAG;YACZ,GAAG,IAAI,CAAC,eAAe,EAAE;YACzB,GAAG,IAAI,CAAC,KAAK;SAChB,CAAC;QACF,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;YAC1B,OAAO,IAAI,6BAA6B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SAC7D;aAAM;YACH,OAAO,IAAI,6BAA6B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SAC7D;IACL,CAAC;IAEe,mCAAmC,CAC/C,OAA6C;QAE7C,OAAO,oCAAoC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;CACJ"}
1
+ {"version":3,"file":"1_22.js","sourceRoot":"","sources":["../../src/options/1_22.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,oCAAoC,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAA8B,MAAM,WAAW,CAAC;AA2B1E,MAAM,CAAC,MAAM,oCAAoC,GAC7C,IAAI,MAAM,EAAE;KACP,MAAM,CAAC,oCAAoC,CAAC;KAC5C,KAAK,CAAC,SAAS,CAAC,CAAC;AAK1B,MAAM,OAAO,iBACT,SAAQ,iBAAoB;IAC5B,YAAmB,IAAoC;QACnD,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,iDAAiD;YACjD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;SAC9B;QAED,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEe,eAAe;QAC3B,OAAO;YACH,GAAG,KAAK,CAAC,eAAe,EAAE;YAC1B,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,KAAK;SACxB,CAAC;IACN,CAAC;IAEe,mCAAmC,CAC/C,OAA6C;QAE7C,OAAO,oCAAoC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;CACJ"}
@@ -1,12 +1,12 @@
1
- import { TransformStream } from "@yume-chan/adb";
1
+ import { TransformStream } from '@yume-chan/stream-extra';
2
2
  import { ScrcpyOptions1_22, type ScrcpyOptionsInit1_22 } from './1_22.js';
3
- import type { VideoStreamPacket } from "./common.js";
3
+ import type { ScrcpyVideoStreamPacket } from './types.js';
4
4
  export interface ScrcpyOptionsInit1_23 extends ScrcpyOptionsInit1_22 {
5
5
  cleanup: boolean;
6
6
  }
7
7
  export declare class ScrcpyOptions1_23<T extends ScrcpyOptionsInit1_23 = ScrcpyOptionsInit1_23> extends ScrcpyOptions1_22<T> {
8
8
  constructor(init: Partial<ScrcpyOptionsInit1_23>);
9
- protected getDefaultValue(): T;
10
- createVideoStreamTransformer(): TransformStream<Uint8Array, VideoStreamPacket>;
9
+ getDefaultValue(): T;
10
+ createVideoStreamTransformer(): TransformStream<Uint8Array, ScrcpyVideoStreamPacket>;
11
11
  }
12
12
  //# sourceMappingURL=1_23.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"1_23.d.ts","sourceRoot":"","sources":["../../src/options/1_23.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAChE,OAAO,EAAE,OAAO,CAAC;CACpB;AAID,qBAAa,iBAAiB,CAAC,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;gBAC7F,IAAI,EAAE,OAAO,CAAC,qBAAqB,CAAC;cAIpC,eAAe,IAAI,CAAC;IAOvB,4BAA4B,IAAI,eAAe,CAAC,UAAU,EAAE,iBAAiB,CAAC;CAqBjG"}
1
+ {"version":3,"file":"1_23.d.ts","sourceRoot":"","sources":["../../src/options/1_23.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAChE,OAAO,EAAE,OAAO,CAAC;CACpB;AAID,qBAAa,iBAAiB,CAAC,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CAClF,SAAQ,iBAAiB,CAAC,CAAC,CAAC;gBACT,IAAI,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAIvC,eAAe,IAAI,CAAC;IAOpB,4BAA4B,IAAI,eAAe,CAAC,UAAU,EAAE,uBAAuB,CAAC;CAqBvG"}
@@ -1,4 +1,4 @@
1
- import { TransformStream } from "@yume-chan/adb";
1
+ import { TransformStream } from '@yume-chan/stream-extra';
2
2
  import { ScrcpyOptions1_22 } from './1_22.js';
3
3
  const KEYFRAME_PTS = BigInt(1) << BigInt(62);
4
4
  export class ScrcpyOptions1_23 extends ScrcpyOptions1_22 {
@@ -1 +1 @@
1
- {"version":3,"file":"1_23.js","sourceRoot":"","sources":["../../src/options/1_23.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAA8B,MAAM,WAAW,CAAC;AAO1E,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AAE7C,MAAM,OAAO,iBAA2E,SAAQ,iBAAoB;IAChH,YAAmB,IAAoC;QACnD,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEkB,eAAe;QAC9B,OAAO;YACH,GAAG,KAAK,CAAC,eAAe,EAAE;YAC1B,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAEe,4BAA4B;QACxC,MAAM,WAAW,GAAG,KAAK,CAAC,4BAA4B,EAAE,CAAC;QACzD,OAAO;YACH,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC;gBAC3D,SAAS,CAAC,MAAM,EAAE,UAAU;oBACxB,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;wBACzB,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBAC3B,OAAO;qBACV;oBAED,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,GAAG,YAAY,EAAE;wBACvD,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;wBACvB,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;qBAC/B;oBAED,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC/B,CAAC;aACJ,CAAC,CAAC;SACN,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"1_23.js","sourceRoot":"","sources":["../../src/options/1_23.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAA8B,MAAM,WAAW,CAAC;AAO1E,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AAE7C,MAAM,OAAO,iBACT,SAAQ,iBAAoB;IAC5B,YAAmB,IAAoC;QACnD,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEe,eAAe;QAC3B,OAAO;YACH,GAAG,KAAK,CAAC,eAAe,EAAE;YAC1B,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAEe,4BAA4B;QACxC,MAAM,WAAW,GAAG,KAAK,CAAC,4BAA4B,EAAE,CAAC;QACzD,OAAO;YACH,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC;gBAC3D,SAAS,CAAC,MAAM,EAAE,UAAU;oBACxB,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;wBACzB,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBAC3B,OAAO;qBACV;oBAED,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,GAAG,YAAY,EAAE;wBACvD,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;wBACvB,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;qBAC/B;oBAED,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC/B,CAAC;aACJ,CAAC,CAAC;SACN,CAAC;IACN,CAAC;CACJ"}
@@ -4,6 +4,6 @@ export interface ScrcpyOptionsInit1_24 extends ScrcpyOptionsInit1_23 {
4
4
  }
5
5
  export declare class ScrcpyOptions1_24<T extends ScrcpyOptionsInit1_24 = ScrcpyOptionsInit1_24> extends ScrcpyOptions1_23<T> {
6
6
  constructor(init: Partial<ScrcpyOptionsInit1_24>);
7
- protected getDefaultValue(): T;
7
+ getDefaultValue(): T;
8
8
  }
9
9
  //# sourceMappingURL=1_24.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"1_24.d.ts","sourceRoot":"","sources":["../../src/options/1_24.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAE1E,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAChE,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,iBAAiB,CAAC,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;gBAC7F,IAAI,EAAE,OAAO,CAAC,qBAAqB,CAAC;cAIpC,eAAe,IAAI,CAAC;CAM1C"}
1
+ {"version":3,"file":"1_24.d.ts","sourceRoot":"","sources":["../../src/options/1_24.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAE1E,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAChE,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,iBAAiB,CAAC,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CAClF,SAAQ,iBAAiB,CAAC,CAAC,CAAC;gBACT,IAAI,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAIvC,eAAe,IAAI,CAAC;CAMvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"1_24.js","sourceRoot":"","sources":["../../src/options/1_24.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA8B,MAAM,WAAW,CAAC;AAM1E,MAAM,OAAO,iBAA2E,SAAQ,iBAAoB;IAChH,YAAmB,IAAoC;QACnD,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEkB,eAAe;QAC9B,OAAO;YACH,GAAG,KAAK,CAAC,eAAe,EAAE;YAC1B,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"1_24.js","sourceRoot":"","sources":["../../src/options/1_24.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA8B,MAAM,WAAW,CAAC;AAM1E,MAAM,OAAO,iBACT,SAAQ,iBAAoB;IAC5B,YAAmB,IAAoC;QACnD,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEe,eAAe;QAC3B,OAAO;YACH,GAAG,KAAK,CAAC,eAAe,EAAE;YAC1B,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;CACJ"}
@@ -4,5 +4,5 @@ export * from './1_21.js';
4
4
  export * from './1_22.js';
5
5
  export * from './1_23.js';
6
6
  export * from './1_24.js';
7
- export * from './common.js';
7
+ export * from './types.js';
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/options/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/options/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
@@ -4,5 +4,5 @@ export * from './1_21.js';
4
4
  export * from './1_22.js';
5
5
  export * from './1_23.js';
6
6
  export * from './1_24.js';
7
- export * from './common.js';
7
+ export * from './types.js';
8
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/options/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/options/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,45 @@
1
+ import type { TransformStream } from '@yume-chan/stream-extra';
2
+ import type { ScrcpyControlMessageType } from '../control/index.js';
3
+ import type { ScrcpyBackOrScreenOnControlMessage1_18 } from './1_18.js';
4
+ import type { ScrcpyInjectScrollControlMessage1_22 } from './1_22.js';
5
+ export declare const DEFAULT_SERVER_PATH = "/data/local/tmp/scrcpy-server.jar";
6
+ export interface ScrcpyOptionValue {
7
+ toOptionValue(): string | undefined;
8
+ }
9
+ export declare function isScrcpyOptionValue(value: any): value is ScrcpyOptionValue;
10
+ export declare function toScrcpyOptionValue<T>(value: any, empty: T): string | T;
11
+ export interface H264Configuration {
12
+ profileIndex: number;
13
+ constraintSet: number;
14
+ levelIndex: number;
15
+ encodedWidth: number;
16
+ encodedHeight: number;
17
+ cropLeft: number;
18
+ cropRight: number;
19
+ cropTop: number;
20
+ cropBottom: number;
21
+ croppedWidth: number;
22
+ croppedHeight: number;
23
+ }
24
+ export interface ScrcpyVideoStreamConfigurationPacket {
25
+ type: 'configuration';
26
+ data: H264Configuration;
27
+ }
28
+ export interface ScrcpyVideoStreamFramePacket {
29
+ type: 'frame';
30
+ keyframe?: boolean | undefined;
31
+ pts?: bigint | undefined;
32
+ data: Uint8Array;
33
+ }
34
+ export declare type ScrcpyVideoStreamPacket = ScrcpyVideoStreamConfigurationPacket | ScrcpyVideoStreamFramePacket;
35
+ export interface ScrcpyOptions<T> {
36
+ value: Partial<T>;
37
+ getDefaultValue(): T;
38
+ formatServerArguments(): string[];
39
+ getOutputEncoderNameRegex(): RegExp;
40
+ createVideoStreamTransformer(): TransformStream<Uint8Array, ScrcpyVideoStreamPacket>;
41
+ getControlMessageTypes(): ScrcpyControlMessageType[];
42
+ serializeBackOrScreenOnControlMessage(message: ScrcpyBackOrScreenOnControlMessage1_18): Uint8Array | undefined;
43
+ serializeInjectScrollControlMessage(message: ScrcpyInjectScrollControlMessage1_22): Uint8Array;
44
+ }
45
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/options/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,WAAW,CAAC;AAEtE,eAAO,MAAM,mBAAmB,sCAAsC,CAAC;AAEvE,MAAM,WAAW,iBAAiB;IAC9B,aAAa,IAAI,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,iBAAiB,CAI1E;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,CAUvE;AAED,MAAM,WAAW,iBAAiB;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IAEnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IAEtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAElB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IAEnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oCAAoC;IACjD,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,iBAAiB,CAAC;CAC3B;AAED,MAAM,WAAW,4BAA4B;IACzC,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,EAAE,UAAU,CAAC;CACpB;AAED,oBAAY,uBAAuB,GAC7B,oCAAoC,GACpC,4BAA4B,CAAC;AAEnC,MAAM,WAAW,aAAa,CAAC,CAAC;IAC5B,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAElB,eAAe,IAAI,CAAC,CAAC;IAErB,qBAAqB,IAAI,MAAM,EAAE,CAAC;IAElC,yBAAyB,IAAI,MAAM,CAAC;IAEpC,4BAA4B,IAAI,eAAe,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;IAErF,sBAAsB,IAAI,wBAAwB,EAAE,CAAC;IAErD,qCAAqC,CACjC,OAAO,EAAE,sCAAsC,GAChD,UAAU,GAAG,SAAS,CAAC;IAE1B,mCAAmC,CAC/B,OAAO,EAAE,oCAAoC,GAC9C,UAAU,CAAC;CACjB"}
@@ -13,4 +13,4 @@ export function toScrcpyOptionValue(value, empty) {
13
13
  }
14
14
  return `${value}`;
15
15
  }
16
- //# sourceMappingURL=common.js.map
16
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/options/types.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,mBAAmB,GAAG,mCAAmC,CAAC;AAMvE,MAAM,UAAU,mBAAmB,CAAC,KAAU;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ;QAC5B,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,CAAC,aAAa,KAAK,UAAU,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAI,KAAU,EAAE,KAAQ;IACvD,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;QAC5B,KAAK,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;KACjC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE;QACrB,OAAO,KAAK,CAAC;KAChB;IAED,OAAO,GAAG,KAAK,EAAE,CAAC;AACtB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yume-chan/scrcpy",
3
- "version": "0.0.16",
3
+ "version": "0.0.17",
4
4
  "description": "TypeScript implementation of Scrcpy.",
5
5
  "keywords": [
6
6
  "adb",
@@ -13,7 +13,7 @@
13
13
  "email": "cnsimonchan@live.com",
14
14
  "url": "https://chensi.moe/blog"
15
15
  },
16
- "homepage": "https://github.com/yume-chan/ya-webadb/tree/master/packages/scrcpy#readme",
16
+ "homepage": "https://github.com/yume-chan/ya-webadb/tree/main/packages/scrcpy#readme",
17
17
  "repository": {
18
18
  "type": "git",
19
19
  "url": "git+https://github.com/yume-chan/ya-webadb.git",
@@ -29,33 +29,33 @@
29
29
  "main": "esm/index.js",
30
30
  "types": "esm/index.d.ts",
31
31
  "dependencies": {
32
- "@yume-chan/adb": "^0.0.16",
33
- "@yume-chan/async": "^2.1.4",
34
- "@yume-chan/event": "^0.0.16",
35
- "@yume-chan/struct": "^0.0.16",
36
- "tslib": "^2.3.1"
32
+ "@yume-chan/adb": "^0.0.17",
33
+ "@yume-chan/async": "^2.2.0",
34
+ "@yume-chan/event": "^0.0.17",
35
+ "@yume-chan/stream-extra": "^0.0.17",
36
+ "@yume-chan/struct": "^0.0.17",
37
+ "tslib": "^2.4.0"
37
38
  },
38
39
  "devDependencies": {
39
- "@jest/globals": "^28.1.0",
40
- "@types/dom-webcodecs": "^0.1.3",
40
+ "@jest/globals": "^28.1.2",
41
41
  "@yume-chan/ts-package-builder": "^1.0.0",
42
- "gh-release-fetch": "^2.0.4",
43
- "jest": "^28.1.0",
44
- "tinyh264": "^0.0.7",
45
- "typescript": "4.7.2",
46
- "yuv-buffer": "^1.0.0",
47
- "yuv-canvas": "^1.2.7"
42
+ "cross-env": "^7.0.3",
43
+ "gh-release-fetch": "^3.0.2",
44
+ "jest": "^28.1.2",
45
+ "ts-jest": "^28.0.5",
46
+ "typescript": "^4.7.4"
48
47
  },
49
48
  "peerDependencies": {
50
- "@types/dom-webcodecs": "^0.1.3",
51
- "tinyh264": "^0.0.6",
52
- "yuv-buffer": "^1.0.0",
53
- "yuv-canvas": "^1.2.7"
49
+ "gh-release-fetch": "^3.0.2"
54
50
  },
55
- "scripts": {
56
- "build": "build-ts-package",
57
- "build:watch": "build-ts-package --incremental",
58
- "test": "jest --coverage"
51
+ "peerDependenciesMeta": {
52
+ "gh-release-fetch": {
53
+ "optional": true
54
+ }
59
55
  },
60
- "readme": "# @yume-chan/scrcpy\n\nTypeScript implementation of [Scrcpy](https://github.com/Genymobile/scrcpy) client.\n\nIt uses the official Scrcpy server releases.\n\n**WARNING:** The public API is UNSTABLE. If you have any questions, please open an issue.\n\n## Download Server Binary\n\nThis package has a script `fetch-scrcpy-server` to help you download the official server binary.\n\nThe server binary is subject to [Apache License 2.0](https://github.com/Genymobile/scrcpy/blob/master/LICENSE).\n\nUsage:\n\n```\n$ npx fetch-scrcpy-server <version>\n```\n\nFor example:\n\n```\n$ npx fetch-scrcpy-server 1.21\n```\n\nYou can also add it to the `postinstall` script of your `package.json` so it will run automatically when you do `npm install`:\n\n```json\n\"scripts\": {\n \"postinstall\": \"fetch-scrcpy-server 1.21\",\n},\n```\n\nIt will download the binary to `bin/scrcpy` and write the version string to `bin/version.js`. You can import the version string with\n\n```js\nimport SCRCPY_SERVER_VERSION from '@yume-chan/scrcpy/bin/version';\n```\n\nAnd import the server binary with [file-loader](https://v4.webpack.js.org/loaders/file-loader/) (Webpack 4) or [Asset Modules](https://webpack.js.org/guides/asset-modules/) (Webpack 5).\n\n## Option versions\n\nScrcpy server has no backward compatibility on options input format. Currently the following versions are supported:\n\n| versions | type |\n| --------- | ------------------- |\n| 1.16~1.17 | `ScrcpyOptions1_16` |\n| 1.18~1.20 | `ScrcpyOptions1_18` |\n| 1.21 | `ScrcpyOptions1_21` |\n| 1.22 | `ScrcpyOptions1_22` |\n| 1.23 | `ScrcpyOptions1_23` |\n| 1.24 | `ScrcpyOptions1_24` |\n\nYou must use the correct type according to the server version.\n\n## Video stream\n\nThe data from `onVideoData` event is a raw H.264 stream. You can process it as you want, or use the following built-in decoders to render it in browsers:\n\n* WebCodecs decoder: Uses the [WebCodecs API](https://developer.mozilla.org/en-US/docs/Web/API/WebCodecs_API). The video stream will be decoded into `VideoFrame`s and drawn on a 2D canvas.\n* TinyH264 decoder: TinyH264 compiles the old Android H.264 software decoder (now deprecated and removed) into WebAssembly, and wrap it in Web Worker to prevent blocking the main thread. The video stream will be decoded into YUV frames, then converted to RGB using a WebGL shader.\n\n| Name | Chrome | Firefox | Safari | Performance | Supported H.264 profile/level |\n| ----------------- | ------ | ------- | ------ | ------------------------------- | ----------------------------- |\n| WebCodecs decoder | 94 | No | No | High with Hardware acceleration | High level 5 |\n| TinyH264 decoder | 57 | 52 | 11 | Poor | Baseline level 4 |\n\nTinyH264 decoder needs some extra setup:\n\n1. `tinyh264`, `yuv-buffer` and `yuv-canvas` packages are peer dependencies. You must install them separately.\n2. The bundler you use must support the `new Worker(new URL('./worker.js', import.meta.url))` syntax. It's known to work with Webpack 5.\n\nExample usage:\n\n```ts\nconst client = new ScrcpyClient(adb);\nconst decoder = new WebCodecsDecoder(); // Or `new TinyH264Decoder()`\nclient.onSizeChanged(size => decoder.setSize(size));\nclient.onVideoData(data => decoder.feed(data));\nclient.start(serverPath, serverVersion, new ScrcpyOptionsX_XX({\n ...options,\n codecOptions: new CodecOptions({\n profile: decoder.maxProfile,\n level: decoder.maxLevel,\n }),\n}));\ndocument.body.appendChild(decoder.element);\n```\n"
56
+ "scripts": {
57
+ "build": "tsc -b tsconfig.build.json",
58
+ "build:watch": "tsc -b tsconfig.build.json",
59
+ "test": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --coverage"
60
+ }
61
61
  }