@yume-chan/scrcpy 2.1.0 → 2.2.0
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.md +13 -0
- package/README.md +3 -0
- package/esm/1_15/impl/clipboard-stream.d.ts +2 -1
- package/esm/1_15/impl/clipboard-stream.d.ts.map +1 -1
- package/esm/1_15/impl/clipboard-stream.js +4 -7
- package/esm/1_15/impl/clipboard-stream.js.map +1 -1
- package/esm/1_15/impl/scroll-controller.d.ts.map +1 -1
- package/esm/1_15/impl/scroll-controller.js +22 -21
- package/esm/1_15/impl/scroll-controller.js.map +1 -1
- package/esm/1_15/options.d.ts +2 -3
- package/esm/1_15/options.d.ts.map +1 -1
- package/esm/1_15/options.js +6 -15
- package/esm/1_15/options.js.map +1 -1
- package/esm/1_17/options.d.ts +2 -3
- package/esm/1_17/options.d.ts.map +1 -1
- package/esm/1_17/options.js +6 -15
- package/esm/1_17/options.js.map +1 -1
- package/esm/1_18/options.d.ts +2 -3
- package/esm/1_18/options.d.ts.map +1 -1
- package/esm/1_18/options.js +6 -15
- package/esm/1_18/options.js.map +1 -1
- package/esm/1_21/impl/set-clipboard.d.ts +2 -1
- package/esm/1_21/impl/set-clipboard.d.ts.map +1 -1
- package/esm/1_21/impl/set-clipboard.js +2 -5
- package/esm/1_21/impl/set-clipboard.js.map +1 -1
- package/esm/1_21/options.d.ts +2 -3
- package/esm/1_21/options.d.ts.map +1 -1
- package/esm/1_21/options.js +7 -21
- package/esm/1_21/options.js.map +1 -1
- package/esm/1_22/options.d.ts +2 -3
- package/esm/1_22/options.d.ts.map +1 -1
- package/esm/1_22/options.js +7 -21
- package/esm/1_22/options.js.map +1 -1
- package/esm/1_23/options.d.ts +2 -3
- package/esm/1_23/options.d.ts.map +1 -1
- package/esm/1_23/options.js +7 -21
- package/esm/1_23/options.js.map +1 -1
- package/esm/1_24/options.d.ts +2 -3
- package/esm/1_24/options.d.ts.map +1 -1
- package/esm/1_24/options.js +7 -21
- package/esm/1_24/options.js.map +1 -1
- package/esm/1_25/options.d.ts +2 -3
- package/esm/1_25/options.d.ts.map +1 -1
- package/esm/1_25/options.js +7 -21
- package/esm/1_25/options.js.map +1 -1
- package/esm/2_0/options.d.ts +2 -3
- package/esm/2_0/options.d.ts.map +1 -1
- package/esm/2_0/options.js +7 -21
- package/esm/2_0/options.js.map +1 -1
- package/esm/2_1/options.d.ts +2 -3
- package/esm/2_1/options.d.ts.map +1 -1
- package/esm/2_1/options.js +7 -21
- package/esm/2_1/options.js.map +1 -1
- package/esm/2_2/options.d.ts +2 -3
- package/esm/2_2/options.d.ts.map +1 -1
- package/esm/2_2/options.js +7 -21
- package/esm/2_2/options.js.map +1 -1
- package/esm/2_3/options.d.ts +2 -3
- package/esm/2_3/options.d.ts.map +1 -1
- package/esm/2_3/options.js +7 -21
- package/esm/2_3/options.js.map +1 -1
- package/esm/2_4/impl/uhid-output-stream.d.ts +2 -1
- package/esm/2_4/impl/uhid-output-stream.d.ts.map +1 -1
- package/esm/2_4/impl/uhid-output-stream.js +2 -5
- package/esm/2_4/impl/uhid-output-stream.js.map +1 -1
- package/esm/2_4/options.d.ts +2 -3
- package/esm/2_4/options.d.ts.map +1 -1
- package/esm/2_4/options.js +8 -27
- package/esm/2_4/options.js.map +1 -1
- package/esm/2_6/options.d.ts +2 -3
- package/esm/2_6/options.d.ts.map +1 -1
- package/esm/2_6/options.js +8 -22
- package/esm/2_6/options.js.map +1 -1
- package/esm/2_7/impl/serialize-uhid-create.d.ts +2 -2
- package/esm/2_7/impl/serialize-uhid-create.d.ts.map +1 -1
- package/esm/2_7/impl/serialize-uhid-create.js +3 -4
- package/esm/2_7/impl/serialize-uhid-create.js.map +1 -1
- package/esm/2_7/options.d.ts +2 -3
- package/esm/2_7/options.d.ts.map +1 -1
- package/esm/2_7/options.js +8 -22
- package/esm/2_7/options.js.map +1 -1
- package/esm/3_0/options.d.ts +2 -3
- package/esm/3_0/options.d.ts.map +1 -1
- package/esm/3_0/options.js +8 -22
- package/esm/3_0/options.js.map +1 -1
- package/esm/3_1/impl/serialize-uhid-create.d.ts +2 -2
- package/esm/3_1/impl/serialize-uhid-create.d.ts.map +1 -1
- package/esm/3_1/impl/serialize-uhid-create.js +3 -4
- package/esm/3_1/impl/serialize-uhid-create.js.map +1 -1
- package/esm/3_1/options.d.ts +2 -3
- package/esm/3_1/options.d.ts.map +1 -1
- package/esm/3_1/options.js +8 -22
- package/esm/3_1/options.js.map +1 -1
- package/esm/3_2/options.d.ts +2 -3
- package/esm/3_2/options.d.ts.map +1 -1
- package/esm/3_2/options.js +8 -22
- package/esm/3_2/options.js.map +1 -1
- package/esm/3_3.d.ts +8 -0
- package/esm/3_3.d.ts.map +1 -0
- package/esm/3_3.js +7 -0
- package/esm/3_3.js.map +1 -0
- package/esm/3_3_1/impl/index.d.ts +3 -0
- package/esm/3_3_1/impl/index.d.ts.map +1 -0
- package/esm/3_3_1/impl/index.js +3 -0
- package/esm/3_3_1/impl/index.js.map +1 -0
- package/esm/3_3_1/impl/prev.d.ts +2 -0
- package/esm/3_3_1/impl/prev.d.ts.map +1 -0
- package/esm/3_3_1/impl/prev.js +2 -0
- package/esm/3_3_1/impl/prev.js.map +1 -0
- package/esm/3_3_1/impl/scroll-controller.d.ts +7 -0
- package/esm/3_3_1/impl/scroll-controller.d.ts.map +1 -0
- package/esm/3_3_1/impl/scroll-controller.js +15 -0
- package/esm/3_3_1/impl/scroll-controller.js.map +1 -0
- package/esm/3_3_1/index.d.ts +2 -0
- package/esm/3_3_1/index.d.ts.map +1 -0
- package/esm/3_3_1/index.js +2 -0
- package/esm/3_3_1/index.js.map +1 -0
- package/esm/3_3_1/options.d.ts +90 -0
- package/esm/3_3_1/options.d.ts.map +1 -0
- package/esm/3_3_1/options.js +78 -0
- package/esm/3_3_1/options.js.map +1 -0
- package/esm/3_3_2.d.ts +8 -0
- package/esm/3_3_2.d.ts.map +1 -0
- package/esm/3_3_2.js +7 -0
- package/esm/3_3_2.js.map +1 -0
- package/esm/base/device-message.d.ts +10 -1
- package/esm/base/device-message.d.ts.map +1 -1
- package/esm/base/device-message.js +40 -1
- package/esm/base/device-message.js.map +1 -1
- package/esm/base/options.d.ts +2 -3
- package/esm/base/options.d.ts.map +1 -1
- package/esm/control/message-type-map.d.ts +2 -2
- package/esm/control/message-type-map.d.ts.map +1 -1
- package/esm/control/message-type-map.js.map +1 -1
- package/esm/index.d.ts +3 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +3 -0
- package/esm/index.js.map +1 -1
- package/esm/latest.d.ts +5 -5
- package/esm/latest.d.ts.map +1 -1
- package/esm/latest.js +3 -3
- package/esm/latest.js.map +1 -1
- package/package.json +4 -4
- package/src/1_15/impl/clipboard-stream.ts +5 -7
- package/src/1_15/impl/scroll-controller.ts +22 -19
- package/src/1_15/options.ts +9 -21
- package/src/1_17/options.ts +9 -21
- package/src/1_18/options.ts +9 -21
- package/src/1_21/impl/set-clipboard.ts +2 -5
- package/src/1_21/options.ts +13 -28
- package/src/1_22/options.ts +13 -28
- package/src/1_23/options.ts +13 -28
- package/src/1_24/options.ts +13 -28
- package/src/1_25/options.ts +13 -28
- package/src/2_0/options.ts +13 -28
- package/src/2_1/options.ts +13 -28
- package/src/2_2/options.ts +13 -28
- package/src/2_3/options.ts +13 -28
- package/src/2_4/impl/uhid-output-stream.ts +3 -6
- package/src/2_4/options.ts +16 -35
- package/src/2_6/options.ts +16 -29
- package/src/2_7/impl/serialize-uhid-create.ts +9 -11
- package/src/2_7/options.ts +16 -29
- package/src/3_0/options.ts +16 -29
- package/src/3_1/impl/serialize-uhid-create.ts +11 -13
- package/src/3_1/options.ts +16 -29
- package/src/3_2/options.ts +16 -29
- package/src/3_3.ts +14 -0
- package/src/3_3_1/impl/index.ts +6 -0
- package/src/3_3_1/impl/prev.ts +1 -0
- package/src/3_3_1/impl/scroll-controller.ts +21 -0
- package/src/3_3_1/index.ts +1 -0
- package/src/3_3_1/options.ts +177 -0
- package/src/3_3_2.ts +14 -0
- package/src/base/device-message.ts +50 -1
- package/src/base/options.ts +3 -8
- package/src/control/message-type-map.ts +3 -3
- package/src/index.ts +3 -0
- package/src/latest.ts +5 -5
- package/tsconfig.build.tsbuildinfo +1 -1
package/esm/2_2/options.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ScrcpyDeviceMessageParsers } from "../base/index.js";
|
|
1
2
|
import { AckClipboardHandler, ClipboardStream, ControlMessageTypes, createMediaStreamTransformer, createScrollController, Defaults, parseAudioStreamMetadata, parseDisplay, parseEncoder, parseVideoStreamMetadata, serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, setListDisplays, setListEncoders, } from "./impl/index.js";
|
|
2
3
|
export class ScrcpyOptions2_2 {
|
|
3
4
|
static Defaults = Defaults;
|
|
@@ -10,14 +11,18 @@ export class ScrcpyOptions2_2 {
|
|
|
10
11
|
return this.#clipboard;
|
|
11
12
|
}
|
|
12
13
|
#ackClipboardHandler;
|
|
14
|
+
#deviceMessageParsers = new ScrcpyDeviceMessageParsers();
|
|
15
|
+
get deviceMessageParsers() {
|
|
16
|
+
return this.#deviceMessageParsers;
|
|
17
|
+
}
|
|
13
18
|
constructor(init) {
|
|
14
19
|
this.value = { ...Defaults, ...init };
|
|
15
20
|
if (this.value.videoSource === "camera") {
|
|
16
21
|
this.value.control = false;
|
|
17
22
|
}
|
|
18
23
|
if (this.value.control && this.value.clipboardAutosync) {
|
|
19
|
-
this.#clipboard = new ClipboardStream();
|
|
20
|
-
this.#ackClipboardHandler = new AckClipboardHandler();
|
|
24
|
+
this.#clipboard = this.#deviceMessageParsers.add(new ClipboardStream());
|
|
25
|
+
this.#ackClipboardHandler = this.#deviceMessageParsers.add(new AckClipboardHandler());
|
|
21
26
|
}
|
|
22
27
|
}
|
|
23
28
|
serialize() {
|
|
@@ -41,25 +46,6 @@ export class ScrcpyOptions2_2 {
|
|
|
41
46
|
parseAudioStreamMetadata(stream) {
|
|
42
47
|
return parseAudioStreamMetadata(stream, this.value);
|
|
43
48
|
}
|
|
44
|
-
async parseDeviceMessage(id, stream) {
|
|
45
|
-
if (await this.#clipboard?.parse(id, stream)) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
if (await this.#ackClipboardHandler?.parse(id, stream)) {
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
throw new Error("Unknown device message");
|
|
52
|
-
}
|
|
53
|
-
endDeviceMessageStream(e) {
|
|
54
|
-
if (e) {
|
|
55
|
-
this.#clipboard?.error(e);
|
|
56
|
-
this.#ackClipboardHandler?.error(e);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
this.#clipboard?.close();
|
|
60
|
-
this.#ackClipboardHandler?.close();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
49
|
createMediaStreamTransformer() {
|
|
64
50
|
return createMediaStreamTransformer(this.value);
|
|
65
51
|
}
|
package/esm/2_2/options.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/2_2/options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/2_2/options.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAQ9D,OAAO,EACH,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,4BAA4B,EAC5B,sBAAsB,EACtB,QAAQ,EACR,wBAAwB,EACxB,YAAY,EACZ,YAAY,EACZ,wBAAwB,EACxB,SAAS,EACT,qCAAqC,EACrC,kCAAkC,EAClC,eAAe,EACf,eAAe,GAClB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,OAAO,gBAAgB;IAGzB,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC;IAE3B,KAAK,CAAyB;IAEvC,IAAI,mBAAmB;QACnB,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAED,UAAU,CAA8B;IACxC,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,oBAAoB,CAAkC;IAEtD,qBAAqB,GAAG,IAAI,0BAA0B,EAAE,CAAC;IACzD,IAAI,oBAAoB;QACpB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACtC,CAAC;IAED,YAAY,IAAkB;QAC1B,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,EAAW,CAAC;QAE/C,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;QAC/B,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;YACrD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAC5C,IAAI,eAAe,EAAE,CACxB,CAAC;YAEF,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CACtD,IAAI,mBAAmB,EAAE,CAC5B,CAAC;QACN,CAAC;IACL,CAAC;IAED,SAAS;QACL,OAAO,SAAS,CAAgB,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED,eAAe;QACX,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,YAAY,CAAC,IAAY;QACrB,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,eAAe;QACX,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,YAAY,CAAC,IAAY;QACrB,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,wBAAwB,CACpB,MAAkC;QAElC,OAAO,wBAAwB,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,wBAAwB,CACpB,MAAkC;QAElC,OAAO,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,4BAA4B;QAIxB,OAAO,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,kCAAkC,CAC9B,OAAwC;QAExC,OAAO,kCAAkC,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,qCAAqC,CACjC,OAA2C;QAE3C,OAAO,qCAAqC,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,mCAAmC,CAC/B,OAAyC;QAEzC,OAAO,IAAI,CAAC,oBAAqB,CAAC,mCAAmC,CACjE,OAAO,CACV,CAAC;IACN,CAAC;IAED,sBAAsB;QAClB,OAAO,sBAAsB,EAAE,CAAC;IACpC,CAAC"}
|
package/esm/2_3/options.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { MaybePromiseLike } from "@yume-chan/async";
|
|
2
2
|
import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
|
|
3
|
-
import type { AsyncExactReadable, ExactReadable } from "@yume-chan/struct";
|
|
4
3
|
import type { ScrcpyAudioStreamMetadata, ScrcpyControlMessageType, ScrcpyDisplay, ScrcpyEncoder, ScrcpyMediaStreamPacket, ScrcpyOptions, ScrcpyOptionsListEncoders, ScrcpyScrollController, ScrcpyVideoStream } from "../base/index.js";
|
|
4
|
+
import { ScrcpyDeviceMessageParsers } from "../base/index.js";
|
|
5
5
|
import type { ScrcpyBackOrScreenOnControlMessage, ScrcpyInjectTouchControlMessage, ScrcpySetClipboardControlMessage } from "../latest.js";
|
|
6
6
|
import type { Init } from "./impl/index.js";
|
|
7
7
|
export declare class ScrcpyOptions2_3<TVideo extends boolean> implements ScrcpyOptions<Init<TVideo>>, ScrcpyOptionsListEncoders {
|
|
@@ -56,6 +56,7 @@ export declare class ScrcpyOptions2_3<TVideo extends boolean> implements ScrcpyO
|
|
|
56
56
|
readonly value: Required<Init<TVideo>>;
|
|
57
57
|
get controlMessageTypes(): readonly ScrcpyControlMessageType[];
|
|
58
58
|
get clipboard(): ReadableStream<string> | undefined;
|
|
59
|
+
get deviceMessageParsers(): ScrcpyDeviceMessageParsers;
|
|
59
60
|
constructor(init: Init<TVideo>);
|
|
60
61
|
serialize(): string[];
|
|
61
62
|
setListDisplays(): void;
|
|
@@ -64,8 +65,6 @@ export declare class ScrcpyOptions2_3<TVideo extends boolean> implements ScrcpyO
|
|
|
64
65
|
parseEncoder(line: string): ScrcpyEncoder | undefined;
|
|
65
66
|
parseVideoStreamMetadata(stream: ReadableStream<Uint8Array>): MaybePromiseLike<ScrcpyVideoStream>;
|
|
66
67
|
parseAudioStreamMetadata(stream: ReadableStream<Uint8Array>): MaybePromiseLike<ScrcpyAudioStreamMetadata>;
|
|
67
|
-
parseDeviceMessage(id: number, stream: ExactReadable | AsyncExactReadable): Promise<void>;
|
|
68
|
-
endDeviceMessageStream(e?: unknown): void;
|
|
69
68
|
createMediaStreamTransformer(): TransformStream<Uint8Array, ScrcpyMediaStreamPacket>;
|
|
70
69
|
serializeInjectTouchControlMessage(message: ScrcpyInjectTouchControlMessage): Uint8Array;
|
|
71
70
|
serializeBackOrScreenOnControlMessage(message: ScrcpyBackOrScreenOnControlMessage): Uint8Array | undefined;
|
package/esm/2_3/options.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/2_3/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/2_3/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/E,OAAO,KAAK,EACR,yBAAyB,EACzB,wBAAwB,EACxB,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EACR,kCAAkC,EAClC,+BAA+B,EAC/B,gCAAgC,EACnC,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAmB5C,qBAAa,gBAAgB,CAAC,MAAM,SAAS,OAAO,CAChD,YAAW,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,yBAAyB;;IAEjE,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAY;IAEpC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvC,IAAI,mBAAmB,IAAI,SAAS,wBAAwB,EAAE,CAE7D;IAGD,IAAI,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,SAAS,CAElD;IAKD,IAAI,oBAAoB,+BAEvB;gBAEW,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IAkB9B,SAAS,IAAI,MAAM,EAAE;IAIrB,eAAe,IAAI,IAAI;IAIvB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD,eAAe;IAIf,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,gBAAgB,CAAC,iBAAiB,CAAC;IAItC,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,gBAAgB,CAAC,yBAAyB,CAAC;IAI9C,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,mCAAmC,CAC/B,OAAO,EAAE,gCAAgC,GAC1C,UAAU,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAM3C,sBAAsB,IAAI,sBAAsB;CAGnD;AAED,KAAK,KAAK,CAAC,MAAM,SAAS,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;AAElD,yBAAiB,gBAAgB,CAAC;IAC9B,KAAY,IAAI,CAAC,MAAM,SAAS,OAAO,GAAG,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;CACtE"}
|
package/esm/2_3/options.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ScrcpyDeviceMessageParsers } from "../base/index.js";
|
|
1
2
|
import { AckClipboardHandler, ClipboardStream, ControlMessageTypes, createMediaStreamTransformer, createScrollController, Defaults, parseAudioStreamMetadata, parseDisplay, parseEncoder, parseVideoStreamMetadata, serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, setListDisplays, setListEncoders, } from "./impl/index.js";
|
|
2
3
|
export class ScrcpyOptions2_3 {
|
|
3
4
|
static Defaults = Defaults;
|
|
@@ -10,14 +11,18 @@ export class ScrcpyOptions2_3 {
|
|
|
10
11
|
return this.#clipboard;
|
|
11
12
|
}
|
|
12
13
|
#ackClipboardHandler;
|
|
14
|
+
#deviceMessageParsers = new ScrcpyDeviceMessageParsers();
|
|
15
|
+
get deviceMessageParsers() {
|
|
16
|
+
return this.#deviceMessageParsers;
|
|
17
|
+
}
|
|
13
18
|
constructor(init) {
|
|
14
19
|
this.value = { ...Defaults, ...init };
|
|
15
20
|
if (this.value.videoSource === "camera") {
|
|
16
21
|
this.value.control = false;
|
|
17
22
|
}
|
|
18
23
|
if (this.value.control && this.value.clipboardAutosync) {
|
|
19
|
-
this.#clipboard = new ClipboardStream();
|
|
20
|
-
this.#ackClipboardHandler = new AckClipboardHandler();
|
|
24
|
+
this.#clipboard = this.#deviceMessageParsers.add(new ClipboardStream());
|
|
25
|
+
this.#ackClipboardHandler = this.#deviceMessageParsers.add(new AckClipboardHandler());
|
|
21
26
|
}
|
|
22
27
|
}
|
|
23
28
|
serialize() {
|
|
@@ -41,25 +46,6 @@ export class ScrcpyOptions2_3 {
|
|
|
41
46
|
parseAudioStreamMetadata(stream) {
|
|
42
47
|
return parseAudioStreamMetadata(stream, this.value);
|
|
43
48
|
}
|
|
44
|
-
async parseDeviceMessage(id, stream) {
|
|
45
|
-
if (await this.#clipboard?.parse(id, stream)) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
if (await this.#ackClipboardHandler?.parse(id, stream)) {
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
throw new Error("Unknown device message");
|
|
52
|
-
}
|
|
53
|
-
endDeviceMessageStream(e) {
|
|
54
|
-
if (e) {
|
|
55
|
-
this.#clipboard?.error(e);
|
|
56
|
-
this.#ackClipboardHandler?.error(e);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
this.#clipboard?.close();
|
|
60
|
-
this.#ackClipboardHandler?.close();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
49
|
createMediaStreamTransformer() {
|
|
64
50
|
return createMediaStreamTransformer(this.value);
|
|
65
51
|
}
|
package/esm/2_3/options.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/2_3/options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/2_3/options.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAQ9D,OAAO,EACH,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,4BAA4B,EAC5B,sBAAsB,EACtB,QAAQ,EACR,wBAAwB,EACxB,YAAY,EACZ,YAAY,EACZ,wBAAwB,EACxB,SAAS,EACT,qCAAqC,EACrC,kCAAkC,EAClC,eAAe,EACf,eAAe,GAClB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,OAAO,gBAAgB;IAGzB,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC;IAE3B,KAAK,CAAyB;IAEvC,IAAI,mBAAmB;QACnB,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAED,UAAU,CAA8B;IACxC,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,oBAAoB,CAAkC;IAEtD,qBAAqB,GAAG,IAAI,0BAA0B,EAAE,CAAC;IACzD,IAAI,oBAAoB;QACpB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACtC,CAAC;IAED,YAAY,IAAkB;QAC1B,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,EAAW,CAAC;QAE/C,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;QAC/B,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;YACrD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAC5C,IAAI,eAAe,EAAE,CACxB,CAAC;YAEF,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CACtD,IAAI,mBAAmB,EAAE,CAC5B,CAAC;QACN,CAAC;IACL,CAAC;IAED,SAAS;QACL,OAAO,SAAS,CAAgB,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED,eAAe;QACX,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,YAAY,CAAC,IAAY;QACrB,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,eAAe;QACX,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,YAAY,CAAC,IAAY;QACrB,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,wBAAwB,CACpB,MAAkC;QAElC,OAAO,wBAAwB,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,wBAAwB,CACpB,MAAkC;QAElC,OAAO,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,4BAA4B;QAIxB,OAAO,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,kCAAkC,CAC9B,OAAwC;QAExC,OAAO,kCAAkC,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,qCAAqC,CACjC,OAA2C;QAE3C,OAAO,qCAAqC,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,mCAAmC,CAC/B,OAAyC;QAEzC,OAAO,IAAI,CAAC,oBAAqB,CAAC,mCAAmC,CACjE,OAAO,CACV,CAAC;IACN,CAAC;IAED,sBAAsB;QAClB,OAAO,sBAAsB,EAAE,CAAC;IACpC,CAAC"}
|
|
@@ -11,8 +11,9 @@ export declare const UHidOutputDeviceMessage: import("@yume-chan/struct").Struct
|
|
|
11
11
|
export type UHidOutputDeviceMessage = StructValue<typeof UHidOutputDeviceMessage>;
|
|
12
12
|
export declare class UHidOutputStream extends PushReadableStream<UHidOutputDeviceMessage> implements ScrcpyDeviceMessageParser {
|
|
13
13
|
#private;
|
|
14
|
+
readonly id = 2;
|
|
14
15
|
constructor();
|
|
15
|
-
parse(
|
|
16
|
+
parse(_id: number, stream: AsyncExactReadable): Promise<undefined>;
|
|
16
17
|
close(): void;
|
|
17
18
|
error(e?: unknown): void;
|
|
18
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uhid-output-stream.d.ts","sourceRoot":"","sources":["../../../src/2_4/impl/uhid-output-stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGzE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAErE,eAAO,MAAM,uBAAuB;;;;;;GAMnC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,WAAW,CAC7C,OAAO,uBAAuB,CACjC,CAAC;AAEF,qBAAa,gBACT,SAAQ,kBAAkB,CAAC,uBAAuB,CAClD,YAAW,yBAAyB
|
|
1
|
+
{"version":3,"file":"uhid-output-stream.d.ts","sourceRoot":"","sources":["../../../src/2_4/impl/uhid-output-stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGzE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAErE,eAAO,MAAM,uBAAuB;;;;;;GAMnC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,WAAW,CAC7C,OAAO,uBAAuB,CACjC,CAAC;AAEF,qBAAa,gBACT,SAAQ,kBAAkB,CAAC,uBAAuB,CAClD,YAAW,yBAAyB;;IAIpC,QAAQ,CAAC,EAAE,KAAK;;IAUV,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC;IAKxE,KAAK;IAIL,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO;CAGpB"}
|
|
@@ -6,6 +6,7 @@ export const UHidOutputDeviceMessage = struct({
|
|
|
6
6
|
}, { littleEndian: false });
|
|
7
7
|
export class UHidOutputStream extends PushReadableStream {
|
|
8
8
|
#controller;
|
|
9
|
+
id = 2;
|
|
9
10
|
constructor() {
|
|
10
11
|
let controller;
|
|
11
12
|
super((controller_) => {
|
|
@@ -13,13 +14,9 @@ export class UHidOutputStream extends PushReadableStream {
|
|
|
13
14
|
});
|
|
14
15
|
this.#controller = controller;
|
|
15
16
|
}
|
|
16
|
-
async parse(
|
|
17
|
-
if (id !== 2) {
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
17
|
+
async parse(_id, stream) {
|
|
20
18
|
const message = await UHidOutputDeviceMessage.deserialize(stream);
|
|
21
19
|
await this.#controller.enqueue(message);
|
|
22
|
-
return true;
|
|
23
20
|
}
|
|
24
21
|
close() {
|
|
25
22
|
this.#controller.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uhid-output-stream.js","sourceRoot":"","sources":["../../../src/2_4/impl/uhid-output-stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAIxD,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CACzC;IACI,EAAE,EAAE,GAAG;IACP,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC;CACpB,EACD,EAAE,YAAY,EAAE,KAAK,EAAE,CAC1B,CAAC;AAMF,MAAM,OAAO,gBACT,SAAQ,kBAA2C;IAGnD,WAAW,CAAwD;
|
|
1
|
+
{"version":3,"file":"uhid-output-stream.js","sourceRoot":"","sources":["../../../src/2_4/impl/uhid-output-stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAIxD,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CACzC;IACI,EAAE,EAAE,GAAG;IACP,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC;CACpB,EACD,EAAE,YAAY,EAAE,KAAK,EAAE,CAC1B,CAAC;AAMF,MAAM,OAAO,gBACT,SAAQ,kBAA2C;IAGnD,WAAW,CAAwD;IAE1D,EAAE,GAAG,CAAC,CAAC;IAEhB;QACI,IAAI,UAAkE,CAAC;QACvE,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE;YAClB,UAAU,GAAG,WAAW,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,MAA0B;QAC/C,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAClE,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,CAAW;QACb,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;CACJ"}
|
package/esm/2_4/options.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { MaybePromiseLike } from "@yume-chan/async";
|
|
2
2
|
import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
|
|
3
|
-
import type { AsyncExactReadable, ExactReadable } from "@yume-chan/struct";
|
|
4
3
|
import type { ScrcpyAudioStreamMetadata, ScrcpyControlMessageType, ScrcpyDisplay, ScrcpyEncoder, ScrcpyMediaStreamPacket, ScrcpyOptions, ScrcpyOptionsListEncoders, ScrcpyScrollController, ScrcpyVideoStream } from "../base/index.js";
|
|
4
|
+
import { ScrcpyDeviceMessageParsers } from "../base/index.js";
|
|
5
5
|
import type { ScrcpyBackOrScreenOnControlMessage, ScrcpyInjectTouchControlMessage, ScrcpySetClipboardControlMessage, ScrcpyUHidCreateControlMessage, ScrcpyUHidOutputDeviceMessage } from "../latest.js";
|
|
6
6
|
import type { Init } from "./impl/index.js";
|
|
7
7
|
export declare class ScrcpyOptions2_4<TVideo extends boolean> implements ScrcpyOptions<Init<TVideo>>, ScrcpyOptionsListEncoders {
|
|
@@ -57,6 +57,7 @@ export declare class ScrcpyOptions2_4<TVideo extends boolean> implements ScrcpyO
|
|
|
57
57
|
get controlMessageTypes(): readonly ScrcpyControlMessageType[];
|
|
58
58
|
get clipboard(): ReadableStream<string> | undefined;
|
|
59
59
|
get uHidOutput(): ReadableStream<ScrcpyUHidOutputDeviceMessage> | undefined;
|
|
60
|
+
get deviceMessageParsers(): ScrcpyDeviceMessageParsers;
|
|
60
61
|
constructor(init: Init<TVideo>);
|
|
61
62
|
serialize(): string[];
|
|
62
63
|
setListDisplays(): void;
|
|
@@ -65,8 +66,6 @@ export declare class ScrcpyOptions2_4<TVideo extends boolean> implements ScrcpyO
|
|
|
65
66
|
parseEncoder(line: string): ScrcpyEncoder | undefined;
|
|
66
67
|
parseVideoStreamMetadata(stream: ReadableStream<Uint8Array>): MaybePromiseLike<ScrcpyVideoStream>;
|
|
67
68
|
parseAudioStreamMetadata(stream: ReadableStream<Uint8Array>): MaybePromiseLike<ScrcpyAudioStreamMetadata>;
|
|
68
|
-
parseDeviceMessage(id: number, stream: ExactReadable | AsyncExactReadable): Promise<void>;
|
|
69
|
-
endDeviceMessageStream(e?: unknown): void;
|
|
70
69
|
createMediaStreamTransformer(): TransformStream<Uint8Array, ScrcpyMediaStreamPacket>;
|
|
71
70
|
serializeInjectTouchControlMessage(message: ScrcpyInjectTouchControlMessage): Uint8Array;
|
|
72
71
|
serializeBackOrScreenOnControlMessage(message: ScrcpyBackOrScreenOnControlMessage): Uint8Array | undefined;
|
package/esm/2_4/options.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/2_4/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/2_4/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/E,OAAO,KAAK,EACR,yBAAyB,EACzB,wBAAwB,EACxB,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EACR,kCAAkC,EAClC,+BAA+B,EAC/B,gCAAgC,EAChC,8BAA8B,EAC9B,6BAA6B,EAChC,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAqB5C,qBAAa,gBAAgB,CAAC,MAAM,SAAS,OAAO,CAChD,YAAW,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,yBAAyB;;IAEjE,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAY;IAEpC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvC,IAAI,mBAAmB,IAAI,SAAS,wBAAwB,EAAE,CAE7D;IAGD,IAAI,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,SAAS,CAElD;IAKD,IAAI,UAAU,IACR,cAAc,CAAC,6BAA6B,CAAC,GAC7C,SAAS,CAEd;IAGD,IAAI,oBAAoB,+BAEvB;gBAEW,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IAwB9B,SAAS,IAAI,MAAM,EAAE;IAIrB,eAAe,IAAI,IAAI;IAIvB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD,eAAe;IAIf,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,gBAAgB,CAAC,iBAAiB,CAAC;IAItC,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,gBAAgB,CAAC,yBAAyB,CAAC;IAI9C,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,mCAAmC,CAC/B,OAAO,EAAE,gCAAgC,GAC1C,UAAU,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAM3C,sBAAsB,IAAI,sBAAsB;IAIhD,iCAAiC,CAC7B,OAAO,EAAE,8BAA8B,GACxC,UAAU;CAGhB;AAED,KAAK,KAAK,CAAC,MAAM,SAAS,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;AAElD,yBAAiB,gBAAgB,CAAC;IAC9B,KAAY,IAAI,CAAC,MAAM,SAAS,OAAO,GAAG,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;CACtE"}
|
package/esm/2_4/options.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ScrcpyDeviceMessageParsers } from "../base/index.js";
|
|
1
2
|
import { AckClipboardHandler, ClipboardStream, ControlMessageTypes, createMediaStreamTransformer, createScrollController, Defaults, parseAudioStreamMetadata, parseDisplay, parseEncoder, parseVideoStreamMetadata, serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, serializeUHidCreateControlMessage, setListDisplays, setListEncoders, UHidOutputStream, } from "./impl/index.js";
|
|
2
3
|
export class ScrcpyOptions2_4 {
|
|
3
4
|
static Defaults = Defaults;
|
|
@@ -14,6 +15,10 @@ export class ScrcpyOptions2_4 {
|
|
|
14
15
|
get uHidOutput() {
|
|
15
16
|
return this.#uHidOutput;
|
|
16
17
|
}
|
|
18
|
+
#deviceMessageParsers = new ScrcpyDeviceMessageParsers();
|
|
19
|
+
get deviceMessageParsers() {
|
|
20
|
+
return this.#deviceMessageParsers;
|
|
21
|
+
}
|
|
17
22
|
constructor(init) {
|
|
18
23
|
this.value = { ...Defaults, ...init };
|
|
19
24
|
if (this.value.videoSource === "camera") {
|
|
@@ -21,10 +26,10 @@ export class ScrcpyOptions2_4 {
|
|
|
21
26
|
}
|
|
22
27
|
if (this.value.control) {
|
|
23
28
|
if (this.value.clipboardAutosync) {
|
|
24
|
-
this.#clipboard = new ClipboardStream();
|
|
25
|
-
this.#ackClipboardHandler = new AckClipboardHandler();
|
|
29
|
+
this.#clipboard = this.#deviceMessageParsers.add(new ClipboardStream());
|
|
30
|
+
this.#ackClipboardHandler = this.#deviceMessageParsers.add(new AckClipboardHandler());
|
|
26
31
|
}
|
|
27
|
-
this.#uHidOutput = new UHidOutputStream();
|
|
32
|
+
this.#uHidOutput = this.#deviceMessageParsers.add(new UHidOutputStream());
|
|
28
33
|
}
|
|
29
34
|
}
|
|
30
35
|
serialize() {
|
|
@@ -48,30 +53,6 @@ export class ScrcpyOptions2_4 {
|
|
|
48
53
|
parseAudioStreamMetadata(stream) {
|
|
49
54
|
return parseAudioStreamMetadata(stream, this.value);
|
|
50
55
|
}
|
|
51
|
-
async parseDeviceMessage(id, stream) {
|
|
52
|
-
if (await this.#clipboard?.parse(id, stream)) {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
if (await this.#ackClipboardHandler?.parse(id, stream)) {
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
if (await this.#uHidOutput?.parse(id, stream)) {
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
throw new Error("Unknown device message");
|
|
62
|
-
}
|
|
63
|
-
endDeviceMessageStream(e) {
|
|
64
|
-
if (e) {
|
|
65
|
-
this.#clipboard?.error(e);
|
|
66
|
-
this.#ackClipboardHandler?.error(e);
|
|
67
|
-
this.#uHidOutput?.error(e);
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
this.#clipboard?.close();
|
|
71
|
-
this.#ackClipboardHandler?.close();
|
|
72
|
-
this.#uHidOutput?.close();
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
56
|
createMediaStreamTransformer() {
|
|
76
57
|
return createMediaStreamTransformer(this.value);
|
|
77
58
|
}
|
package/esm/2_4/options.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/2_4/options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/2_4/options.ts"],"names":[],"mappings":"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"}
|
package/esm/2_6/options.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { MaybePromiseLike } from "@yume-chan/async";
|
|
2
2
|
import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
|
|
3
|
-
import type { AsyncExactReadable, ExactReadable } from "@yume-chan/struct";
|
|
4
3
|
import type { ScrcpyAudioStreamMetadata, ScrcpyControlMessageType, ScrcpyDisplay, ScrcpyEncoder, ScrcpyMediaStreamPacket, ScrcpyOptions, ScrcpyOptionsListEncoders, ScrcpyScrollController, ScrcpyVideoStream } from "../base/index.js";
|
|
4
|
+
import { ScrcpyDeviceMessageParsers } from "../base/index.js";
|
|
5
5
|
import type { ScrcpyBackOrScreenOnControlMessage, ScrcpyInjectTouchControlMessage, ScrcpySetClipboardControlMessage, ScrcpyUHidCreateControlMessage, ScrcpyUHidOutputDeviceMessage } from "../latest.js";
|
|
6
6
|
import type { Init } from "./impl/index.js";
|
|
7
7
|
export declare class ScrcpyOptions2_6<TVideo extends boolean> implements ScrcpyOptions<Init<TVideo>>, ScrcpyOptionsListEncoders {
|
|
@@ -58,6 +58,7 @@ export declare class ScrcpyOptions2_6<TVideo extends boolean> implements ScrcpyO
|
|
|
58
58
|
get controlMessageTypes(): readonly ScrcpyControlMessageType[];
|
|
59
59
|
get clipboard(): ReadableStream<string> | undefined;
|
|
60
60
|
get uHidOutput(): ReadableStream<ScrcpyUHidOutputDeviceMessage> | undefined;
|
|
61
|
+
get deviceMessageParsers(): ScrcpyDeviceMessageParsers;
|
|
61
62
|
constructor(init: Init<TVideo>);
|
|
62
63
|
serialize(): string[];
|
|
63
64
|
setListDisplays(): void;
|
|
@@ -66,8 +67,6 @@ export declare class ScrcpyOptions2_6<TVideo extends boolean> implements ScrcpyO
|
|
|
66
67
|
parseEncoder(line: string): ScrcpyEncoder | undefined;
|
|
67
68
|
parseVideoStreamMetadata(stream: ReadableStream<Uint8Array>): MaybePromiseLike<ScrcpyVideoStream>;
|
|
68
69
|
parseAudioStreamMetadata(stream: ReadableStream<Uint8Array>): MaybePromiseLike<ScrcpyAudioStreamMetadata>;
|
|
69
|
-
parseDeviceMessage(id: number, stream: ExactReadable | AsyncExactReadable): Promise<void>;
|
|
70
|
-
endDeviceMessageStream(e?: unknown): void;
|
|
71
70
|
createMediaStreamTransformer(): TransformStream<Uint8Array, ScrcpyMediaStreamPacket>;
|
|
72
71
|
serializeInjectTouchControlMessage(message: ScrcpyInjectTouchControlMessage): Uint8Array;
|
|
73
72
|
serializeBackOrScreenOnControlMessage(message: ScrcpyBackOrScreenOnControlMessage): Uint8Array | undefined;
|
package/esm/2_6/options.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/2_6/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/2_6/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/E,OAAO,KAAK,EACR,yBAAyB,EACzB,wBAAwB,EACxB,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EACR,kCAAkC,EAClC,+BAA+B,EAC/B,gCAAgC,EAChC,8BAA8B,EAC9B,6BAA6B,EAChC,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAqB5C,qBAAa,gBAAgB,CAAC,MAAM,SAAS,OAAO,CAChD,YAAW,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,yBAAyB;;IAEjE,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAY;IAEpC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvC,IAAI,mBAAmB,IAAI,SAAS,wBAAwB,EAAE,CAE7D;IAGD,IAAI,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,SAAS,CAElD;IAKD,IAAI,UAAU,IACR,cAAc,CAAC,6BAA6B,CAAC,GAC7C,SAAS,CAEd;IAGD,IAAI,oBAAoB,+BAEvB;gBAEW,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IA4B9B,SAAS,IAAI,MAAM,EAAE;IAIrB,eAAe,IAAI,IAAI;IAIvB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD,eAAe;IAIf,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,gBAAgB,CAAC,iBAAiB,CAAC;IAItC,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,gBAAgB,CAAC,yBAAyB,CAAC;IAI9C,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,mCAAmC,CAC/B,OAAO,EAAE,gCAAgC,GAC1C,UAAU,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAM3C,sBAAsB,IAAI,sBAAsB;IAIhD,iCAAiC,CAC7B,OAAO,EAAE,8BAA8B,GACxC,UAAU;CAGhB;AAED,KAAK,KAAK,CAAC,MAAM,SAAS,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;AAElD,yBAAiB,gBAAgB,CAAC;IAC9B,KAAY,IAAI,CAAC,MAAM,SAAS,OAAO,GAAG,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;CACtE"}
|
package/esm/2_6/options.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ScrcpyDeviceMessageParsers } from "../base/index.js";
|
|
1
2
|
import { AckClipboardHandler, ClipboardStream, ControlMessageTypes, createMediaStreamTransformer, createScrollController, Defaults, parseAudioStreamMetadata, parseDisplay, parseEncoder, parseVideoStreamMetadata, serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, serializeUHidCreateControlMessage, setListDisplays, setListEncoders, UHidOutputStream, } from "./impl/index.js";
|
|
2
3
|
export class ScrcpyOptions2_6 {
|
|
3
4
|
static Defaults = Defaults;
|
|
@@ -14,6 +15,10 @@ export class ScrcpyOptions2_6 {
|
|
|
14
15
|
get uHidOutput() {
|
|
15
16
|
return this.#uHidOutput;
|
|
16
17
|
}
|
|
18
|
+
#deviceMessageParsers = new ScrcpyDeviceMessageParsers();
|
|
19
|
+
get deviceMessageParsers() {
|
|
20
|
+
return this.#deviceMessageParsers;
|
|
21
|
+
}
|
|
17
22
|
constructor(init) {
|
|
18
23
|
this.value = { ...Defaults, ...init };
|
|
19
24
|
if (this.value.videoSource === "camera") {
|
|
@@ -24,10 +29,10 @@ export class ScrcpyOptions2_6 {
|
|
|
24
29
|
}
|
|
25
30
|
if (this.value.control) {
|
|
26
31
|
if (this.value.clipboardAutosync) {
|
|
27
|
-
this.#clipboard = new ClipboardStream();
|
|
28
|
-
this.#ackClipboardHandler = new AckClipboardHandler();
|
|
32
|
+
this.#clipboard = this.#deviceMessageParsers.add(new ClipboardStream());
|
|
33
|
+
this.#ackClipboardHandler = this.#deviceMessageParsers.add(new AckClipboardHandler());
|
|
29
34
|
}
|
|
30
|
-
this.#uHidOutput = new UHidOutputStream();
|
|
35
|
+
this.#uHidOutput = this.#deviceMessageParsers.add(new UHidOutputStream());
|
|
31
36
|
}
|
|
32
37
|
}
|
|
33
38
|
serialize() {
|
|
@@ -51,25 +56,6 @@ export class ScrcpyOptions2_6 {
|
|
|
51
56
|
parseAudioStreamMetadata(stream) {
|
|
52
57
|
return parseAudioStreamMetadata(stream, this.value);
|
|
53
58
|
}
|
|
54
|
-
async parseDeviceMessage(id, stream) {
|
|
55
|
-
if (await this.#clipboard?.parse(id, stream)) {
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
if (await this.#ackClipboardHandler?.parse(id, stream)) {
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
throw new Error("Unknown device message");
|
|
62
|
-
}
|
|
63
|
-
endDeviceMessageStream(e) {
|
|
64
|
-
if (e) {
|
|
65
|
-
this.#clipboard?.error(e);
|
|
66
|
-
this.#ackClipboardHandler?.error(e);
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
this.#clipboard?.close();
|
|
70
|
-
this.#ackClipboardHandler?.close();
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
59
|
createMediaStreamTransformer() {
|
|
74
60
|
return createMediaStreamTransformer(this.value);
|
|
75
61
|
}
|
package/esm/2_6/options.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/2_6/options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/2_6/options.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { StructInit } from "@yume-chan/struct";
|
|
2
2
|
import type { ScrcpyUHidCreateControlMessage } from "../../latest.js";
|
|
3
3
|
export declare const UHidCreateControlMessage: import("@yume-chan/struct").Struct<{
|
|
4
|
-
type: import("@yume-chan/struct").
|
|
4
|
+
type: import("@yume-chan/struct").NumberField<number>;
|
|
5
5
|
id: import("@yume-chan/struct").NumberField<number>;
|
|
6
6
|
name: import("@yume-chan/struct").Field<string, string, never, string>;
|
|
7
7
|
data: import("@yume-chan/struct").Field<Uint8Array<ArrayBufferLike>, string, never, Uint8Array<ArrayBufferLike>>;
|
|
8
8
|
}, undefined, import("@yume-chan/struct").FieldsValue<{
|
|
9
|
-
type: import("@yume-chan/struct").
|
|
9
|
+
type: import("@yume-chan/struct").NumberField<number>;
|
|
10
10
|
id: import("@yume-chan/struct").NumberField<number>;
|
|
11
11
|
name: import("@yume-chan/struct").Field<string, string, never, string>;
|
|
12
12
|
data: import("@yume-chan/struct").Field<Uint8Array<ArrayBufferLike>, string, never, Uint8Array<ArrayBufferLike>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize-uhid-create.d.ts","sourceRoot":"","sources":["../../../src/2_7/impl/serialize-uhid-create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"serialize-uhid-create.d.ts","sourceRoot":"","sources":["../../../src/2_7/impl/serialize-uhid-create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAEtE,eAAO,MAAM,wBAAwB;;;;;;;;;;GAQpC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAC7C,OAAO,wBAAwB,CAClC,CAAC;AAEF,wBAAgB,iCAAiC,CAC7C,OAAO,EAAE,8BAA8B,+BAG1C"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { buffer, string, struct, u16, u8 } from "@yume-chan/struct";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
type: u8(ScrcpyControlMessageType.UHidCreate),
|
|
2
|
+
export const UHidCreateControlMessage = struct({
|
|
3
|
+
type: u8,
|
|
5
4
|
id: u16,
|
|
6
5
|
name: string(u8),
|
|
7
6
|
data: buffer(u16),
|
|
8
|
-
}, { littleEndian: false })
|
|
7
|
+
}, { littleEndian: false });
|
|
9
8
|
export function serializeUHidCreateControlMessage(message) {
|
|
10
9
|
return UHidCreateControlMessage.serialize(message);
|
|
11
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize-uhid-create.js","sourceRoot":"","sources":["../../../src/2_7/impl/serialize-uhid-create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"serialize-uhid-create.js","sourceRoot":"","sources":["../../../src/2_7/impl/serialize-uhid-create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAIpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAC1C;IACI,IAAI,EAAE,EAAE;IACR,EAAE,EAAE,GAAG;IACP,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC;CACpB,EACD,EAAE,YAAY,EAAE,KAAK,EAAE,CAC1B,CAAC;AAMF,MAAM,UAAU,iCAAiC,CAC7C,OAAuC;IAEvC,OAAO,wBAAwB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACvD,CAAC"}
|
package/esm/2_7/options.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { MaybePromiseLike } from "@yume-chan/async";
|
|
2
2
|
import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
|
|
3
|
-
import type { AsyncExactReadable, ExactReadable } from "@yume-chan/struct";
|
|
4
3
|
import type { ScrcpyAudioStreamMetadata, ScrcpyControlMessageType, ScrcpyDisplay, ScrcpyEncoder, ScrcpyMediaStreamPacket, ScrcpyOptions, ScrcpyOptionsListEncoders, ScrcpyScrollController, ScrcpyVideoStream } from "../base/index.js";
|
|
4
|
+
import { ScrcpyDeviceMessageParsers } from "../base/index.js";
|
|
5
5
|
import type { ScrcpyBackOrScreenOnControlMessage, ScrcpyInjectTouchControlMessage, ScrcpySetClipboardControlMessage, ScrcpyUHidCreateControlMessage, ScrcpyUHidOutputDeviceMessage } from "../latest.js";
|
|
6
6
|
import type { Init } from "./impl/index.js";
|
|
7
7
|
export declare class ScrcpyOptions2_7<TVideo extends boolean> implements ScrcpyOptions<Init<TVideo>>, ScrcpyOptionsListEncoders {
|
|
@@ -58,6 +58,7 @@ export declare class ScrcpyOptions2_7<TVideo extends boolean> implements ScrcpyO
|
|
|
58
58
|
get controlMessageTypes(): readonly ScrcpyControlMessageType[];
|
|
59
59
|
get clipboard(): ReadableStream<string> | undefined;
|
|
60
60
|
get uHidOutput(): ReadableStream<ScrcpyUHidOutputDeviceMessage> | undefined;
|
|
61
|
+
get deviceMessageParsers(): ScrcpyDeviceMessageParsers;
|
|
61
62
|
constructor(init: Init<TVideo>);
|
|
62
63
|
serialize(): string[];
|
|
63
64
|
setListDisplays(): void;
|
|
@@ -66,8 +67,6 @@ export declare class ScrcpyOptions2_7<TVideo extends boolean> implements ScrcpyO
|
|
|
66
67
|
parseEncoder(line: string): ScrcpyEncoder | undefined;
|
|
67
68
|
parseVideoStreamMetadata(stream: ReadableStream<Uint8Array>): MaybePromiseLike<ScrcpyVideoStream>;
|
|
68
69
|
parseAudioStreamMetadata(stream: ReadableStream<Uint8Array>): MaybePromiseLike<ScrcpyAudioStreamMetadata>;
|
|
69
|
-
parseDeviceMessage(id: number, stream: ExactReadable | AsyncExactReadable): Promise<void>;
|
|
70
|
-
endDeviceMessageStream(e?: unknown): void;
|
|
71
70
|
createMediaStreamTransformer(): TransformStream<Uint8Array, ScrcpyMediaStreamPacket>;
|
|
72
71
|
serializeInjectTouchControlMessage(message: ScrcpyInjectTouchControlMessage): Uint8Array;
|
|
73
72
|
serializeBackOrScreenOnControlMessage(message: ScrcpyBackOrScreenOnControlMessage): Uint8Array | undefined;
|
package/esm/2_7/options.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/2_7/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/2_7/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/E,OAAO,KAAK,EACR,yBAAyB,EACzB,wBAAwB,EACxB,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EACR,kCAAkC,EAClC,+BAA+B,EAC/B,gCAAgC,EAChC,8BAA8B,EAC9B,6BAA6B,EAChC,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAqB5C,qBAAa,gBAAgB,CAAC,MAAM,SAAS,OAAO,CAChD,YAAW,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,yBAAyB;;IAEjE,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAY;IAEpC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvC,IAAI,mBAAmB,IAAI,SAAS,wBAAwB,EAAE,CAE7D;IAGD,IAAI,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,SAAS,CAElD;IAKD,IAAI,UAAU,IACR,cAAc,CAAC,6BAA6B,CAAC,GAC7C,SAAS,CAEd;IAGD,IAAI,oBAAoB,+BAEvB;gBAEW,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IA4B9B,SAAS,IAAI,MAAM,EAAE;IAIrB,eAAe,IAAI,IAAI;IAIvB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD,eAAe;IAIf,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,gBAAgB,CAAC,iBAAiB,CAAC;IAItC,wBAAwB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,gBAAgB,CAAC,yBAAyB,CAAC;IAI9C,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,mCAAmC,CAC/B,OAAO,EAAE,gCAAgC,GAC1C,UAAU,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAM3C,sBAAsB,IAAI,sBAAsB;IAIhD,iCAAiC,CAC7B,OAAO,EAAE,8BAA8B,GACxC,UAAU;CAGhB;AAED,KAAK,KAAK,CAAC,MAAM,SAAS,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;AAElD,yBAAiB,gBAAgB,CAAC;IAC9B,KAAY,IAAI,CAAC,MAAM,SAAS,OAAO,GAAG,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;CACtE"}
|
package/esm/2_7/options.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ScrcpyDeviceMessageParsers } from "../base/index.js";
|
|
1
2
|
import { AckClipboardHandler, ClipboardStream, ControlMessageTypes, createMediaStreamTransformer, createScrollController, Defaults, parseAudioStreamMetadata, parseDisplay, parseEncoder, parseVideoStreamMetadata, serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, serializeUHidCreateControlMessage, setListDisplays, setListEncoders, UHidOutputStream, } from "./impl/index.js";
|
|
2
3
|
export class ScrcpyOptions2_7 {
|
|
3
4
|
static Defaults = Defaults;
|
|
@@ -14,6 +15,10 @@ export class ScrcpyOptions2_7 {
|
|
|
14
15
|
get uHidOutput() {
|
|
15
16
|
return this.#uHidOutput;
|
|
16
17
|
}
|
|
18
|
+
#deviceMessageParsers = new ScrcpyDeviceMessageParsers();
|
|
19
|
+
get deviceMessageParsers() {
|
|
20
|
+
return this.#deviceMessageParsers;
|
|
21
|
+
}
|
|
17
22
|
constructor(init) {
|
|
18
23
|
this.value = { ...Defaults, ...init };
|
|
19
24
|
if (this.value.videoSource === "camera") {
|
|
@@ -24,10 +29,10 @@ export class ScrcpyOptions2_7 {
|
|
|
24
29
|
}
|
|
25
30
|
if (this.value.control) {
|
|
26
31
|
if (this.value.clipboardAutosync) {
|
|
27
|
-
this.#clipboard = new ClipboardStream();
|
|
28
|
-
this.#ackClipboardHandler = new AckClipboardHandler();
|
|
32
|
+
this.#clipboard = this.#deviceMessageParsers.add(new ClipboardStream());
|
|
33
|
+
this.#ackClipboardHandler = this.#deviceMessageParsers.add(new AckClipboardHandler());
|
|
29
34
|
}
|
|
30
|
-
this.#uHidOutput = new UHidOutputStream();
|
|
35
|
+
this.#uHidOutput = this.#deviceMessageParsers.add(new UHidOutputStream());
|
|
31
36
|
}
|
|
32
37
|
}
|
|
33
38
|
serialize() {
|
|
@@ -51,25 +56,6 @@ export class ScrcpyOptions2_7 {
|
|
|
51
56
|
parseAudioStreamMetadata(stream) {
|
|
52
57
|
return parseAudioStreamMetadata(stream, this.value);
|
|
53
58
|
}
|
|
54
|
-
async parseDeviceMessage(id, stream) {
|
|
55
|
-
if (await this.#clipboard?.parse(id, stream)) {
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
if (await this.#ackClipboardHandler?.parse(id, stream)) {
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
throw new Error("Unknown device message");
|
|
62
|
-
}
|
|
63
|
-
endDeviceMessageStream(e) {
|
|
64
|
-
if (e) {
|
|
65
|
-
this.#clipboard?.error(e);
|
|
66
|
-
this.#ackClipboardHandler?.error(e);
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
this.#clipboard?.close();
|
|
70
|
-
this.#ackClipboardHandler?.close();
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
59
|
createMediaStreamTransformer() {
|
|
74
60
|
return createMediaStreamTransformer(this.value);
|
|
75
61
|
}
|
package/esm/2_7/options.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/2_7/options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/2_7/options.ts"],"names":[],"mappings":"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"}
|