Loading libraries/scrcpy/src/options/1_16/options.ts +11 −8 Original line number Diff line number Diff line Loading @@ -120,18 +120,21 @@ export class ScrcpyOptions1_16 extends ScrcpyOptions<ScrcpyOptionsInit1_16> { return SCRCPY_CONTROL_MESSAGE_TYPES_1_16; } #clipboardController!: PushReadableStreamController<string>; #clipboard: ReadableStream<string>; #clipboardController: PushReadableStreamController<string> | undefined; #clipboard: ReadableStream<string> | undefined; override get clipboard() { return this.#clipboard; } constructor(init: ScrcpyOptionsInit1_16) { super(ScrcpyOptions0_00, init, ScrcpyOptions1_16.DEFAULTS); if (this.value.control) { this.#clipboard = new PushReadableStream<string>((controller) => { this.#clipboardController = controller; }); } } serialize(): string[] { return ScrcpyOptions1_16.serialize( Loading Loading @@ -181,7 +184,7 @@ export class ScrcpyOptions1_16 extends ScrcpyOptions<ScrcpyOptionsInit1_16> { async #parseClipboardMessage(stream: AsyncExactReadable) { const message = await ScrcpyClipboardDeviceMessage.deserialize(stream); await this.#clipboardController.enqueue(message.content); await this.#clipboardController?.enqueue(message.content); } override async parseDeviceMessage( Loading @@ -200,9 +203,9 @@ export class ScrcpyOptions1_16 extends ScrcpyOptions<ScrcpyOptionsInit1_16> { override endDeviceMessageStream(e?: unknown): void { if (e) { this.#clipboardController.error(e); this.#clipboardController?.error(e); } else { this.#clipboardController.close(); this.#clipboardController?.close(); } } Loading libraries/scrcpy/src/options/1_21.ts +9 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ import { Struct, string, u32, u64, u8 } from "@yume-chan/struct"; import type { ScrcpySetClipboardControlMessage } from "../control/index.js"; import type { ReadableStream } from "@yume-chan/stream-extra"; import type { ScrcpyOptionsInit1_18 } from "./1_18.js"; import { ScrcpyOptions1_18 } from "./1_18.js"; import { ScrcpyOptions, toScrcpyOptionValue } from "./types.js"; Loading Loading @@ -74,6 +75,14 @@ export class ScrcpyOptions1_21 extends ScrcpyOptions<ScrcpyOptionsInit1_21> { #clipboardAck = new Map<bigint, PromiseResolver<void>>(); override get clipboard(): ReadableStream<string> | undefined { if (this.value.clipboardAutosync) { return super.clipboard; } else { return undefined; } } constructor(init: ScrcpyOptionsInit1_21) { super(ScrcpyOptions1_18, init, ScrcpyOptions1_21.DEFAULTS); } Loading libraries/scrcpy/src/options/types.ts +1 −1 Original line number Diff line number Diff line Loading @@ -77,7 +77,7 @@ export abstract class ScrcpyOptions<T extends object> { readonly value: Required<T>; get clipboard(): ReadableStream<string> { get clipboard(): ReadableStream<string> | undefined { return this.#base.clipboard; } Loading Loading
libraries/scrcpy/src/options/1_16/options.ts +11 −8 Original line number Diff line number Diff line Loading @@ -120,18 +120,21 @@ export class ScrcpyOptions1_16 extends ScrcpyOptions<ScrcpyOptionsInit1_16> { return SCRCPY_CONTROL_MESSAGE_TYPES_1_16; } #clipboardController!: PushReadableStreamController<string>; #clipboard: ReadableStream<string>; #clipboardController: PushReadableStreamController<string> | undefined; #clipboard: ReadableStream<string> | undefined; override get clipboard() { return this.#clipboard; } constructor(init: ScrcpyOptionsInit1_16) { super(ScrcpyOptions0_00, init, ScrcpyOptions1_16.DEFAULTS); if (this.value.control) { this.#clipboard = new PushReadableStream<string>((controller) => { this.#clipboardController = controller; }); } } serialize(): string[] { return ScrcpyOptions1_16.serialize( Loading Loading @@ -181,7 +184,7 @@ export class ScrcpyOptions1_16 extends ScrcpyOptions<ScrcpyOptionsInit1_16> { async #parseClipboardMessage(stream: AsyncExactReadable) { const message = await ScrcpyClipboardDeviceMessage.deserialize(stream); await this.#clipboardController.enqueue(message.content); await this.#clipboardController?.enqueue(message.content); } override async parseDeviceMessage( Loading @@ -200,9 +203,9 @@ export class ScrcpyOptions1_16 extends ScrcpyOptions<ScrcpyOptionsInit1_16> { override endDeviceMessageStream(e?: unknown): void { if (e) { this.#clipboardController.error(e); this.#clipboardController?.error(e); } else { this.#clipboardController.close(); this.#clipboardController?.close(); } } Loading
libraries/scrcpy/src/options/1_21.ts +9 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ import { Struct, string, u32, u64, u8 } from "@yume-chan/struct"; import type { ScrcpySetClipboardControlMessage } from "../control/index.js"; import type { ReadableStream } from "@yume-chan/stream-extra"; import type { ScrcpyOptionsInit1_18 } from "./1_18.js"; import { ScrcpyOptions1_18 } from "./1_18.js"; import { ScrcpyOptions, toScrcpyOptionValue } from "./types.js"; Loading Loading @@ -74,6 +75,14 @@ export class ScrcpyOptions1_21 extends ScrcpyOptions<ScrcpyOptionsInit1_21> { #clipboardAck = new Map<bigint, PromiseResolver<void>>(); override get clipboard(): ReadableStream<string> | undefined { if (this.value.clipboardAutosync) { return super.clipboard; } else { return undefined; } } constructor(init: ScrcpyOptionsInit1_21) { super(ScrcpyOptions1_18, init, ScrcpyOptions1_21.DEFAULTS); } Loading
libraries/scrcpy/src/options/types.ts +1 −1 Original line number Diff line number Diff line Loading @@ -77,7 +77,7 @@ export abstract class ScrcpyOptions<T extends object> { readonly value: Required<T>; get clipboard(): ReadableStream<string> { get clipboard(): ReadableStream<string> | undefined { return this.#base.clipboard; } Loading