@yume-chan/scrcpy 0.0.23 → 0.0.24
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 +21 -0
- package/CHANGELOG.md +11 -1
- package/LICENSE +1 -1
- package/esm/codec/av1.d.ts +364 -0
- package/esm/codec/av1.d.ts.map +1 -1
- package/esm/codec/av1.js +591 -0
- package/esm/codec/av1.js.map +1 -1
- package/esm/codec/nalu.d.ts +0 -9
- package/esm/codec/nalu.d.ts.map +1 -1
- package/esm/codec/nalu.js +56 -129
- package/esm/codec/nalu.js.map +1 -1
- package/esm/control/{basic.d.ts → empty.d.ts} +2 -2
- package/esm/control/empty.d.ts.map +1 -0
- package/esm/control/empty.js +3 -0
- package/esm/control/empty.js.map +1 -0
- package/esm/control/index.d.ts +1 -1
- package/esm/control/index.js +1 -1
- package/esm/control/rotate-device.js +2 -2
- package/esm/control/serializer.d.ts +2 -0
- package/esm/control/serializer.d.ts.map +1 -1
- package/esm/control/serializer.js +10 -4
- package/esm/control/serializer.js.map +1 -1
- package/esm/control/type.js +1 -1
- package/esm/control/type.js.map +1 -1
- package/esm/control/writer.d.ts +4 -1
- package/esm/control/writer.d.ts.map +1 -1
- package/esm/control/writer.js +12 -2
- package/esm/control/writer.js.map +1 -1
- package/esm/index.d.ts +0 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +0 -1
- package/esm/index.js.map +1 -1
- package/esm/options/1_16/float.d.ts +6 -0
- package/esm/options/1_16/float.d.ts.map +1 -0
- package/esm/options/1_16/{float-to-uint16.js → float.js} +7 -6
- package/esm/options/1_16/float.js.map +1 -0
- package/esm/options/1_16/index.d.ts +1 -1
- package/esm/options/1_16/index.d.ts.map +1 -1
- package/esm/options/1_16/index.js +1 -1
- package/esm/options/1_16/index.js.map +1 -1
- package/esm/options/1_16/message.d.ts +4 -0
- package/esm/options/1_16/message.d.ts.map +1 -1
- package/esm/options/1_16/message.js +7 -4
- package/esm/options/1_16/message.js.map +1 -1
- package/esm/options/1_16/options.d.ts +13 -4
- package/esm/options/1_16/options.d.ts.map +1 -1
- package/esm/options/1_16/options.js +43 -15
- package/esm/options/1_16/options.js.map +1 -1
- package/esm/options/1_17.d.ts +2 -3
- package/esm/options/1_17.d.ts.map +1 -1
- package/esm/options/1_17.js +3 -6
- package/esm/options/1_17.js.map +1 -1
- package/esm/options/1_18.d.ts +2 -3
- package/esm/options/1_18.d.ts.map +1 -1
- package/esm/options/1_18.js +4 -24
- package/esm/options/1_18.js.map +1 -1
- package/esm/options/1_21.d.ts +9 -4
- package/esm/options/1_21.d.ts.map +1 -1
- package/esm/options/1_21.js +30 -7
- package/esm/options/1_21.js.map +1 -1
- package/esm/options/1_22/options.d.ts +2 -3
- package/esm/options/1_22/options.d.ts.map +1 -1
- package/esm/options/1_22/options.js +4 -7
- package/esm/options/1_22/options.js.map +1 -1
- package/esm/options/1_23.d.ts +2 -3
- package/esm/options/1_23.d.ts.map +1 -1
- package/esm/options/1_23.js +4 -7
- package/esm/options/1_23.js.map +1 -1
- package/esm/options/1_24.d.ts +2 -3
- package/esm/options/1_24.d.ts.map +1 -1
- package/esm/options/1_24.js +3 -6
- package/esm/options/1_24.js.map +1 -1
- package/esm/options/1_25/options.d.ts +2 -3
- package/esm/options/1_25/options.d.ts.map +1 -1
- package/esm/options/1_25/options.js +3 -6
- package/esm/options/1_25/options.js.map +1 -1
- package/esm/options/1_25/scroll.d.ts +3 -2
- package/esm/options/1_25/scroll.d.ts.map +1 -1
- package/esm/options/1_25/scroll.js +8 -7
- package/esm/options/1_25/scroll.js.map +1 -1
- package/esm/options/2_0.d.ts +10 -8
- package/esm/options/2_0.d.ts.map +1 -1
- package/esm/options/2_0.js +68 -74
- package/esm/options/2_0.js.map +1 -1
- package/esm/options/2_1.d.ts +4 -5
- package/esm/options/2_1.d.ts.map +1 -1
- package/esm/options/2_1.js +3 -6
- package/esm/options/2_1.js.map +1 -1
- package/esm/options/2_2.d.ts +4 -5
- package/esm/options/2_2.d.ts.map +1 -1
- package/esm/options/2_2.js +3 -6
- package/esm/options/2_2.js.map +1 -1
- package/esm/options/2_3.d.ts +59 -0
- package/esm/options/2_3.d.ts.map +1 -0
- package/esm/options/2_3.js +47 -0
- package/esm/options/2_3.js.map +1 -0
- package/esm/options/codec.d.ts +1 -0
- package/esm/options/codec.d.ts.map +1 -1
- package/esm/options/codec.js +1 -0
- package/esm/options/codec.js.map +1 -1
- package/esm/options/index.d.ts +1 -0
- package/esm/options/index.d.ts.map +1 -1
- package/esm/options/index.js +1 -0
- package/esm/options/index.js.map +1 -1
- package/esm/options/latest.d.ts +4 -4
- package/esm/options/latest.js +2 -2
- package/esm/options/types.d.ts +30 -32
- package/esm/options/types.d.ts.map +1 -1
- package/esm/options/types.js +77 -26
- package/esm/options/types.js.map +1 -1
- package/package.json +11 -11
- package/src/codec/av1.ts +670 -0
- package/src/codec/nalu.ts +67 -154
- package/src/control/empty.ts +3 -0
- package/src/control/index.ts +1 -1
- package/src/control/rotate-device.ts +2 -2
- package/src/control/serializer.ts +12 -4
- package/src/control/type.ts +1 -1
- package/src/control/writer.ts +16 -6
- package/src/index.ts +0 -1
- package/src/options/1_16/{float-to-uint16.ts → float.ts} +8 -6
- package/src/options/1_16/index.ts +1 -1
- package/src/options/1_16/message.ts +8 -4
- package/src/options/1_16/options.ts +68 -28
- package/src/options/1_17.ts +3 -9
- package/src/options/1_18.ts +3 -36
- package/src/options/1_21.ts +40 -11
- package/src/options/1_22/options.ts +4 -10
- package/src/options/1_23.ts +4 -10
- package/src/options/1_24.ts +3 -9
- package/src/options/1_25/options.ts +3 -9
- package/src/options/1_25/scroll.ts +10 -11
- package/src/options/2_0.ts +87 -92
- package/src/options/2_1.ts +3 -9
- package/src/options/2_2.ts +3 -9
- package/src/options/2_3.ts +70 -0
- package/src/options/codec.ts +6 -0
- package/src/options/index.ts +1 -0
- package/src/options/latest.ts +4 -4
- package/src/options/types.ts +89 -98
- package/tsconfig.build.tsbuildinfo +1 -1
- package/esm/control/basic.d.ts.map +0 -1
- package/esm/control/basic.js +0 -3
- package/esm/control/basic.js.map +0 -1
- package/esm/device-message/ack-clipboard.d.ts +0 -9
- package/esm/device-message/ack-clipboard.d.ts.map +0 -1
- package/esm/device-message/ack-clipboard.js +0 -6
- package/esm/device-message/ack-clipboard.js.map +0 -1
- package/esm/device-message/clipboard.d.ts +0 -10
- package/esm/device-message/clipboard.d.ts.map +0 -1
- package/esm/device-message/clipboard.js +0 -7
- package/esm/device-message/clipboard.js.map +0 -1
- package/esm/device-message/index.d.ts +0 -5
- package/esm/device-message/index.d.ts.map +0 -1
- package/esm/device-message/index.js +0 -5
- package/esm/device-message/index.js.map +0 -1
- package/esm/device-message/stream.d.ts +0 -8
- package/esm/device-message/stream.d.ts.map +0 -1
- package/esm/device-message/stream.js +0 -35
- package/esm/device-message/stream.js.map +0 -1
- package/esm/device-message/type.d.ts +0 -5
- package/esm/device-message/type.d.ts.map +0 -1
- package/esm/device-message/type.js +0 -7
- package/esm/device-message/type.js.map +0 -1
- package/esm/options/1_16/float-to-uint16.d.ts +0 -5
- package/esm/options/1_16/float-to-uint16.d.ts.map +0 -1
- package/esm/options/1_16/float-to-uint16.js.map +0 -1
- package/src/control/basic.ts +0 -3
- package/src/device-message/ack-clipboard.ts +0 -10
- package/src/device-message/clipboard.ts +0 -11
- package/src/device-message/index.ts +0 -4
- package/src/device-message/stream.ts +0 -49
- package/src/device-message/type.ts +0 -5
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { ReadableStream } from "@yume-chan/stream-extra";
|
|
2
|
+
import type { ValueOrPromise } from "@yume-chan/struct";
|
|
3
|
+
import type { ScrcpyOptionsInit2_2 } from "./2_2.js";
|
|
4
|
+
import type { ScrcpyAudioStreamMetadata } from "./codec.js";
|
|
5
|
+
import { ScrcpyOptions } from "./types.js";
|
|
6
|
+
export interface ScrcpyOptionsInit2_3 extends Omit<ScrcpyOptionsInit2_2, "audioCodec"> {
|
|
7
|
+
audioCodec?: "raw" | "opus" | "aac" | "flac";
|
|
8
|
+
}
|
|
9
|
+
export declare class ScrcpyOptions2_3 extends ScrcpyOptions<ScrcpyOptionsInit2_3> {
|
|
10
|
+
static readonly DEFAULTS: {
|
|
11
|
+
readonly videoSource: "display";
|
|
12
|
+
readonly displayId: 0;
|
|
13
|
+
readonly cameraId: undefined;
|
|
14
|
+
readonly cameraSize: undefined;
|
|
15
|
+
readonly cameraFacing: undefined;
|
|
16
|
+
readonly cameraAr: undefined;
|
|
17
|
+
readonly cameraFps: undefined;
|
|
18
|
+
readonly cameraHighSpeed: false;
|
|
19
|
+
readonly listCameras: false;
|
|
20
|
+
readonly listCameraSizes: false;
|
|
21
|
+
readonly video: true;
|
|
22
|
+
readonly audioSource: "output";
|
|
23
|
+
readonly scid: import("./2_0.js").ScrcpyInstanceId;
|
|
24
|
+
readonly videoCodec: "h264";
|
|
25
|
+
readonly videoBitRate: 8000000;
|
|
26
|
+
readonly videoCodecOptions: import("./index.js").CodecOptions;
|
|
27
|
+
readonly videoEncoder: undefined;
|
|
28
|
+
readonly audio: true;
|
|
29
|
+
readonly audioCodec: "opus";
|
|
30
|
+
readonly audioBitRate: 128000;
|
|
31
|
+
readonly audioCodecOptions: import("./index.js").CodecOptions;
|
|
32
|
+
readonly audioEncoder: undefined;
|
|
33
|
+
readonly listEncoders: false;
|
|
34
|
+
readonly listDisplays: false;
|
|
35
|
+
readonly sendCodecMeta: true;
|
|
36
|
+
readonly logLevel: import("./1_18.js").ScrcpyLogLevel1_18.Debug;
|
|
37
|
+
readonly maxSize: 0;
|
|
38
|
+
readonly maxFps: 0;
|
|
39
|
+
readonly lockVideoOrientation: import("./1_18.js").ScrcpyVideoOrientation1_18.Unlocked;
|
|
40
|
+
readonly tunnelForward: false;
|
|
41
|
+
readonly crop: undefined;
|
|
42
|
+
readonly sendFrameMeta: true;
|
|
43
|
+
readonly control: true;
|
|
44
|
+
readonly showTouches: false;
|
|
45
|
+
readonly stayAwake: false;
|
|
46
|
+
readonly powerOffOnClose: false;
|
|
47
|
+
readonly clipboardAutosync: true;
|
|
48
|
+
readonly downsizeOnError: true;
|
|
49
|
+
readonly sendDeviceMeta: true;
|
|
50
|
+
readonly sendDummyByte: true;
|
|
51
|
+
readonly cleanup: true;
|
|
52
|
+
readonly powerOn: true;
|
|
53
|
+
};
|
|
54
|
+
get defaults(): Required<ScrcpyOptionsInit2_3>;
|
|
55
|
+
constructor(init: ScrcpyOptionsInit2_3);
|
|
56
|
+
serialize(): string[];
|
|
57
|
+
parseAudioStreamMetadata(stream: ReadableStream<Uint8Array>): ValueOrPromise<ScrcpyAudioStreamMetadata>;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=2_3.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"2_3.d.ts","sourceRoot":"","sources":["../../src/options/2_3.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,WAAW,oBACb,SAAQ,IAAI,CAAC,oBAAoB,EAAE,YAAY,CAAC;IAChD,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;CAChD;AAED,qBAAa,gBAAiB,SAAQ,aAAa,CAAC,oBAAoB,CAAC;IACrE,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAE4B;IAEpD,IAAa,QAAQ,IAAI,QAAQ,CAAC,oBAAoB,CAAC,CAEtD;gBAEW,IAAI,EAAE,oBAAoB;IAI7B,SAAS,IAAI,MAAM,EAAE;IAIrB,wBAAwB,CAC7B,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,cAAc,CAAC,yBAAyB,CAAC;CAkC/C"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ScrcpyOptions1_21 } from "./1_21.js";
|
|
2
|
+
import { ScrcpyOptions2_0 } from "./2_0.js";
|
|
3
|
+
import { ScrcpyOptions2_2 } from "./2_2.js";
|
|
4
|
+
import { ScrcpyAudioCodec } from "./codec.js";
|
|
5
|
+
import { ScrcpyOptions } from "./types.js";
|
|
6
|
+
export class ScrcpyOptions2_3 extends ScrcpyOptions {
|
|
7
|
+
static DEFAULTS = {
|
|
8
|
+
...ScrcpyOptions2_2.DEFAULTS,
|
|
9
|
+
};
|
|
10
|
+
get defaults() {
|
|
11
|
+
return ScrcpyOptions2_3.DEFAULTS;
|
|
12
|
+
}
|
|
13
|
+
constructor(init) {
|
|
14
|
+
super(ScrcpyOptions2_2, init, ScrcpyOptions2_3.DEFAULTS);
|
|
15
|
+
}
|
|
16
|
+
serialize() {
|
|
17
|
+
return ScrcpyOptions1_21.serialize(this.value, this.defaults);
|
|
18
|
+
}
|
|
19
|
+
parseAudioStreamMetadata(stream) {
|
|
20
|
+
return ScrcpyOptions2_0.parseAudioMetadata(stream, this.value.sendCodecMeta, (value) => {
|
|
21
|
+
switch (value) {
|
|
22
|
+
case ScrcpyAudioCodec.RAW.metadataValue:
|
|
23
|
+
return ScrcpyAudioCodec.RAW;
|
|
24
|
+
case ScrcpyAudioCodec.OPUS.metadataValue:
|
|
25
|
+
return ScrcpyAudioCodec.OPUS;
|
|
26
|
+
case ScrcpyAudioCodec.AAC.metadataValue:
|
|
27
|
+
return ScrcpyAudioCodec.AAC;
|
|
28
|
+
case ScrcpyAudioCodec.FLAC.metadataValue:
|
|
29
|
+
return ScrcpyAudioCodec.FLAC;
|
|
30
|
+
default:
|
|
31
|
+
throw new Error(`Unknown audio codec metadata value: ${value}`);
|
|
32
|
+
}
|
|
33
|
+
}, () => {
|
|
34
|
+
switch (this.value.audioCodec) {
|
|
35
|
+
case "raw":
|
|
36
|
+
return ScrcpyAudioCodec.RAW;
|
|
37
|
+
case "opus":
|
|
38
|
+
return ScrcpyAudioCodec.OPUS;
|
|
39
|
+
case "aac":
|
|
40
|
+
return ScrcpyAudioCodec.AAC;
|
|
41
|
+
case "flac":
|
|
42
|
+
return ScrcpyAudioCodec.FLAC;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=2_3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"2_3.js","sourceRoot":"","sources":["../../src/options/2_3.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAO3C,MAAM,OAAO,gBAAiB,SAAQ,aAAmC;IACrE,MAAM,CAAU,QAAQ,GAAG;QACvB,GAAG,gBAAgB,CAAC,QAAQ;KACmB,CAAC;IAEpD,IAAa,QAAQ;QACjB,OAAO,gBAAgB,CAAC,QAAQ,CAAC;IACrC,CAAC;IAED,YAAY,IAA0B;QAClC,KAAK,CAAC,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAEQ,SAAS;QACd,OAAO,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;IAEQ,wBAAwB,CAC7B,MAAkC;QAElC,OAAO,gBAAgB,CAAC,kBAAkB,CACtC,MAAM,EACN,IAAI,CAAC,KAAK,CAAC,aAAa,EACxB,CAAC,KAAK,EAAE,EAAE;YACN,QAAQ,KAAK,EAAE,CAAC;gBACZ,KAAK,gBAAgB,CAAC,GAAG,CAAC,aAAa;oBACnC,OAAO,gBAAgB,CAAC,GAAG,CAAC;gBAChC,KAAK,gBAAgB,CAAC,IAAI,CAAC,aAAa;oBACpC,OAAO,gBAAgB,CAAC,IAAI,CAAC;gBACjC,KAAK,gBAAgB,CAAC,GAAG,CAAC,aAAa;oBACnC,OAAO,gBAAgB,CAAC,GAAG,CAAC;gBAChC,KAAK,gBAAgB,CAAC,IAAI,CAAC,aAAa;oBACpC,OAAO,gBAAgB,CAAC,IAAI,CAAC;gBACjC;oBACI,MAAM,IAAI,KAAK,CACX,uCAAuC,KAAK,EAAE,CACjD,CAAC;YACV,CAAC;QACL,CAAC,EACD,GAAG,EAAE;YACD,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;gBAC5B,KAAK,KAAK;oBACN,OAAO,gBAAgB,CAAC,GAAG,CAAC;gBAChC,KAAK,MAAM;oBACP,OAAO,gBAAgB,CAAC,IAAI,CAAC;gBACjC,KAAK,KAAK;oBACN,OAAO,gBAAgB,CAAC,GAAG,CAAC;gBAChC,KAAK,MAAM;oBACP,OAAO,gBAAgB,CAAC,IAAI,CAAC;YACrC,CAAC;QACL,CAAC,CACJ,CAAC;IACN,CAAC"}
|
package/esm/options/codec.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export interface ScrcpyVideoStream {
|
|
|
18
18
|
export declare class ScrcpyAudioCodec implements ScrcpyOptionValue {
|
|
19
19
|
static readonly OPUS: ScrcpyAudioCodec;
|
|
20
20
|
static readonly AAC: ScrcpyAudioCodec;
|
|
21
|
+
static readonly FLAC: ScrcpyAudioCodec;
|
|
21
22
|
static readonly RAW: ScrcpyAudioCodec;
|
|
22
23
|
readonly optionValue: string;
|
|
23
24
|
readonly metadataValue: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/options/codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,oBAAY,kBAAkB;IAC1B,IAAI,aAAgB;IACpB,IAAI,aAAgB;IACpB,GAAG,UAAgB;CACtB;AAED,MAAM,WAAW,yBAAyB;IACtC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,EAAE,kBAAkB,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;CAChD;AAED,qBAAa,gBAAiB,YAAW,iBAAiB;IACtD,MAAM,CAAC,QAAQ,CAAC,IAAI,mBAKlB;IACF,MAAM,CAAC,QAAQ,CAAC,GAAG,mBAKjB;IACF,MAAM,CAAC,QAAQ,CAAC,GAAG,mBAKjB;IAEF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAGxB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM;IAQtB,aAAa,IAAI,MAAM;CAG1B;AAED,MAAM,WAAW,iCAAiC;IAC9C,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC7B;AAED,MAAM,WAAW,gCAAgC;IAC7C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,gCAAgC;IAC7C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;CAC/C;AAED,MAAM,MAAM,yBAAyB,GAC/B,iCAAiC,GACjC,gCAAgC,GAChC,gCAAgC,CAAC;AAEvC,MAAM,WAAW,oCAAoC;IACjD,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,2BAA2B;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,MAAM,uBAAuB,GAC7B,oCAAoC,GACpC,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/options/codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,oBAAY,kBAAkB;IAC1B,IAAI,aAAgB;IACpB,IAAI,aAAgB;IACpB,GAAG,UAAgB;CACtB;AAED,MAAM,WAAW,yBAAyB;IACtC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,EAAE,kBAAkB,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;CAChD;AAED,qBAAa,gBAAiB,YAAW,iBAAiB;IACtD,MAAM,CAAC,QAAQ,CAAC,IAAI,mBAKlB;IACF,MAAM,CAAC,QAAQ,CAAC,GAAG,mBAKjB;IACF,MAAM,CAAC,QAAQ,CAAC,IAAI,mBAKlB;IACF,MAAM,CAAC,QAAQ,CAAC,GAAG,mBAKjB;IAEF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAGxB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM;IAQtB,aAAa,IAAI,MAAM;CAG1B;AAED,MAAM,WAAW,iCAAiC;IAC9C,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC7B;AAED,MAAM,WAAW,gCAAgC;IAC7C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,gCAAgC;IAC7C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;CAC/C;AAED,MAAM,MAAM,yBAAyB,GAC/B,iCAAiC,GACjC,gCAAgC,GAChC,gCAAgC,CAAC;AAEvC,MAAM,WAAW,oCAAoC;IACjD,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,2BAA2B;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,MAAM,uBAAuB,GAC7B,oCAAoC,GACpC,2BAA2B,CAAC"}
|
package/esm/options/codec.js
CHANGED
|
@@ -7,6 +7,7 @@ export var ScrcpyVideoCodecId;
|
|
|
7
7
|
export class ScrcpyAudioCodec {
|
|
8
8
|
static OPUS = new ScrcpyAudioCodec("opus", 0x6f_70_75_73, "audio/opus", "opus");
|
|
9
9
|
static AAC = new ScrcpyAudioCodec("aac", 0x00_61_61_63, "audio/aac", "mp4a.66");
|
|
10
|
+
static FLAC = new ScrcpyAudioCodec("flac", 0x66_6c_61_63, "audio/flac", "flac");
|
|
10
11
|
static RAW = new ScrcpyAudioCodec("raw", 0x00_72_61_77, "audio/raw", "");
|
|
11
12
|
optionValue;
|
|
12
13
|
metadataValue;
|
package/esm/options/codec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/options/codec.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC1B,oEAAoB,CAAA;IACpB,oEAAoB,CAAA;IACpB,+DAAmB,CAAA;AACvB,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B;AAcD,MAAM,OAAO,gBAAgB;IACzB,MAAM,CAAU,IAAI,GAAG,IAAI,gBAAgB,CACvC,MAAM,EACN,aAAa,EACb,YAAY,EACZ,MAAM,CACT,CAAC;IACF,MAAM,CAAU,GAAG,GAAG,IAAI,gBAAgB,CACtC,KAAK,EACL,aAAa,EACb,WAAW,EACX,SAAS,CACZ,CAAC;IACF,MAAM,CAAU,GAAG,GAAG,IAAI,gBAAgB,CACtC,KAAK,EACL,aAAa,EACb,WAAW,EACX,EAAE,CACL,CAAC;IAEO,WAAW,CAAS;IACpB,aAAa,CAAS;IACtB,QAAQ,CAAS;IACjB,UAAU,CAAS;IAE5B,YACI,WAAmB,EACnB,aAAqB,EACrB,QAAgB,EAChB,UAAkB;QAElB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC"}
|
|
1
|
+
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/options/codec.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC1B,oEAAoB,CAAA;IACpB,oEAAoB,CAAA;IACpB,+DAAmB,CAAA;AACvB,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B;AAcD,MAAM,OAAO,gBAAgB;IACzB,MAAM,CAAU,IAAI,GAAG,IAAI,gBAAgB,CACvC,MAAM,EACN,aAAa,EACb,YAAY,EACZ,MAAM,CACT,CAAC;IACF,MAAM,CAAU,GAAG,GAAG,IAAI,gBAAgB,CACtC,KAAK,EACL,aAAa,EACb,WAAW,EACX,SAAS,CACZ,CAAC;IACF,MAAM,CAAU,IAAI,GAAG,IAAI,gBAAgB,CACvC,MAAM,EACN,aAAa,EACb,YAAY,EACZ,MAAM,CACT,CAAC;IACF,MAAM,CAAU,GAAG,GAAG,IAAI,gBAAgB,CACtC,KAAK,EACL,aAAa,EACb,WAAW,EACX,EAAE,CACL,CAAC;IAEO,WAAW,CAAS;IACpB,aAAa,CAAS;IACtB,QAAQ,CAAS;IACjB,UAAU,CAAS;IAE5B,YACI,WAAmB,EACnB,aAAqB,EACrB,QAAgB,EAChB,UAAkB;QAElB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC"}
|
package/esm/options/index.d.ts
CHANGED
|
@@ -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,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,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,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|
package/esm/options/index.js
CHANGED
package/esm/options/index.js.map
CHANGED
|
@@ -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,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,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,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|
package/esm/options/latest.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ScrcpyLogLevel1_18, ScrcpyVideoOrientation1_18 } from "./1_18.js";
|
|
2
|
-
import type {
|
|
3
|
-
import {
|
|
2
|
+
import type { ScrcpyOptionsInit2_3 } from "./2_3.js";
|
|
3
|
+
import { ScrcpyOptions2_3 } from "./2_3.js";
|
|
4
4
|
export declare const ScrcpyLogLevel: typeof ScrcpyLogLevel1_18;
|
|
5
5
|
export type ScrcpyLogLevel = ScrcpyLogLevel1_18;
|
|
6
6
|
export declare const ScrcpyVideoOrientation: typeof ScrcpyVideoOrientation1_18;
|
|
7
7
|
export type ScrcpyVideoOrientation = ScrcpyVideoOrientation1_18;
|
|
8
|
-
export type ScrcpyOptionsInitLatest =
|
|
9
|
-
export declare class ScrcpyOptionsLatest extends
|
|
8
|
+
export type ScrcpyOptionsInitLatest = ScrcpyOptionsInit2_3;
|
|
9
|
+
export declare class ScrcpyOptionsLatest extends ScrcpyOptions2_3 {
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=latest.d.ts.map
|
package/esm/options/latest.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ScrcpyLogLevel1_18, ScrcpyVideoOrientation1_18 } from "./1_18.js";
|
|
2
|
-
import {
|
|
2
|
+
import { ScrcpyOptions2_3 } from "./2_3.js";
|
|
3
3
|
export const ScrcpyLogLevel = ScrcpyLogLevel1_18;
|
|
4
4
|
export const ScrcpyVideoOrientation = ScrcpyVideoOrientation1_18;
|
|
5
|
-
export class ScrcpyOptionsLatest extends
|
|
5
|
+
export class ScrcpyOptionsLatest extends ScrcpyOptions2_3 {
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=latest.js.map
|
package/esm/options/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
|
|
2
|
-
import type { ValueOrPromise } from "@yume-chan/struct";
|
|
2
|
+
import type { AsyncExactReadable, ValueOrPromise } from "@yume-chan/struct";
|
|
3
3
|
import type { ScrcpyBackOrScreenOnControlMessage, ScrcpyControlMessageType, ScrcpyInjectTouchControlMessage, ScrcpySetClipboardControlMessage } from "../control/index.js";
|
|
4
4
|
import type { ScrcpyScrollController } from "./1_16/scroll.js";
|
|
5
5
|
import type { ScrcpyAudioStreamMetadata, ScrcpyMediaStreamPacket, ScrcpyVideoStream } from "./codec.js";
|
|
@@ -18,11 +18,31 @@ export interface ScrcpyDisplay {
|
|
|
18
18
|
id: number;
|
|
19
19
|
resolution?: string;
|
|
20
20
|
}
|
|
21
|
-
export
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
export declare abstract class ScrcpyOptions<T extends object> {
|
|
22
|
+
#private;
|
|
23
|
+
abstract get defaults(): Required<T>;
|
|
24
|
+
get controlMessageTypes(): readonly ScrcpyControlMessageType[];
|
|
24
25
|
readonly value: Required<T>;
|
|
25
|
-
|
|
26
|
+
get clipboard(): ReadableStream<string>;
|
|
27
|
+
/**
|
|
28
|
+
* Creates a new instance of `ScrcpyOptions`, delegating all methods to the `Base` class.
|
|
29
|
+
* The derived class can override the methods to provide different behaviors.
|
|
30
|
+
* In those override methods, the derived class can call `super.currentMethodName()` to
|
|
31
|
+
* include the behavior of the `Base` class.
|
|
32
|
+
*
|
|
33
|
+
* Because `Base` is another derived class of `ScrcpyOptions`, its constructor might
|
|
34
|
+
* call this constructor with another `Base` class, forming a chain of classes, but without
|
|
35
|
+
* direct derivation to avoid type incompatibility when options are changed.
|
|
36
|
+
*
|
|
37
|
+
* When the `Base` class is constructed, its `value` field will be the same object as `value`,
|
|
38
|
+
* so the `setListXXX` methods in `Base` will modify `this.value`.
|
|
39
|
+
*
|
|
40
|
+
* @param Base The base class's constructor
|
|
41
|
+
* @param value The options value
|
|
42
|
+
* @param defaults The default option values
|
|
43
|
+
*/
|
|
44
|
+
constructor(Base: (new (value: never) => ScrcpyOptions<object>) | undefined, value: T, defaults: Required<T>);
|
|
45
|
+
abstract serialize(): string[];
|
|
26
46
|
/**
|
|
27
47
|
* Set the essential options to let Scrcpy server print out available encoders.
|
|
28
48
|
*/
|
|
@@ -51,38 +71,16 @@ export interface ScrcpyOptions<T extends object> {
|
|
|
51
71
|
*/
|
|
52
72
|
parseVideoStreamMetadata(stream: ReadableStream<Uint8Array>): ValueOrPromise<ScrcpyVideoStream>;
|
|
53
73
|
parseAudioStreamMetadata(stream: ReadableStream<Uint8Array>): ValueOrPromise<ScrcpyAudioStreamMetadata>;
|
|
74
|
+
parseDeviceMessage(id: number, stream: AsyncExactReadable): Promise<boolean>;
|
|
54
75
|
createMediaStreamTransformer(): TransformStream<Uint8Array, ScrcpyMediaStreamPacket>;
|
|
55
76
|
serializeInjectTouchControlMessage(message: ScrcpyInjectTouchControlMessage): Uint8Array;
|
|
56
77
|
serializeBackOrScreenOnControlMessage(message: ScrcpyBackOrScreenOnControlMessage): Uint8Array | undefined;
|
|
57
|
-
serializeSetClipboardControlMessage(message: ScrcpySetClipboardControlMessage): Uint8Array;
|
|
58
|
-
createScrollController(): ScrcpyScrollController;
|
|
59
|
-
}
|
|
60
|
-
export declare abstract class ScrcpyOptionsBase<T extends object, B extends ScrcpyOptions<object>> implements ScrcpyOptions<T> {
|
|
61
|
-
#private;
|
|
62
|
-
protected _base: B;
|
|
63
|
-
abstract get defaults(): Required<T>;
|
|
64
|
-
get controlMessageTypes(): readonly ScrcpyControlMessageType[];
|
|
65
|
-
readonly value: Required<T>;
|
|
66
|
-
constructor(base: B, value: Required<T>);
|
|
67
|
-
abstract serialize(): string[];
|
|
68
|
-
setListEncoders(): void;
|
|
69
|
-
setListDisplays(): void;
|
|
70
|
-
parseEncoder(line: string): ScrcpyEncoder | undefined;
|
|
71
|
-
parseDisplay(line: string): ScrcpyDisplay | undefined;
|
|
72
78
|
/**
|
|
73
|
-
*
|
|
74
|
-
* @param
|
|
75
|
-
* @returns
|
|
76
|
-
* A tuple of the video stream and the metadata.
|
|
77
|
-
*
|
|
78
|
-
* The returned video stream may be different from the input stream, and should be used for further processing.
|
|
79
|
+
* Convert a clipboard control message to binary data
|
|
80
|
+
* @param message The clipboard control message
|
|
81
|
+
* @returns A `Uint8Array` containing the binary data, or a tuple of the binary data and a promise that resolves when the clipboard is updated on the device
|
|
79
82
|
*/
|
|
80
|
-
|
|
81
|
-
parseAudioStreamMetadata(stream: ReadableStream<Uint8Array>): ValueOrPromise<ScrcpyAudioStreamMetadata>;
|
|
82
|
-
createMediaStreamTransformer(): TransformStream<Uint8Array, ScrcpyMediaStreamPacket>;
|
|
83
|
-
serializeInjectTouchControlMessage(message: ScrcpyInjectTouchControlMessage): Uint8Array;
|
|
84
|
-
serializeBackOrScreenOnControlMessage(message: ScrcpyBackOrScreenOnControlMessage): Uint8Array | undefined;
|
|
85
|
-
serializeSetClipboardControlMessage(message: ScrcpySetClipboardControlMessage): Uint8Array;
|
|
83
|
+
serializeSetClipboardControlMessage(message: ScrcpySetClipboardControlMessage): Uint8Array | [Uint8Array, Promise<void>];
|
|
86
84
|
createScrollController(): ScrcpyScrollController;
|
|
87
85
|
}
|
|
88
86
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/options/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/options/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE5E,OAAO,KAAK,EACR,kCAAkC,EAClC,wBAAwB,EACxB,+BAA+B,EAC/B,gCAAgC,EACnC,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EACR,yBAAyB,EACzB,uBAAuB,EACvB,iBAAiB,EACpB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,mBAAmB,sCAAsC,CAAC;AAEvE,MAAM,WAAW,iBAAiB;IAC9B,aAAa,IAAI,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,wBAAgB,mBAAmB,CAC/B,KAAK,EAAE,OAAO,GACf,KAAK,IAAI,iBAAiB,CAO5B;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,CAmB3E;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,8BAAsB,aAAa,CAAC,CAAC,SAAS,MAAM;;IAGhD,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;IAErC,IAAI,mBAAmB,IAAI,SAAS,wBAAwB,EAAE,CAE7D;IAED,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE5B,IAAI,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,CAEtC;IAED;;;;;;;;;;;;;;;;OAgBG;gBAEC,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,KAAK,KAAK,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,EAC/D,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IA0BzB,QAAQ,CAAC,SAAS,IAAI,MAAM,EAAE;IAE9B;;OAEG;IACH,eAAe,IAAI,IAAI;IAIvB;;OAEG;IACH,eAAe,IAAI,IAAI;IAIvB;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD;;;;;;;OAOG;IACH,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,cAAc,CAAC,iBAAiB,CAAC;IAIpC,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,cAAc,CAAC,yBAAyB,CAAC;IAI5C,kBAAkB,CACd,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,kBAAkB,GAC3B,OAAO,CAAC,OAAO,CAAC;IAInB,4BAA4B,IAAI,eAAe,CAC3C,UAAU,EACV,uBAAuB,CAC1B;IAID,kCAAkC,CAC9B,OAAO,EAAE,+BAA+B,GACzC,UAAU;IAIb,qCAAqC,CACjC,OAAO,EAAE,kCAAkC,GAC5C,UAAU,GAAG,SAAS;IAIzB;;;;OAIG;IACH,mCAAmC,CAC/B,OAAO,EAAE,gCAAgC,GAC1C,UAAU,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAI3C,sBAAsB,IAAI,sBAAsB;CAGnD"}
|
package/esm/options/types.js
CHANGED
|
@@ -16,41 +16,84 @@ export function toScrcpyOptionValue(value, empty) {
|
|
|
16
16
|
if (typeof value !== "string" &&
|
|
17
17
|
typeof value !== "number" &&
|
|
18
18
|
typeof value !== "boolean") {
|
|
19
|
-
throw new
|
|
19
|
+
throw new TypeError(`Invalid option value: ${String(value)}`);
|
|
20
20
|
}
|
|
21
21
|
return String(value);
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
const SkipDefaultMark = Symbol("SkipDefault");
|
|
24
|
+
export class ScrcpyOptions {
|
|
25
|
+
#base;
|
|
25
26
|
get controlMessageTypes() {
|
|
26
|
-
return this.
|
|
27
|
+
return this.#base.controlMessageTypes;
|
|
27
28
|
}
|
|
28
29
|
value;
|
|
29
|
-
|
|
30
|
-
this.
|
|
30
|
+
get clipboard() {
|
|
31
|
+
return this.#base.clipboard;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Creates a new instance of `ScrcpyOptions`, delegating all methods to the `Base` class.
|
|
35
|
+
* The derived class can override the methods to provide different behaviors.
|
|
36
|
+
* In those override methods, the derived class can call `super.currentMethodName()` to
|
|
37
|
+
* include the behavior of the `Base` class.
|
|
38
|
+
*
|
|
39
|
+
* Because `Base` is another derived class of `ScrcpyOptions`, its constructor might
|
|
40
|
+
* call this constructor with another `Base` class, forming a chain of classes, but without
|
|
41
|
+
* direct derivation to avoid type incompatibility when options are changed.
|
|
42
|
+
*
|
|
43
|
+
* When the `Base` class is constructed, its `value` field will be the same object as `value`,
|
|
44
|
+
* so the `setListXXX` methods in `Base` will modify `this.value`.
|
|
45
|
+
*
|
|
46
|
+
* @param Base The base class's constructor
|
|
47
|
+
* @param value The options value
|
|
48
|
+
* @param defaults The default option values
|
|
49
|
+
*/
|
|
50
|
+
constructor(Base, value, defaults) {
|
|
51
|
+
if (!(SkipDefaultMark in value)) {
|
|
52
|
+
// Only combine the default values when the outermost class is constructed
|
|
53
|
+
value = {
|
|
54
|
+
...defaults,
|
|
55
|
+
...value,
|
|
56
|
+
[SkipDefaultMark]: true,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
31
59
|
this.value = value;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
60
|
+
if (Base !== undefined) {
|
|
61
|
+
// `value` might be incompatible with `Base`,
|
|
62
|
+
// but the derive class must ensure the incompatible values are not used by base class,
|
|
63
|
+
// and only the `setListXXX` methods in base class will modify the value,
|
|
64
|
+
// which is common to all versions.
|
|
65
|
+
//
|
|
66
|
+
// `Base` is a derived class of `ScrcpyOptions`, its constructor will call
|
|
67
|
+
// this constructor with `value`, which contains `SkipDefaultMark`,
|
|
68
|
+
// so `Base#value` will be the same object as `value`.
|
|
69
|
+
this.#base = new Base(value);
|
|
41
70
|
}
|
|
42
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Set the essential options to let Scrcpy server print out available encoders.
|
|
74
|
+
*/
|
|
43
75
|
setListEncoders() {
|
|
44
|
-
this.
|
|
76
|
+
this.#base.setListEncoders();
|
|
45
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Set the essential options to let Scrcpy server print out available displays.
|
|
80
|
+
*/
|
|
46
81
|
setListDisplays() {
|
|
47
|
-
this.
|
|
82
|
+
this.#base.setListDisplays();
|
|
48
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Parse encoder information from Scrcpy server output
|
|
86
|
+
* @param line One line of Scrcpy server output
|
|
87
|
+
*/
|
|
49
88
|
parseEncoder(line) {
|
|
50
|
-
return this.
|
|
89
|
+
return this.#base.parseEncoder(line);
|
|
51
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Parse display information from Scrcpy server output
|
|
93
|
+
* @param line One line of Scrcpy server output
|
|
94
|
+
*/
|
|
52
95
|
parseDisplay(line) {
|
|
53
|
-
return this.
|
|
96
|
+
return this.#base.parseDisplay(line);
|
|
54
97
|
}
|
|
55
98
|
/**
|
|
56
99
|
* Parse the device metadata from video stream according to the current version and options.
|
|
@@ -61,25 +104,33 @@ export class ScrcpyOptionsBase {
|
|
|
61
104
|
* The returned video stream may be different from the input stream, and should be used for further processing.
|
|
62
105
|
*/
|
|
63
106
|
parseVideoStreamMetadata(stream) {
|
|
64
|
-
return this.
|
|
107
|
+
return this.#base.parseVideoStreamMetadata(stream);
|
|
65
108
|
}
|
|
66
109
|
parseAudioStreamMetadata(stream) {
|
|
67
|
-
return this.
|
|
110
|
+
return this.#base.parseAudioStreamMetadata(stream);
|
|
111
|
+
}
|
|
112
|
+
parseDeviceMessage(id, stream) {
|
|
113
|
+
return this.#base.parseDeviceMessage(id, stream);
|
|
68
114
|
}
|
|
69
115
|
createMediaStreamTransformer() {
|
|
70
|
-
return this.
|
|
116
|
+
return this.#base.createMediaStreamTransformer();
|
|
71
117
|
}
|
|
72
118
|
serializeInjectTouchControlMessage(message) {
|
|
73
|
-
return this.
|
|
119
|
+
return this.#base.serializeInjectTouchControlMessage(message);
|
|
74
120
|
}
|
|
75
121
|
serializeBackOrScreenOnControlMessage(message) {
|
|
76
|
-
return this.
|
|
122
|
+
return this.#base.serializeBackOrScreenOnControlMessage(message);
|
|
77
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* Convert a clipboard control message to binary data
|
|
126
|
+
* @param message The clipboard control message
|
|
127
|
+
* @returns A `Uint8Array` containing the binary data, or a tuple of the binary data and a promise that resolves when the clipboard is updated on the device
|
|
128
|
+
*/
|
|
78
129
|
serializeSetClipboardControlMessage(message) {
|
|
79
|
-
return this.
|
|
130
|
+
return this.#base.serializeSetClipboardControlMessage(message);
|
|
80
131
|
}
|
|
81
132
|
createScrollController() {
|
|
82
|
-
return this.
|
|
133
|
+
return this.#base.createScrollController();
|
|
83
134
|
}
|
|
84
135
|
}
|
|
85
136
|
//# sourceMappingURL=types.js.map
|
package/esm/options/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/options/types.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,MAAM,mBAAmB,GAAG,mCAAmC,CAAC;AAMvE,MAAM,UAAU,mBAAmB,CAC/B,KAAc;IAEd,OAAO,CACH,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,eAAe,IAAI,KAAK;QACxB,OAAO,KAAK,CAAC,aAAa,KAAK,UAAU,CAC5C,CAAC;AACN,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAI,KAAc,EAAE,KAAQ;IAC3D,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,KAAK,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;IAClC,CAAC;IAED,uDAAuD;IACvD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IACI,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,SAAS,EAC5B,CAAC;QACC,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/options/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yume-chan/scrcpy",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.24",
|
|
4
4
|
"description": "TypeScript implementation of Scrcpy.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"adb",
|
|
@@ -26,25 +26,25 @@
|
|
|
26
26
|
"main": "esm/index.js",
|
|
27
27
|
"types": "esm/index.d.ts",
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@yume-chan/
|
|
30
|
-
"@yume-chan/
|
|
31
|
-
"
|
|
29
|
+
"@yume-chan/async": "^2.2.0",
|
|
30
|
+
"@yume-chan/no-data-view": "^0.0.24",
|
|
31
|
+
"@yume-chan/stream-extra": "^0.0.24",
|
|
32
|
+
"@yume-chan/struct": "^0.0.24"
|
|
32
33
|
},
|
|
33
34
|
"devDependencies": {
|
|
34
|
-
"@jest/globals": "^30.0.0-alpha.
|
|
35
|
+
"@jest/globals": "^30.0.0-alpha.4",
|
|
35
36
|
"@yume-chan/eslint-config": "^1.0.0",
|
|
36
37
|
"@yume-chan/tsconfig": "^1.0.0",
|
|
37
38
|
"cross-env": "^7.0.3",
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"typescript": "^5.4.2"
|
|
39
|
+
"jest": "^30.0.0-alpha.4",
|
|
40
|
+
"prettier": "^3.3.2",
|
|
41
|
+
"ts-jest": "^29.1.4",
|
|
42
|
+
"typescript": "^5.4.5"
|
|
43
43
|
},
|
|
44
44
|
"scripts": {
|
|
45
45
|
"build": "tsc -b tsconfig.build.json",
|
|
46
46
|
"build:watch": "tsc -b tsconfig.build.json",
|
|
47
47
|
"test": "cross-env NODE_OPTIONS=\"--experimental-vm-modules --no-warnings\" TS_JEST_DISABLE_VER_CHECKER=true jest --coverage",
|
|
48
|
-
"lint": "eslint
|
|
48
|
+
"lint": "run-eslint && prettier src/**/*.ts --write --tab-width 4"
|
|
49
49
|
}
|
|
50
50
|
}
|