@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.
- package/CHANGELOG.json +30 -0
- package/CHANGELOG.md +17 -1
- package/README.md +76 -266
- package/esm/codec/av1.js +2 -2
- package/esm/codec/av1.js.map +1 -1
- package/esm/codec/h264.d.ts +1 -21
- package/esm/codec/h264.d.ts.map +1 -1
- package/esm/codec/h264.js +15 -236
- package/esm/codec/h264.js.map +1 -1
- package/esm/codec/h265.d.ts +454 -0
- package/esm/codec/h265.d.ts.map +1 -1
- package/esm/codec/h265.js +1062 -2
- package/esm/codec/h265.js.map +1 -1
- package/esm/codec/index.d.ts +1 -0
- package/esm/codec/index.d.ts.map +1 -1
- package/esm/codec/index.js +1 -0
- package/esm/codec/index.js.map +1 -1
- package/esm/codec/nalu.d.ts +37 -0
- package/esm/codec/nalu.d.ts.map +1 -0
- package/esm/codec/nalu.js +323 -0
- package/esm/codec/nalu.js.map +1 -0
- package/esm/control/back-or-screen-on.d.ts +1 -1
- package/esm/control/back-or-screen-on.d.ts.map +1 -1
- package/esm/control/hover-helper.d.ts +1 -1
- package/esm/control/hover-helper.d.ts.map +1 -1
- package/esm/control/hover-helper.js +8 -9
- package/esm/control/hover-helper.js.map +1 -1
- package/esm/control/index.d.ts +2 -0
- package/esm/control/index.d.ts.map +1 -1
- package/esm/control/index.js +2 -0
- package/esm/control/index.js.map +1 -1
- package/esm/control/inject-keycode.d.ts +1 -2
- package/esm/control/inject-keycode.d.ts.map +1 -1
- package/esm/control/inject-keycode.js +4 -5
- package/esm/control/inject-keycode.js.map +1 -1
- package/esm/control/inject-text.d.ts +1 -2
- package/esm/control/inject-text.d.ts.map +1 -1
- package/esm/control/inject-text.js +1 -2
- package/esm/control/inject-text.js.map +1 -1
- package/esm/control/inject-touch.d.ts +15 -20
- package/esm/control/inject-touch.d.ts.map +1 -1
- package/esm/control/inject-touch.js +16 -43
- package/esm/control/inject-touch.js.map +1 -1
- package/esm/control/rotate-device.d.ts +2 -4
- package/esm/control/rotate-device.d.ts.map +1 -1
- package/esm/control/rotate-device.js +2 -3
- package/esm/control/rotate-device.js.map +1 -1
- package/esm/control/serializer.d.ts +11 -23
- package/esm/control/serializer.d.ts.map +1 -1
- package/esm/control/serializer.js +23 -52
- package/esm/control/serializer.js.map +1 -1
- package/esm/control/set-screen-power-mode.d.ts +1 -2
- package/esm/control/set-screen-power-mode.d.ts.map +1 -1
- package/esm/control/set-screen-power-mode.js +2 -3
- package/esm/control/set-screen-power-mode.js.map +1 -1
- package/esm/control/type.d.ts +14 -0
- package/esm/control/type.d.ts.map +1 -1
- package/esm/control/type.js +23 -1
- package/esm/control/type.js.map +1 -1
- package/esm/control/writer.d.ts +26 -0
- package/esm/control/writer.d.ts.map +1 -0
- package/esm/control/writer.js +53 -0
- package/esm/control/writer.js.map +1 -0
- package/esm/device-message/stream.d.ts.map +1 -1
- package/esm/device-message/stream.js +23 -8
- package/esm/device-message/stream.js.map +1 -1
- package/esm/device-message/type.js +1 -1
- package/esm/device-message/type.js.map +1 -1
- package/esm/index.d.ts +1 -2
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -2
- package/esm/index.js.map +1 -1
- package/esm/options/1_16/codec-options.d.ts +2 -3
- package/esm/options/1_16/codec-options.d.ts.map +1 -1
- package/esm/options/1_16/codec-options.js.map +1 -1
- package/esm/options/1_16/index.d.ts +3 -1
- package/esm/options/1_16/index.d.ts.map +1 -1
- package/esm/options/1_16/index.js +3 -1
- package/esm/options/1_16/index.js.map +1 -1
- package/esm/options/1_16/init.js +2 -2
- package/esm/options/1_16/init.js.map +1 -1
- package/esm/options/1_16/options.d.ts +42 -96
- package/esm/options/1_16/options.d.ts.map +1 -1
- package/esm/options/1_16/options.js +104 -142
- package/esm/options/1_16/options.js.map +1 -1
- package/esm/options/1_16/scroll.d.ts +2 -4
- package/esm/options/1_16/scroll.d.ts.map +1 -1
- package/esm/options/1_16/scroll.js +13 -14
- package/esm/options/1_16/scroll.js.map +1 -1
- package/esm/options/1_17.d.ts +1 -0
- package/esm/options/1_17.d.ts.map +1 -1
- package/esm/options/1_17.js +8 -3
- package/esm/options/1_17.js.map +1 -1
- package/esm/options/1_18.d.ts +49 -11
- package/esm/options/1_18.d.ts.map +1 -1
- package/esm/options/1_18.js +64 -32
- package/esm/options/1_18.js.map +1 -1
- package/esm/options/1_21.d.ts +26 -7
- package/esm/options/1_21.d.ts.map +1 -1
- package/esm/options/1_21.js +34 -20
- package/esm/options/1_21.js.map +1 -1
- package/esm/options/1_22/index.d.ts +1 -0
- package/esm/options/1_22/index.d.ts.map +1 -1
- package/esm/options/1_22/index.js +1 -0
- package/esm/options/1_22/index.js.map +1 -1
- package/esm/options/1_22/options.d.ts +32 -26
- package/esm/options/1_22/options.d.ts.map +1 -1
- package/esm/options/1_22/options.js +26 -16
- package/esm/options/1_22/options.js.map +1 -1
- package/esm/options/1_22/scroll.d.ts +1 -1
- package/esm/options/1_22/scroll.d.ts.map +1 -1
- package/esm/options/1_22/scroll.js +1 -1
- package/esm/options/1_22/scroll.js.map +1 -1
- package/esm/options/1_23.d.ts +32 -8
- package/esm/options/1_23.d.ts.map +1 -1
- package/esm/options/1_23.js +23 -14
- package/esm/options/1_23.js.map +1 -1
- package/esm/options/1_24.d.ts +29 -4
- package/esm/options/1_24.d.ts.map +1 -1
- package/esm/options/1_24.js +16 -7
- package/esm/options/1_24.js.map +1 -1
- package/esm/options/1_25/options.d.ts +6 -2
- package/esm/options/1_25/options.d.ts.map +1 -1
- package/esm/options/1_25/options.js +16 -2
- package/esm/options/1_25/options.js.map +1 -1
- package/esm/options/1_25/scroll.d.ts.map +1 -1
- package/esm/options/1_25/scroll.js +2 -1
- package/esm/options/1_25/scroll.js.map +1 -1
- package/esm/options/2_0.d.ts +12 -8
- package/esm/options/2_0.d.ts.map +1 -1
- package/esm/options/2_0.js +82 -15
- package/esm/options/2_0.js.map +1 -1
- package/esm/options/2_1.d.ts +48 -0
- package/esm/options/2_1.d.ts.map +1 -0
- package/esm/options/2_1.js +23 -0
- package/esm/options/2_1.js.map +1 -0
- package/esm/options/codec.d.ts +4 -4
- package/esm/options/codec.d.ts.map +1 -1
- package/esm/options/codec.js +5 -6
- package/esm/options/codec.js.map +1 -1
- package/esm/options/index.d.ts +5 -0
- package/esm/options/index.d.ts.map +1 -1
- package/esm/options/index.js +5 -0
- package/esm/options/index.js.map +1 -1
- package/esm/options/latest.d.ts +4 -5
- package/esm/options/latest.d.ts.map +1 -1
- package/esm/options/latest.js +2 -3
- package/esm/options/latest.js.map +1 -1
- package/esm/options/types.d.ts +74 -33
- package/esm/options/types.d.ts.map +1 -1
- package/esm/options/types.js +62 -0
- package/esm/options/types.js.map +1 -1
- package/package.json +9 -19
- package/src/codec/av1.ts +33 -0
- package/src/codec/h264.ts +317 -0
- package/src/codec/h265.ts +1375 -0
- package/src/codec/index.ts +4 -0
- package/src/codec/nalu.ts +391 -0
- package/src/control/back-or-screen-on.ts +1 -1
- package/{esm/control/simple.js → src/control/basic.ts} +3 -3
- package/src/control/hover-helper.ts +10 -11
- package/src/control/index.ts +2 -0
- package/src/control/inject-keycode.ts +1 -3
- package/src/control/inject-text.ts +1 -3
- package/src/control/inject-touch.ts +16 -55
- package/src/control/rotate-device.ts +2 -7
- package/src/control/serializer.ts +50 -113
- package/src/control/set-screen-power-mode.ts +1 -3
- package/src/control/type.ts +32 -0
- package/src/control/writer.ts +85 -0
- package/src/device-message/stream.ts +32 -12
- package/src/index.ts +1 -2
- package/src/options/1_16/codec-options.ts +6 -7
- package/src/options/1_16/float-to-uint16.ts +33 -0
- package/src/options/1_16/index.ts +3 -1
- package/src/options/1_16/init.ts +80 -0
- package/src/options/1_16/message.ts +55 -0
- package/src/options/1_16/options.ts +147 -260
- package/src/options/1_16/scroll.ts +17 -18
- package/src/options/1_17.ts +66 -0
- package/src/options/1_18.ts +103 -39
- package/src/options/1_21.ts +49 -27
- package/src/options/1_22/index.ts +1 -0
- package/src/options/1_22/init.ts +19 -0
- package/src/options/1_22/options.ts +38 -45
- package/src/options/1_22/scroll.ts +3 -3
- package/src/options/1_23.ts +34 -22
- package/src/options/1_24.ts +23 -11
- package/src/options/1_25/options.ts +22 -4
- package/src/options/1_25/scroll.ts +4 -3
- package/src/options/2_0.ts +342 -0
- package/src/options/2_1.ts +35 -0
- package/src/options/codec.ts +98 -0
- package/src/options/index.ts +5 -0
- package/src/options/latest.ts +12 -0
- package/src/options/types.ts +164 -43
- package/tsconfig.build.json +9 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/bin/scrcpy-server +0 -0
- package/bin/version.d.ts +0 -1
- package/bin/version.js +0 -1
- package/esm/adb/client.d.ts +0 -41
- package/esm/adb/client.d.ts.map +0 -1
- package/esm/adb/client.js +0 -224
- package/esm/adb/client.js.map +0 -1
- package/esm/adb/connection.d.ts +0 -49
- package/esm/adb/connection.d.ts.map +0 -1
- package/esm/adb/connection.js +0 -122
- package/esm/adb/connection.js.map +0 -1
- package/esm/adb/index.d.ts +0 -4
- package/esm/adb/index.d.ts.map +0 -1
- package/esm/adb/index.js +0 -4
- package/esm/adb/index.js.map +0 -1
- package/esm/adb/options/1_16.d.ts +0 -8
- package/esm/adb/options/1_16.d.ts.map +0 -1
- package/esm/adb/options/1_16.js +0 -20
- package/esm/adb/options/1_16.js.map +0 -1
- package/esm/adb/options/1_22.d.ts +0 -8
- package/esm/adb/options/1_22.d.ts.map +0 -1
- package/esm/adb/options/1_22.js +0 -17
- package/esm/adb/options/1_22.js.map +0 -1
- package/esm/adb/options/1_26.d.ts +0 -9
- package/esm/adb/options/1_26.d.ts.map +0 -1
- package/esm/adb/options/1_26.js +0 -11
- package/esm/adb/options/1_26.js.map +0 -1
- package/esm/adb/options/2_0.d.ts +0 -8
- package/esm/adb/options/2_0.d.ts.map +0 -1
- package/esm/adb/options/2_0.js +0 -13
- package/esm/adb/options/2_0.js.map +0 -1
- package/esm/adb/options/index.d.ts +0 -4
- package/esm/adb/options/index.d.ts.map +0 -1
- package/esm/adb/options/index.js +0 -4
- package/esm/adb/options/index.js.map +0 -1
- package/esm/adb/options/types.d.ts +0 -24
- package/esm/adb/options/types.d.ts.map +0 -1
- package/esm/adb/options/types.js +0 -37
- package/esm/adb/options/types.js.map +0 -1
- package/esm/codec.d.ts +0 -34
- package/esm/codec.d.ts.map +0 -1
- package/esm/codec.js +0 -37
- package/esm/codec.js.map +0 -1
- package/esm/control/simple.d.ts +0 -5
- package/esm/control/simple.d.ts.map +0 -1
- package/esm/control/simple.js.map +0 -1
- package/esm/decoder.d.ts +0 -2
- package/esm/decoder.d.ts.map +0 -1
- package/esm/decoder.js +0 -2
- package/esm/decoder.js.map +0 -1
- package/esm/options/1.17.d.ts +0 -3
- package/esm/options/1.17.d.ts.map +0 -1
- package/esm/options/1.17.js +0 -2
- package/esm/options/1.17.js.map +0 -1
- package/esm/options/1_16/h264-configuration.d.ts +0 -49
- package/esm/options/1_16/h264-configuration.d.ts.map +0 -1
- package/esm/options/1_16/h264-configuration.js +0 -414
- package/esm/options/1_16/h264-configuration.js.map +0 -1
- package/esm/options/1_16/sps.d.ts +0 -22
- package/esm/options/1_16/sps.d.ts.map +0 -1
- package/esm/options/1_16/sps.js +0 -263
- package/esm/options/1_16/sps.js.map +0 -1
- package/esm/options/1_26.d.ts +0 -57
- package/esm/options/1_26.d.ts.map +0 -1
- package/esm/options/1_26.js +0 -67
- package/esm/options/1_26.js.map +0 -1
- package/esm/options/2.d.ts +0 -57
- package/esm/options/2.d.ts.map +0 -1
- package/esm/options/2.js +0 -67
- package/esm/options/2.js.map +0 -1
- package/scripts/fetch-server.cjs +0 -38
- package/src/adb/client.ts +0 -329
- package/src/adb/connection.ts +0 -209
- package/src/adb/index.ts +0 -3
- package/src/adb/options/1_16.ts +0 -32
- package/src/adb/options/1_22.ts +0 -26
- package/src/adb/options/index.ts +0 -3
- package/src/adb/options/types.ts +0 -75
- package/src/codec.ts +0 -35
- package/src/options/1_16/h264-configuration.ts +0 -485
package/esm/options/1_18.js
CHANGED
|
@@ -1,43 +1,75 @@
|
|
|
1
1
|
import Struct, { placeholder } from "@yume-chan/struct";
|
|
2
2
|
import { ScrcpyControlMessageType } from "../control/index.js";
|
|
3
|
-
import { ScrcpyBackOrScreenOnControlMessage1_16, ScrcpyOptions1_16, } from "./1_16/
|
|
3
|
+
import { SCRCPY_CONTROL_MESSAGE_TYPES_1_16, ScrcpyBackOrScreenOnControlMessage1_16, ScrcpyLogLevel1_16, ScrcpyOptions1_16, ScrcpyVideoOrientation1_16, } from "./1_16/index.js";
|
|
4
|
+
import { ScrcpyOptions1_17 } from "./1_17.js";
|
|
5
|
+
import { ScrcpyOptionsBase } from "./types.js";
|
|
6
|
+
export var ScrcpyLogLevel1_18;
|
|
7
|
+
(function (ScrcpyLogLevel1_18) {
|
|
8
|
+
ScrcpyLogLevel1_18["Verbose"] = "verbose";
|
|
9
|
+
ScrcpyLogLevel1_18["Debug"] = "debug";
|
|
10
|
+
ScrcpyLogLevel1_18["Info"] = "info";
|
|
11
|
+
ScrcpyLogLevel1_18["Warn"] = "warn";
|
|
12
|
+
ScrcpyLogLevel1_18["Error"] = "error";
|
|
13
|
+
})(ScrcpyLogLevel1_18 || (ScrcpyLogLevel1_18 = {}));
|
|
14
|
+
export var ScrcpyVideoOrientation1_18;
|
|
15
|
+
(function (ScrcpyVideoOrientation1_18) {
|
|
16
|
+
ScrcpyVideoOrientation1_18[ScrcpyVideoOrientation1_18["Initial"] = -2] = "Initial";
|
|
17
|
+
ScrcpyVideoOrientation1_18[ScrcpyVideoOrientation1_18["Unlocked"] = -1] = "Unlocked";
|
|
18
|
+
ScrcpyVideoOrientation1_18[ScrcpyVideoOrientation1_18["Portrait"] = 0] = "Portrait";
|
|
19
|
+
ScrcpyVideoOrientation1_18[ScrcpyVideoOrientation1_18["Landscape"] = 1] = "Landscape";
|
|
20
|
+
ScrcpyVideoOrientation1_18[ScrcpyVideoOrientation1_18["PortraitFlipped"] = 2] = "PortraitFlipped";
|
|
21
|
+
ScrcpyVideoOrientation1_18[ScrcpyVideoOrientation1_18["LandscapeFlipped"] = 3] = "LandscapeFlipped";
|
|
22
|
+
})(ScrcpyVideoOrientation1_18 || (ScrcpyVideoOrientation1_18 = {}));
|
|
4
23
|
export const ScrcpyBackOrScreenOnControlMessage1_18 = new Struct()
|
|
5
|
-
.
|
|
24
|
+
.concat(ScrcpyBackOrScreenOnControlMessage1_16)
|
|
6
25
|
.uint8("action", placeholder());
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
|
|
26
|
+
export const SCRCPY_CONTROL_MESSAGE_TYPES_1_18 = SCRCPY_CONTROL_MESSAGE_TYPES_1_16.slice();
|
|
27
|
+
SCRCPY_CONTROL_MESSAGE_TYPES_1_18.splice(6, 0, ScrcpyControlMessageType.ExpandSettingPanel);
|
|
28
|
+
const LOG_LEVEL_MAP = {
|
|
29
|
+
[ScrcpyLogLevel1_18.Verbose]: ScrcpyLogLevel1_16.Debug,
|
|
30
|
+
[ScrcpyLogLevel1_18.Debug]: ScrcpyLogLevel1_16.Debug,
|
|
31
|
+
[ScrcpyLogLevel1_18.Info]: ScrcpyLogLevel1_16.Info,
|
|
32
|
+
[ScrcpyLogLevel1_18.Warn]: ScrcpyLogLevel1_16.Warn,
|
|
33
|
+
[ScrcpyLogLevel1_18.Error]: ScrcpyLogLevel1_16.Error,
|
|
34
|
+
};
|
|
35
|
+
const VIDEO_ORIENTATION_MAP = {
|
|
36
|
+
[ScrcpyVideoOrientation1_18.Initial]: ScrcpyVideoOrientation1_16.Unlocked,
|
|
37
|
+
[ScrcpyVideoOrientation1_18.Unlocked]: ScrcpyVideoOrientation1_16.Unlocked,
|
|
38
|
+
[ScrcpyVideoOrientation1_18.Portrait]: ScrcpyVideoOrientation1_16.Portrait,
|
|
39
|
+
[ScrcpyVideoOrientation1_18.Landscape]: ScrcpyVideoOrientation1_16.Landscape,
|
|
40
|
+
[ScrcpyVideoOrientation1_18.PortraitFlipped]: ScrcpyVideoOrientation1_16.PortraitFlipped,
|
|
41
|
+
[ScrcpyVideoOrientation1_18.LandscapeFlipped]: ScrcpyVideoOrientation1_16.LandscapeFlipped,
|
|
42
|
+
};
|
|
43
|
+
export class ScrcpyOptions1_18 extends ScrcpyOptionsBase {
|
|
44
|
+
static DEFAULTS = {
|
|
45
|
+
...ScrcpyOptions1_17.DEFAULTS,
|
|
46
|
+
logLevel: ScrcpyLogLevel1_18.Debug,
|
|
47
|
+
lockVideoOrientation: ScrcpyVideoOrientation1_18.Unlocked,
|
|
48
|
+
powerOffOnClose: false,
|
|
49
|
+
};
|
|
50
|
+
static SERIALIZE_ORDER = [
|
|
51
|
+
...ScrcpyOptions1_17.SERIALIZE_ORDER,
|
|
52
|
+
"powerOffOnClose",
|
|
53
|
+
];
|
|
54
|
+
get defaults() {
|
|
55
|
+
return ScrcpyOptions1_18.DEFAULTS;
|
|
10
56
|
}
|
|
11
|
-
|
|
12
|
-
return
|
|
57
|
+
get controlMessageTypes() {
|
|
58
|
+
return SCRCPY_CONTROL_MESSAGE_TYPES_1_18;
|
|
13
59
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
60
|
+
constructor(init) {
|
|
61
|
+
const value = { ...ScrcpyOptions1_18.DEFAULTS, ...init };
|
|
62
|
+
super(new ScrcpyOptions1_17({
|
|
63
|
+
...init,
|
|
64
|
+
logLevel: LOG_LEVEL_MAP[value.logLevel],
|
|
65
|
+
lockVideoOrientation: VIDEO_ORIENTATION_MAP[value.lockVideoOrientation],
|
|
66
|
+
}), value);
|
|
19
67
|
}
|
|
20
|
-
|
|
21
|
-
return
|
|
68
|
+
serialize() {
|
|
69
|
+
return ScrcpyOptions1_16.serialize(this.value, ScrcpyOptions1_18.SERIALIZE_ORDER);
|
|
22
70
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
* 0 InjectKeycode
|
|
26
|
-
* 1 InjectText
|
|
27
|
-
* 2 InjectTouch
|
|
28
|
-
* 3 InjectScroll
|
|
29
|
-
* 4 BackOrScreenOn
|
|
30
|
-
* 5 ExpandNotificationPanel
|
|
31
|
-
* 6 ExpandSettingsPanel
|
|
32
|
-
* 7 CollapseNotificationPanel
|
|
33
|
-
* 8 GetClipboard
|
|
34
|
-
* 9 SetClipboard
|
|
35
|
-
* 10 SetScreenPowerMode
|
|
36
|
-
* 11 RotateDevice
|
|
37
|
-
*/
|
|
38
|
-
const types = super.getControlMessageTypes();
|
|
39
|
-
types.splice(6, 0, ScrcpyControlMessageType.ExpandSettingPanel);
|
|
40
|
-
return types;
|
|
71
|
+
parseEncoder(line) {
|
|
72
|
+
return ScrcpyOptions1_17.parseEncoder(line, /\s+scrcpy --encoder '(.*?)'/);
|
|
41
73
|
}
|
|
42
74
|
serializeBackOrScreenOnControlMessage(message) {
|
|
43
75
|
return ScrcpyBackOrScreenOnControlMessage1_18.serialize(message);
|
package/esm/options/1_18.js.map
CHANGED
|
@@ -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;AAMxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"1_18.js","sourceRoot":"","sources":["../../src/options/1_18.ts"],"names":[],"mappings":"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"}
|
package/esm/options/1_21.d.ts
CHANGED
|
@@ -1,23 +1,42 @@
|
|
|
1
1
|
import Struct from "@yume-chan/struct";
|
|
2
2
|
import type { ScrcpySetClipboardControlMessage } from "../control/index.js";
|
|
3
|
-
import { ScrcpyControlMessageType } from "../control/index.js";
|
|
4
3
|
import type { ScrcpyOptionsInit1_18 } from "./1_18.js";
|
|
5
4
|
import { ScrcpyOptions1_18 } from "./1_18.js";
|
|
5
|
+
import { ScrcpyOptionsBase } from "./types.js";
|
|
6
6
|
export interface ScrcpyOptionsInit1_21 extends ScrcpyOptionsInit1_18 {
|
|
7
7
|
clipboardAutosync?: boolean;
|
|
8
8
|
}
|
|
9
9
|
export declare const ScrcpySetClipboardControlMessage1_21: Struct<{
|
|
10
|
-
type:
|
|
10
|
+
type: number;
|
|
11
11
|
sequence: bigint;
|
|
12
|
-
paste:
|
|
12
|
+
paste: boolean;
|
|
13
13
|
length: number;
|
|
14
14
|
content: string;
|
|
15
15
|
}, "length", Record<never, never>, undefined>;
|
|
16
16
|
export type ScrcpySetClipboardControlMessage1_21 = (typeof ScrcpySetClipboardControlMessage1_21)["TInit"];
|
|
17
|
-
export declare class ScrcpyOptions1_21
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
export declare class ScrcpyOptions1_21 extends ScrcpyOptionsBase<ScrcpyOptionsInit1_21, ScrcpyOptions1_18> {
|
|
18
|
+
static readonly DEFAULTS: {
|
|
19
|
+
readonly clipboardAutosync: true;
|
|
20
|
+
readonly logLevel: import("./1_18.js").ScrcpyLogLevel1_18.Debug;
|
|
21
|
+
readonly lockVideoOrientation: import("./1_18.js").ScrcpyVideoOrientation1_18.Unlocked;
|
|
22
|
+
readonly powerOffOnClose: false;
|
|
23
|
+
readonly encoderName: undefined;
|
|
24
|
+
readonly maxSize: 0;
|
|
25
|
+
readonly bitRate: 8000000;
|
|
26
|
+
readonly maxFps: 0;
|
|
27
|
+
readonly tunnelForward: false;
|
|
28
|
+
readonly crop: undefined;
|
|
29
|
+
readonly sendFrameMeta: true;
|
|
30
|
+
readonly control: true;
|
|
31
|
+
readonly displayId: 0;
|
|
32
|
+
readonly showTouches: false;
|
|
33
|
+
readonly stayAwake: false;
|
|
34
|
+
readonly codecOptions: import("./index.js").CodecOptions;
|
|
35
|
+
};
|
|
36
|
+
static serialize<T extends object>(options: T, defaults: Required<T>): string[];
|
|
37
|
+
get defaults(): Required<ScrcpyOptionsInit1_21>;
|
|
38
|
+
constructor(init: ScrcpyOptionsInit1_21);
|
|
39
|
+
serialize(): string[];
|
|
21
40
|
serializeSetClipboardControlMessage(message: ScrcpySetClipboardControlMessage): Uint8Array;
|
|
22
41
|
}
|
|
23
42
|
//# 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,
|
|
1
|
+
{"version":3,"file":"1_21.d.ts","sourceRoot":"","sources":["../../src/options/1_21.ts"],"names":[],"mappings":"AAEA,OAAO,MAAuB,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAE5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAuB,MAAM,YAAY,CAAC;AAEpE,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAChE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAMD,eAAO,MAAM,oCAAoC;;;;;;6CAKA,CAAC;AAElD,MAAM,MAAM,oCAAoC,GAC5C,CAAC,OAAO,oCAAoC,CAAC,CAAC,OAAO,CAAC,CAAC;AAE3D,qBAAa,iBAAkB,SAAQ,iBAAiB,CACpD,qBAAqB,EACrB,iBAAiB,CACpB;IACG,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;;;;;;;;;;;;;;MAG6B;IAErD,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,MAAM,EAC7B,OAAO,EAAE,CAAC,EACV,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GACtB,MAAM,EAAE;IAsBX,IAAa,QAAQ,IAAI,QAAQ,CAAC,qBAAqB,CAAC,CAEvD;gBAEW,IAAI,EAAE,qBAAqB;IAO9B,SAAS,IAAI,MAAM,EAAE;IAIrB,mCAAmC,CACxC,OAAO,EAAE,gCAAgC,GAC1C,UAAU;CAGhB"}
|
package/esm/options/1_21.js
CHANGED
|
@@ -1,34 +1,48 @@
|
|
|
1
1
|
// cspell: ignore autosync
|
|
2
|
-
import Struct from "@yume-chan/struct";
|
|
3
|
-
import { ScrcpyControlMessageType } from "../control/index.js";
|
|
2
|
+
import Struct, { placeholder } from "@yume-chan/struct";
|
|
4
3
|
import { ScrcpyOptions1_18 } from "./1_18.js";
|
|
5
|
-
import { toScrcpyOptionValue } from "./types.js";
|
|
4
|
+
import { ScrcpyOptionsBase, toScrcpyOptionValue } from "./types.js";
|
|
6
5
|
function toSnakeCase(input) {
|
|
7
6
|
return input.replace(/([A-Z])/g, "_$1").toLowerCase();
|
|
8
7
|
}
|
|
9
8
|
export const ScrcpySetClipboardControlMessage1_21 = new Struct()
|
|
10
|
-
.uint8("type"
|
|
9
|
+
.uint8("type")
|
|
11
10
|
.uint64("sequence")
|
|
12
|
-
.int8("paste")
|
|
11
|
+
.int8("paste", placeholder())
|
|
13
12
|
.uint32("length")
|
|
14
13
|
.string("content", { lengthField: "length" });
|
|
15
|
-
export class ScrcpyOptions1_21 extends
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
export class ScrcpyOptions1_21 extends ScrcpyOptionsBase {
|
|
15
|
+
static DEFAULTS = {
|
|
16
|
+
...ScrcpyOptions1_18.DEFAULTS,
|
|
17
|
+
clipboardAutosync: true,
|
|
18
|
+
};
|
|
19
|
+
static serialize(options, defaults) {
|
|
20
|
+
// 1.21 changed the format of arguments
|
|
21
|
+
const result = [];
|
|
22
|
+
for (const [key, value] of Object.entries(options)) {
|
|
23
|
+
const serializedValue = toScrcpyOptionValue(value, undefined);
|
|
24
|
+
if (!serializedValue) {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
const defaultValue = toScrcpyOptionValue(defaults[key], undefined);
|
|
28
|
+
if (serializedValue == defaultValue) {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
result.push(`${toSnakeCase(key)}=${serializedValue}`);
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
18
34
|
}
|
|
19
|
-
|
|
20
|
-
return
|
|
21
|
-
...super.getDefaultValue(),
|
|
22
|
-
clipboardAutosync: true,
|
|
23
|
-
};
|
|
35
|
+
get defaults() {
|
|
36
|
+
return ScrcpyOptions1_21.DEFAULTS;
|
|
24
37
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
38
|
+
constructor(init) {
|
|
39
|
+
super(new ScrcpyOptions1_18(init), {
|
|
40
|
+
...ScrcpyOptions1_21.DEFAULTS,
|
|
41
|
+
...init,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
serialize() {
|
|
45
|
+
return ScrcpyOptions1_21.serialize(this.value, this.defaults);
|
|
32
46
|
}
|
|
33
47
|
serializeSetClipboardControlMessage(message) {
|
|
34
48
|
return ScrcpySetClipboardControlMessage1_21.serialize(message);
|
package/esm/options/1_21.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"1_21.js","sourceRoot":"","sources":["../../src/options/1_21.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"1_21.js","sourceRoot":"","sources":["../../src/options/1_21.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAMpE,SAAS,WAAW,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,MAAM,oCAAoC,GAAG,IAAI,MAAM,EAAE;KAC3D,KAAK,CAAC,MAAM,CAAC;KACb,MAAM,CAAC,UAAU,CAAC;KAClB,IAAI,CAAC,OAAO,EAAE,WAAW,EAAW,CAAC;KACrC,MAAM,CAAC,QAAQ,CAAC;KAChB,MAAM,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;AAKlD,MAAM,OAAO,iBAAkB,SAAQ,iBAGtC;IACG,MAAM,CAAU,QAAQ,GAAG;QACvB,GAAG,iBAAiB,CAAC,QAAQ;QAC7B,iBAAiB,EAAE,IAAI;KACyB,CAAC;IAErD,MAAM,CAAC,SAAS,CACZ,OAAU,EACV,QAAqB;QAErB,uCAAuC;QACvC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAChD,MAAM,eAAe,GAAG,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC9D,IAAI,CAAC,eAAe,EAAE;gBAClB,SAAS;aACZ;YAED,MAAM,YAAY,GAAG,mBAAmB,CACpC,QAAQ,CAAC,GAAc,CAAC,EACxB,SAAS,CACZ,CAAC;YACF,IAAI,eAAe,IAAI,YAAY,EAAE;gBACjC,SAAS;aACZ;YAED,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;SACzD;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAa,QAAQ;QACjB,OAAO,iBAAiB,CAAC,QAAQ,CAAC;IACtC,CAAC;IAED,YAAY,IAA2B;QACnC,KAAK,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE;YAC/B,GAAG,iBAAiB,CAAC,QAAQ;YAC7B,GAAG,IAAI;SACV,CAAC,CAAC;IACP,CAAC;IAEQ,SAAS;QACd,OAAO,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;IAEQ,mCAAmC,CACxC,OAAyC;QAEzC,OAAO,oCAAoC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/options/1_22/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/options/1_22/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/options/1_22/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/options/1_22/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
|
|
@@ -1,30 +1,36 @@
|
|
|
1
|
+
import type { ReadableStream } from "@yume-chan/stream-extra";
|
|
2
|
+
import type { ValueOrPromise } from "@yume-chan/struct";
|
|
1
3
|
import type { ScrcpyScrollController } from "../1_16/index.js";
|
|
2
|
-
import type { ScrcpyOptionsInit1_21 } from "../1_21.js";
|
|
3
4
|
import { ScrcpyOptions1_21 } from "../1_21.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
5
|
+
import type { ScrcpyVideoStream } from "../codec.js";
|
|
6
|
+
import { ScrcpyOptionsBase } from "../types.js";
|
|
7
|
+
import type { ScrcpyOptionsInit1_22 } from "./init.js";
|
|
8
|
+
export declare class ScrcpyOptions1_22 extends ScrcpyOptionsBase<ScrcpyOptionsInit1_22, ScrcpyOptions1_21> {
|
|
9
|
+
static readonly DEFAULTS: {
|
|
10
|
+
readonly downsizeOnError: true;
|
|
11
|
+
readonly sendDeviceMeta: true;
|
|
12
|
+
readonly sendDummyByte: true;
|
|
13
|
+
readonly clipboardAutosync: true;
|
|
14
|
+
readonly logLevel: import("../1_18.js").ScrcpyLogLevel1_18.Debug;
|
|
15
|
+
readonly lockVideoOrientation: import("../1_18.js").ScrcpyVideoOrientation1_18.Unlocked;
|
|
16
|
+
readonly powerOffOnClose: false;
|
|
17
|
+
readonly encoderName: undefined;
|
|
18
|
+
readonly maxSize: 0;
|
|
19
|
+
readonly bitRate: 8000000;
|
|
20
|
+
readonly maxFps: 0;
|
|
21
|
+
readonly tunnelForward: false;
|
|
22
|
+
readonly crop: undefined;
|
|
23
|
+
readonly sendFrameMeta: true;
|
|
24
|
+
readonly control: true;
|
|
25
|
+
readonly displayId: 0;
|
|
26
|
+
readonly showTouches: false;
|
|
27
|
+
readonly stayAwake: false;
|
|
28
|
+
readonly codecOptions: import("../1_16/codec-options.js").CodecOptions;
|
|
29
|
+
};
|
|
30
|
+
get defaults(): Required<ScrcpyOptionsInit1_22>;
|
|
31
|
+
constructor(init: ScrcpyOptionsInit1_22);
|
|
32
|
+
parseVideoStreamMetadata(stream: ReadableStream<Uint8Array>): ValueOrPromise<ScrcpyVideoStream>;
|
|
33
|
+
serialize(): string[];
|
|
34
|
+
createScrollController(): ScrcpyScrollController;
|
|
29
35
|
}
|
|
30
36
|
//# sourceMappingURL=options.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/options/1_22/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/options/1_22/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAGvD,qBAAa,iBAAkB,SAAQ,iBAAiB,CACpD,qBAAqB,EACrB,iBAAiB,CACpB;IACG,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;MAK6B;IAErD,IAAa,QAAQ,IAAI,QAAQ,CAAC,qBAAqB,CAAC,CAEvD;gBAEW,IAAI,EAAE,qBAAqB;IAO9B,wBAAwB,CAC7B,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,cAAc,CAAC,iBAAiB,CAAC;IAQ3B,SAAS,IAAI,MAAM,EAAE;IAIrB,sBAAsB,IAAI,sBAAsB;CAG5D"}
|
|
@@ -1,25 +1,35 @@
|
|
|
1
1
|
import { ScrcpyOptions1_21 } from "../1_21.js";
|
|
2
|
+
import { ScrcpyVideoCodecId } from "../codec.js";
|
|
3
|
+
import { ScrcpyOptionsBase } from "../types.js";
|
|
2
4
|
import { ScrcpyScrollController1_22 } from "./scroll.js";
|
|
3
|
-
export class ScrcpyOptions1_22 extends
|
|
5
|
+
export class ScrcpyOptions1_22 extends ScrcpyOptionsBase {
|
|
6
|
+
static DEFAULTS = {
|
|
7
|
+
...ScrcpyOptions1_21.DEFAULTS,
|
|
8
|
+
downsizeOnError: true,
|
|
9
|
+
sendDeviceMeta: true,
|
|
10
|
+
sendDummyByte: true,
|
|
11
|
+
};
|
|
12
|
+
get defaults() {
|
|
13
|
+
return ScrcpyOptions1_22.DEFAULTS;
|
|
14
|
+
}
|
|
4
15
|
constructor(init) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
init
|
|
8
|
-
|
|
9
|
-
|
|
16
|
+
super(new ScrcpyOptions1_21(init), {
|
|
17
|
+
...ScrcpyOptions1_22.DEFAULTS,
|
|
18
|
+
...init,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
parseVideoStreamMetadata(stream) {
|
|
22
|
+
if (!this.value.sendDeviceMeta) {
|
|
23
|
+
return { stream, metadata: { codec: ScrcpyVideoCodecId.H264 } };
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
return this._base.parseVideoStreamMetadata(stream);
|
|
10
27
|
}
|
|
11
|
-
super(init);
|
|
12
28
|
}
|
|
13
|
-
|
|
14
|
-
return
|
|
15
|
-
...super.getDefaultValue(),
|
|
16
|
-
downsizeOnError: true,
|
|
17
|
-
sendDeviceMeta: true,
|
|
18
|
-
sendDummyByte: true,
|
|
19
|
-
rawVideoStream: false,
|
|
20
|
-
};
|
|
29
|
+
serialize() {
|
|
30
|
+
return ScrcpyOptions1_21.serialize(this.value, this.defaults);
|
|
21
31
|
}
|
|
22
|
-
|
|
32
|
+
createScrollController() {
|
|
23
33
|
return new ScrcpyScrollController1_22();
|
|
24
34
|
}
|
|
25
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/options/1_22/options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/options/1_22/options.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,MAAM,OAAO,iBAAkB,SAAQ,iBAGtC;IACG,MAAM,CAAU,QAAQ,GAAG;QACvB,GAAG,iBAAiB,CAAC,QAAQ;QAC7B,eAAe,EAAE,IAAI;QACrB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KAC6B,CAAC;IAErD,IAAa,QAAQ;QACjB,OAAO,iBAAiB,CAAC,QAAQ,CAAC;IACtC,CAAC;IAED,YAAY,IAA2B;QACnC,KAAK,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE;YAC/B,GAAG,iBAAiB,CAAC,QAAQ;YAC7B,GAAG,IAAI;SACV,CAAC,CAAC;IACP,CAAC;IAEQ,wBAAwB,CAC7B,MAAkC;QAElC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;YAC5B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC;SACnE;aAAM;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;SACtD;IACL,CAAC;IAEQ,SAAS;QACd,OAAO,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;IAEQ,sBAAsB;QAC3B,OAAO,IAAI,0BAA0B,EAAE,CAAC;IAC5C,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import Struct from "@yume-chan/struct";
|
|
2
2
|
import { ScrcpyScrollController1_16 } from "../1_16/index.js";
|
|
3
3
|
export declare const ScrcpyInjectScrollControlMessage1_22: Struct<{
|
|
4
|
-
type:
|
|
4
|
+
type: number;
|
|
5
5
|
pointerX: number;
|
|
6
6
|
pointerY: number;
|
|
7
7
|
screenWidth: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../../src/options/1_22/scroll.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAEH,0BAA0B,EAC7B,MAAM,kBAAkB,CAAC;AAE1B,eAAO,MAAM,oCAAoC;;;;;;;;;0CAE5B,CAAC;AAEtB,MAAM,MAAM,oCAAoC,GAC5C,CAAC,OAAO,oCAAoC,CAAC,CAAC,OAAO,CAAC,CAAC;AAE3D,qBAAa,0BAA2B,SAAQ,0BAA0B;
|
|
1
|
+
{"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../../src/options/1_22/scroll.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAEH,0BAA0B,EAC7B,MAAM,kBAAkB,CAAC;AAE1B,eAAO,MAAM,oCAAoC;;;;;;;;;0CAE5B,CAAC;AAEtB,MAAM,MAAM,oCAAoC,GAC5C,CAAC,OAAO,oCAAoC,CAAC,CAAC,OAAO,CAAC,CAAC;AAE3D,qBAAa,0BAA2B,SAAQ,0BAA0B;IAC7D,sBAAsB,CAC3B,OAAO,EAAE,oCAAoC,GAC9C,UAAU,GAAG,SAAS;CAQ5B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import Struct from "@yume-chan/struct";
|
|
2
2
|
import { ScrcpyInjectScrollControlMessage1_16, ScrcpyScrollController1_16, } from "../1_16/index.js";
|
|
3
3
|
export const ScrcpyInjectScrollControlMessage1_22 = new Struct()
|
|
4
|
-
.
|
|
4
|
+
.concat(ScrcpyInjectScrollControlMessage1_16)
|
|
5
5
|
.int32("buttons");
|
|
6
6
|
export class ScrcpyScrollController1_22 extends ScrcpyScrollController1_16 {
|
|
7
7
|
serializeScrollMessage(message) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../../src/options/1_22/scroll.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EACH,oCAAoC,EACpC,0BAA0B,GAC7B,MAAM,kBAAkB,CAAC;AAE1B,MAAM,CAAC,MAAM,oCAAoC,GAAG,IAAI,MAAM,EAAE;KAC3D,MAAM,CAAC,oCAAoC,CAAC;KAC5C,KAAK,CAAC,SAAS,CAAC,CAAC;AAKtB,MAAM,OAAO,0BAA2B,SAAQ,0BAA0B;
|
|
1
|
+
{"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../../src/options/1_22/scroll.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EACH,oCAAoC,EACpC,0BAA0B,GAC7B,MAAM,kBAAkB,CAAC;AAE1B,MAAM,CAAC,MAAM,oCAAoC,GAAG,IAAI,MAAM,EAAE;KAC3D,MAAM,CAAC,oCAAoC,CAAC;KAC5C,KAAK,CAAC,SAAS,CAAC,CAAC;AAKtB,MAAM,OAAO,0BAA2B,SAAQ,0BAA0B;IAC7D,sBAAsB,CAC3B,OAA6C;QAE7C,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,EAAE;YACZ,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,oCAAoC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACrE,CAAC;CACJ"}
|
package/esm/options/1_23.d.ts
CHANGED
|
@@ -1,13 +1,37 @@
|
|
|
1
1
|
import { TransformStream } from "@yume-chan/stream-extra";
|
|
2
|
-
import type { ScrcpyOptionsInit1_22 } from "./1_22/
|
|
3
|
-
import { ScrcpyOptions1_22 } from "./1_22/
|
|
4
|
-
import type {
|
|
2
|
+
import type { ScrcpyOptionsInit1_22 } from "./1_22/index.js";
|
|
3
|
+
import { ScrcpyOptions1_22 } from "./1_22/index.js";
|
|
4
|
+
import type { ScrcpyMediaStreamPacket } from "./codec.js";
|
|
5
|
+
import { ScrcpyOptionsBase } from "./types.js";
|
|
5
6
|
export interface ScrcpyOptionsInit1_23 extends ScrcpyOptionsInit1_22 {
|
|
6
|
-
cleanup
|
|
7
|
+
cleanup?: boolean;
|
|
7
8
|
}
|
|
8
|
-
export declare class ScrcpyOptions1_23
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
export declare class ScrcpyOptions1_23 extends ScrcpyOptionsBase<ScrcpyOptionsInit1_23, ScrcpyOptions1_22> {
|
|
10
|
+
static readonly DEFAULTS: {
|
|
11
|
+
readonly cleanup: true;
|
|
12
|
+
readonly downsizeOnError: true;
|
|
13
|
+
readonly sendDeviceMeta: true;
|
|
14
|
+
readonly sendDummyByte: true;
|
|
15
|
+
readonly clipboardAutosync: true;
|
|
16
|
+
readonly logLevel: import("./1_18.js").ScrcpyLogLevel1_18.Debug;
|
|
17
|
+
readonly lockVideoOrientation: import("./1_18.js").ScrcpyVideoOrientation1_18.Unlocked;
|
|
18
|
+
readonly powerOffOnClose: false;
|
|
19
|
+
readonly encoderName: undefined;
|
|
20
|
+
readonly maxSize: 0;
|
|
21
|
+
readonly bitRate: 8000000;
|
|
22
|
+
readonly maxFps: 0;
|
|
23
|
+
readonly tunnelForward: false;
|
|
24
|
+
readonly crop: undefined;
|
|
25
|
+
readonly sendFrameMeta: true;
|
|
26
|
+
readonly control: true;
|
|
27
|
+
readonly displayId: 0;
|
|
28
|
+
readonly showTouches: false;
|
|
29
|
+
readonly stayAwake: false;
|
|
30
|
+
readonly codecOptions: import("./index.js").CodecOptions;
|
|
31
|
+
};
|
|
32
|
+
get defaults(): Required<ScrcpyOptionsInit1_23>;
|
|
33
|
+
constructor(init: ScrcpyOptionsInit1_22);
|
|
34
|
+
serialize(): string[];
|
|
35
|
+
createMediaStreamTransformer(): TransformStream<Uint8Array, ScrcpyMediaStreamPacket>;
|
|
12
36
|
}
|
|
13
37
|
//# 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,yBAAyB,CAAC;
|
|
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;AAG1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAChE,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAID,qBAAa,iBAAkB,SAAQ,iBAAiB,CACpD,qBAAqB,EACrB,iBAAiB,CACpB;IACG,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;MAG6B;IAErD,IAAa,QAAQ,IAAI,QAAQ,CAAC,qBAAqB,CAAC,CAEvD;gBAEW,IAAI,EAAE,qBAAqB;IAO9B,SAAS,IAAI,MAAM,EAAE;IAIrB,4BAA4B,IAAI,eAAe,CACpD,UAAU,EACV,uBAAuB,CAC1B;CA0BJ"}
|
package/esm/options/1_23.js
CHANGED
|
@@ -1,23 +1,32 @@
|
|
|
1
1
|
import { TransformStream } from "@yume-chan/stream-extra";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import { ScrcpyOptions1_21 } from "./1_21.js";
|
|
3
|
+
import { ScrcpyOptions1_22 } from "./1_22/index.js";
|
|
4
|
+
import { ScrcpyOptionsBase } from "./types.js";
|
|
5
|
+
const KEYFRAME_PTS = 1n << 62n;
|
|
6
|
+
export class ScrcpyOptions1_23 extends ScrcpyOptionsBase {
|
|
7
|
+
static DEFAULTS = {
|
|
8
|
+
...ScrcpyOptions1_22.DEFAULTS,
|
|
9
|
+
cleanup: true,
|
|
10
|
+
};
|
|
11
|
+
get defaults() {
|
|
12
|
+
return ScrcpyOptions1_23.DEFAULTS;
|
|
13
|
+
}
|
|
5
14
|
constructor(init) {
|
|
6
|
-
super(init)
|
|
15
|
+
super(new ScrcpyOptions1_22(init), {
|
|
16
|
+
...ScrcpyOptions1_23.DEFAULTS,
|
|
17
|
+
...init,
|
|
18
|
+
});
|
|
7
19
|
}
|
|
8
|
-
|
|
9
|
-
return
|
|
10
|
-
...super.getDefaultValue(),
|
|
11
|
-
cleanup: true,
|
|
12
|
-
};
|
|
20
|
+
serialize() {
|
|
21
|
+
return ScrcpyOptions1_21.serialize(this.value, this.defaults);
|
|
13
22
|
}
|
|
14
|
-
|
|
15
|
-
const
|
|
23
|
+
createMediaStreamTransformer() {
|
|
24
|
+
const stream = this._base.createMediaStreamTransformer();
|
|
16
25
|
return {
|
|
17
|
-
writable:
|
|
18
|
-
readable:
|
|
26
|
+
writable: stream.writable,
|
|
27
|
+
readable: stream.readable.pipeThrough(new TransformStream({
|
|
19
28
|
transform(packet, controller) {
|
|
20
|
-
if (packet.type !== "
|
|
29
|
+
if (packet.type !== "data") {
|
|
21
30
|
controller.enqueue(packet);
|
|
22
31
|
return;
|
|
23
32
|
}
|
package/esm/options/1_23.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"1_23.js","sourceRoot":"","sources":["../../src/options/1_23.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;
|
|
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,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAM/C,MAAM,YAAY,GAAG,EAAE,IAAI,GAAG,CAAC;AAE/B,MAAM,OAAO,iBAAkB,SAAQ,iBAGtC;IACG,MAAM,CAAU,QAAQ,GAAG;QACvB,GAAG,iBAAiB,CAAC,QAAQ;QAC7B,OAAO,EAAE,IAAI;KACmC,CAAC;IAErD,IAAa,QAAQ;QACjB,OAAO,iBAAiB,CAAC,QAAQ,CAAC;IACtC,CAAC;IAED,YAAY,IAA2B;QACnC,KAAK,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE;YAC/B,GAAG,iBAAiB,CAAC,QAAQ;YAC7B,GAAG,IAAI;SACV,CAAC,CAAC;IACP,CAAC;IAEQ,SAAS;QACd,OAAO,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;IAEQ,4BAA4B;QAIjC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,4BAA4B,EAAE,CAAC;QACzD,OAAO;YACH,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,CACjC,IAAI,eAAe,CAAC;gBAChB,SAAS,CAAC,MAAM,EAAE,UAAU;oBACxB,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;wBACxB,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBAC3B,OAAO;qBACV;oBAED,IACI,MAAM,CAAC,GAAG,KAAK,SAAS;wBACxB,MAAM,CAAC,GAAG,GAAG,YAAY,EAC3B;wBACE,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,CACL;SACJ,CAAC;IACN,CAAC"}
|
package/esm/options/1_24.d.ts
CHANGED
|
@@ -1,10 +1,35 @@
|
|
|
1
1
|
import type { ScrcpyOptionsInit1_23 } from "./1_23.js";
|
|
2
2
|
import { ScrcpyOptions1_23 } from "./1_23.js";
|
|
3
|
+
import { ScrcpyOptionsBase } from "./types.js";
|
|
3
4
|
export interface ScrcpyOptionsInit1_24 extends ScrcpyOptionsInit1_23 {
|
|
4
|
-
powerOn
|
|
5
|
+
powerOn?: boolean;
|
|
5
6
|
}
|
|
6
|
-
export declare class ScrcpyOptions1_24
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
export declare class ScrcpyOptions1_24 extends ScrcpyOptionsBase<ScrcpyOptionsInit1_24, ScrcpyOptions1_23> {
|
|
8
|
+
static readonly DEFAULTS: {
|
|
9
|
+
readonly powerOn: true;
|
|
10
|
+
readonly cleanup: true;
|
|
11
|
+
readonly downsizeOnError: true;
|
|
12
|
+
readonly sendDeviceMeta: true;
|
|
13
|
+
readonly sendDummyByte: true;
|
|
14
|
+
readonly clipboardAutosync: true;
|
|
15
|
+
readonly logLevel: import("./1_18.js").ScrcpyLogLevel1_18.Debug;
|
|
16
|
+
readonly lockVideoOrientation: import("./1_18.js").ScrcpyVideoOrientation1_18.Unlocked;
|
|
17
|
+
readonly powerOffOnClose: false;
|
|
18
|
+
readonly encoderName: undefined;
|
|
19
|
+
readonly maxSize: 0;
|
|
20
|
+
readonly bitRate: 8000000;
|
|
21
|
+
readonly maxFps: 0;
|
|
22
|
+
readonly tunnelForward: false;
|
|
23
|
+
readonly crop: undefined;
|
|
24
|
+
readonly sendFrameMeta: true;
|
|
25
|
+
readonly control: true;
|
|
26
|
+
readonly displayId: 0;
|
|
27
|
+
readonly showTouches: false;
|
|
28
|
+
readonly stayAwake: false;
|
|
29
|
+
readonly codecOptions: import("./index.js").CodecOptions;
|
|
30
|
+
};
|
|
31
|
+
get defaults(): Required<ScrcpyOptionsInit1_24>;
|
|
32
|
+
constructor(init: ScrcpyOptionsInit1_24);
|
|
33
|
+
serialize(): string[];
|
|
9
34
|
}
|
|
10
35
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"1_24.d.ts","sourceRoot":"","sources":["../../src/options/1_24.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAChE,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,qBAAa,iBAAkB,SAAQ,iBAAiB,CACpD,qBAAqB,EACrB,iBAAiB,CACpB;IACG,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;MAG6B;IAErD,IAAa,QAAQ,IAAI,QAAQ,CAAC,qBAAqB,CAAC,CAEvD;gBAEW,IAAI,EAAE,qBAAqB;IAO9B,SAAS,IAAI,MAAM,EAAE;CAGjC"}
|