diff --git a/libraries/scrcpy/src/1_21/impl/index.ts b/libraries/scrcpy/src/1_21/impl/index.ts index 3e9646ca..1d160ee2 100644 --- a/libraries/scrcpy/src/1_21/impl/index.ts +++ b/libraries/scrcpy/src/1_21/impl/index.ts @@ -7,4 +7,5 @@ export { AckClipboardDeviceMessage, AckClipboardHandler, SetClipboardControlMessage, + serializeSetClipboardControlMessage, } from "./set-clipboard.js"; diff --git a/libraries/scrcpy/src/1_21/impl/set-clipboard.ts b/libraries/scrcpy/src/1_21/impl/set-clipboard.ts index 13182104..a91c2d44 100644 --- a/libraries/scrcpy/src/1_21/impl/set-clipboard.ts +++ b/libraries/scrcpy/src/1_21/impl/set-clipboard.ts @@ -76,3 +76,16 @@ export class AckClipboardHandler implements ScrcpyDeviceMessageParser { ]; } } + +export function serializeSetClipboardControlMessage( + message: ScrcpySetClipboardControlMessage, + ackHandler: AckClipboardHandler | undefined, +): Uint8Array | [Uint8Array, Promise] { + if (!ackHandler) { + throw new Error( + "`serializeSetClipboardControlMessage` requires `control: true` option", + ); + } + + return ackHandler.serializeSetClipboardControlMessage(message); +} diff --git a/libraries/scrcpy/src/1_21/options.ts b/libraries/scrcpy/src/1_21/options.ts index 6d62d567..786c7cda 100644 --- a/libraries/scrcpy/src/1_21/options.ts +++ b/libraries/scrcpy/src/1_21/options.ts @@ -32,6 +32,7 @@ import { serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, + serializeSetClipboardControlMessage, setListDisplays, setListEncoders, } from "./impl/index.js"; @@ -62,10 +63,12 @@ export class ScrcpyOptions1_21 constructor(init: Init) { this.value = { ...Defaults, ...init }; - if (this.value.control && this.value.clipboardAutosync) { - this.#clipboard = this.#deviceMessageParsers.add( - new ClipboardStream(), - ); + if (this.value.control) { + if (this.value.clipboardAutosync) { + this.#clipboard = this.#deviceMessageParsers.add( + new ClipboardStream(), + ); + } this.#ackClipboardHandler = this.#deviceMessageParsers.add( new AckClipboardHandler(), @@ -121,22 +124,9 @@ export class ScrcpyOptions1_21 serializeSetClipboardControlMessage( message: ScrcpySetClipboardControlMessage, ): Uint8Array | [Uint8Array, Promise] { - if (!this.#ackClipboardHandler) { - if (!this.value.control) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `control: true`", - ); - } else if (!this.value.clipboardAutosync) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `clipboardAutosync: true`", - ); - } else { - throw new Error("unreachable"); - } - } - - return this.#ackClipboardHandler.serializeSetClipboardControlMessage( + return serializeSetClipboardControlMessage( message, + this.#ackClipboardHandler, ); } diff --git a/libraries/scrcpy/src/1_22/options.ts b/libraries/scrcpy/src/1_22/options.ts index 4692c346..7f0ff172 100644 --- a/libraries/scrcpy/src/1_22/options.ts +++ b/libraries/scrcpy/src/1_22/options.ts @@ -32,6 +32,7 @@ import { serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, + serializeSetClipboardControlMessage, setListDisplays, setListEncoders, } from "./impl/index.js"; @@ -62,10 +63,12 @@ export class ScrcpyOptions1_22 constructor(init: Init) { this.value = { ...Defaults, ...init }; - if (this.value.control && this.value.clipboardAutosync) { - this.#clipboard = this.#deviceMessageParsers.add( - new ClipboardStream(), - ); + if (this.value.control) { + if (this.value.clipboardAutosync) { + this.#clipboard = this.#deviceMessageParsers.add( + new ClipboardStream(), + ); + } this.#ackClipboardHandler = this.#deviceMessageParsers.add( new AckClipboardHandler(), @@ -121,22 +124,9 @@ export class ScrcpyOptions1_22 serializeSetClipboardControlMessage( message: ScrcpySetClipboardControlMessage, ): Uint8Array | [Uint8Array, Promise] { - if (!this.#ackClipboardHandler) { - if (!this.value.control) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `control: true`", - ); - } else if (!this.value.clipboardAutosync) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `clipboardAutosync: true`", - ); - } else { - throw new Error("unreachable"); - } - } - - return this.#ackClipboardHandler.serializeSetClipboardControlMessage( + return serializeSetClipboardControlMessage( message, + this.#ackClipboardHandler, ); } diff --git a/libraries/scrcpy/src/1_23/options.ts b/libraries/scrcpy/src/1_23/options.ts index 581986e0..769b89d8 100644 --- a/libraries/scrcpy/src/1_23/options.ts +++ b/libraries/scrcpy/src/1_23/options.ts @@ -32,6 +32,7 @@ import { serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, + serializeSetClipboardControlMessage, setListDisplays, setListEncoders, } from "./impl/index.js"; @@ -62,10 +63,12 @@ export class ScrcpyOptions1_23 constructor(init: Init) { this.value = { ...Defaults, ...init }; - if (this.value.control && this.value.clipboardAutosync) { - this.#clipboard = this.#deviceMessageParsers.add( - new ClipboardStream(), - ); + if (this.value.control) { + if (this.value.clipboardAutosync) { + this.#clipboard = this.#deviceMessageParsers.add( + new ClipboardStream(), + ); + } this.#ackClipboardHandler = this.#deviceMessageParsers.add( new AckClipboardHandler(), @@ -121,22 +124,9 @@ export class ScrcpyOptions1_23 serializeSetClipboardControlMessage( message: ScrcpySetClipboardControlMessage, ): Uint8Array | [Uint8Array, Promise] { - if (!this.#ackClipboardHandler) { - if (!this.value.control) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `control: true`", - ); - } else if (!this.value.clipboardAutosync) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `clipboardAutosync: true`", - ); - } else { - throw new Error("unreachable"); - } - } - - return this.#ackClipboardHandler.serializeSetClipboardControlMessage( + return serializeSetClipboardControlMessage( message, + this.#ackClipboardHandler, ); } diff --git a/libraries/scrcpy/src/1_24/options.ts b/libraries/scrcpy/src/1_24/options.ts index 24fbb143..948cf0bd 100644 --- a/libraries/scrcpy/src/1_24/options.ts +++ b/libraries/scrcpy/src/1_24/options.ts @@ -32,6 +32,7 @@ import { serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, + serializeSetClipboardControlMessage, setListDisplays, setListEncoders, } from "./impl/index.js"; @@ -62,10 +63,12 @@ export class ScrcpyOptions1_24 constructor(init: Init) { this.value = { ...Defaults, ...init }; - if (this.value.control && this.value.clipboardAutosync) { - this.#clipboard = this.#deviceMessageParsers.add( - new ClipboardStream(), - ); + if (this.value.control) { + if (this.value.clipboardAutosync) { + this.#clipboard = this.#deviceMessageParsers.add( + new ClipboardStream(), + ); + } this.#ackClipboardHandler = this.#deviceMessageParsers.add( new AckClipboardHandler(), @@ -121,22 +124,9 @@ export class ScrcpyOptions1_24 serializeSetClipboardControlMessage( message: ScrcpySetClipboardControlMessage, ): Uint8Array | [Uint8Array, Promise] { - if (!this.#ackClipboardHandler) { - if (!this.value.control) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `control: true`", - ); - } else if (!this.value.clipboardAutosync) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `clipboardAutosync: true`", - ); - } else { - throw new Error("unreachable"); - } - } - - return this.#ackClipboardHandler.serializeSetClipboardControlMessage( + return serializeSetClipboardControlMessage( message, + this.#ackClipboardHandler, ); } diff --git a/libraries/scrcpy/src/1_25/options.ts b/libraries/scrcpy/src/1_25/options.ts index 7bae7dd5..610c3dbc 100644 --- a/libraries/scrcpy/src/1_25/options.ts +++ b/libraries/scrcpy/src/1_25/options.ts @@ -32,6 +32,7 @@ import { serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, + serializeSetClipboardControlMessage, setListDisplays, setListEncoders, } from "./impl/index.js"; @@ -62,10 +63,12 @@ export class ScrcpyOptions1_25 constructor(init: Init) { this.value = { ...Defaults, ...init }; - if (this.value.control && this.value.clipboardAutosync) { - this.#clipboard = this.#deviceMessageParsers.add( - new ClipboardStream(), - ); + if (this.value.control) { + if (this.value.clipboardAutosync) { + this.#clipboard = this.#deviceMessageParsers.add( + new ClipboardStream(), + ); + } this.#ackClipboardHandler = this.#deviceMessageParsers.add( new AckClipboardHandler(), @@ -121,22 +124,9 @@ export class ScrcpyOptions1_25 serializeSetClipboardControlMessage( message: ScrcpySetClipboardControlMessage, ): Uint8Array | [Uint8Array, Promise] { - if (!this.#ackClipboardHandler) { - if (!this.value.control) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `control: true`", - ); - } else if (!this.value.clipboardAutosync) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `clipboardAutosync: true`", - ); - } else { - throw new Error("unreachable"); - } - } - - return this.#ackClipboardHandler.serializeSetClipboardControlMessage( + return serializeSetClipboardControlMessage( message, + this.#ackClipboardHandler, ); } diff --git a/libraries/scrcpy/src/2_0/options.ts b/libraries/scrcpy/src/2_0/options.ts index 4a81b792..c33bce82 100644 --- a/libraries/scrcpy/src/2_0/options.ts +++ b/libraries/scrcpy/src/2_0/options.ts @@ -33,6 +33,7 @@ import { serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, + serializeSetClipboardControlMessage, setListDisplays, setListEncoders, } from "./impl/index.js"; @@ -63,10 +64,12 @@ export class ScrcpyOptions2_0 constructor(init: Init) { this.value = { ...Defaults, ...init }; - if (this.value.control && this.value.clipboardAutosync) { - this.#clipboard = this.#deviceMessageParsers.add( - new ClipboardStream(), - ); + if (this.value.control) { + if (this.value.clipboardAutosync) { + this.#clipboard = this.#deviceMessageParsers.add( + new ClipboardStream(), + ); + } this.#ackClipboardHandler = this.#deviceMessageParsers.add( new AckClipboardHandler(), @@ -128,22 +131,9 @@ export class ScrcpyOptions2_0 serializeSetClipboardControlMessage( message: ScrcpySetClipboardControlMessage, ): Uint8Array | [Uint8Array, Promise] { - if (!this.#ackClipboardHandler) { - if (!this.value.control) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `control: true`", - ); - } else if (!this.value.clipboardAutosync) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `clipboardAutosync: true`", - ); - } else { - throw new Error("unreachable"); - } - } - - return this.#ackClipboardHandler.serializeSetClipboardControlMessage( + return serializeSetClipboardControlMessage( message, + this.#ackClipboardHandler, ); } diff --git a/libraries/scrcpy/src/2_1/options.ts b/libraries/scrcpy/src/2_1/options.ts index 76533c6b..75207779 100644 --- a/libraries/scrcpy/src/2_1/options.ts +++ b/libraries/scrcpy/src/2_1/options.ts @@ -33,6 +33,7 @@ import { serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, + serializeSetClipboardControlMessage, setListDisplays, setListEncoders, } from "./impl/index.js"; @@ -63,10 +64,12 @@ export class ScrcpyOptions2_1 constructor(init: Init) { this.value = { ...Defaults, ...init } as never; - if (this.value.control && this.value.clipboardAutosync) { - this.#clipboard = this.#deviceMessageParsers.add( - new ClipboardStream(), - ); + if (this.value.control) { + if (this.value.clipboardAutosync) { + this.#clipboard = this.#deviceMessageParsers.add( + new ClipboardStream(), + ); + } this.#ackClipboardHandler = this.#deviceMessageParsers.add( new AckClipboardHandler(), @@ -128,22 +131,9 @@ export class ScrcpyOptions2_1 serializeSetClipboardControlMessage( message: ScrcpySetClipboardControlMessage, ): Uint8Array | [Uint8Array, Promise] { - if (!this.#ackClipboardHandler) { - if (!this.value.control) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `control: true`", - ); - } else if (!this.value.clipboardAutosync) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `clipboardAutosync: true`", - ); - } else { - throw new Error("unreachable"); - } - } - - return this.#ackClipboardHandler.serializeSetClipboardControlMessage( + return serializeSetClipboardControlMessage( message, + this.#ackClipboardHandler, ); } diff --git a/libraries/scrcpy/src/2_2/options.ts b/libraries/scrcpy/src/2_2/options.ts index b3ea2a48..395bf382 100644 --- a/libraries/scrcpy/src/2_2/options.ts +++ b/libraries/scrcpy/src/2_2/options.ts @@ -33,6 +33,7 @@ import { serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, + serializeSetClipboardControlMessage, setListDisplays, setListEncoders, } from "./impl/index.js"; @@ -67,10 +68,12 @@ export class ScrcpyOptions2_2 this.value.control = false; } - if (this.value.control && this.value.clipboardAutosync) { - this.#clipboard = this.#deviceMessageParsers.add( - new ClipboardStream(), - ); + if (this.value.control) { + if (this.value.clipboardAutosync) { + this.#clipboard = this.#deviceMessageParsers.add( + new ClipboardStream(), + ); + } this.#ackClipboardHandler = this.#deviceMessageParsers.add( new AckClipboardHandler(), @@ -132,22 +135,9 @@ export class ScrcpyOptions2_2 serializeSetClipboardControlMessage( message: ScrcpySetClipboardControlMessage, ): Uint8Array | [Uint8Array, Promise] { - if (!this.#ackClipboardHandler) { - if (!this.value.control) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `control: true`", - ); - } else if (!this.value.clipboardAutosync) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `clipboardAutosync: true`", - ); - } else { - throw new Error("unreachable"); - } - } - - return this.#ackClipboardHandler.serializeSetClipboardControlMessage( + return serializeSetClipboardControlMessage( message, + this.#ackClipboardHandler, ); } diff --git a/libraries/scrcpy/src/2_3/options.ts b/libraries/scrcpy/src/2_3/options.ts index 3db8925f..09462b2b 100644 --- a/libraries/scrcpy/src/2_3/options.ts +++ b/libraries/scrcpy/src/2_3/options.ts @@ -33,6 +33,7 @@ import { serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, + serializeSetClipboardControlMessage, setListDisplays, setListEncoders, } from "./impl/index.js"; @@ -67,10 +68,12 @@ export class ScrcpyOptions2_3 this.value.control = false; } - if (this.value.control && this.value.clipboardAutosync) { - this.#clipboard = this.#deviceMessageParsers.add( - new ClipboardStream(), - ); + if (this.value.control) { + if (this.value.clipboardAutosync) { + this.#clipboard = this.#deviceMessageParsers.add( + new ClipboardStream(), + ); + } this.#ackClipboardHandler = this.#deviceMessageParsers.add( new AckClipboardHandler(), @@ -132,22 +135,9 @@ export class ScrcpyOptions2_3 serializeSetClipboardControlMessage( message: ScrcpySetClipboardControlMessage, ): Uint8Array | [Uint8Array, Promise] { - if (!this.#ackClipboardHandler) { - if (!this.value.control) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `control: true`", - ); - } else if (!this.value.clipboardAutosync) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `clipboardAutosync: true`", - ); - } else { - throw new Error("unreachable"); - } - } - - return this.#ackClipboardHandler.serializeSetClipboardControlMessage( + return serializeSetClipboardControlMessage( message, + this.#ackClipboardHandler, ); } diff --git a/libraries/scrcpy/src/2_4/options.ts b/libraries/scrcpy/src/2_4/options.ts index 5f0ecff9..08c7306d 100644 --- a/libraries/scrcpy/src/2_4/options.ts +++ b/libraries/scrcpy/src/2_4/options.ts @@ -35,6 +35,7 @@ import { serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, + serializeSetClipboardControlMessage, serializeUHidCreateControlMessage, setListDisplays, setListEncoders, @@ -83,12 +84,12 @@ export class ScrcpyOptions2_4 this.#clipboard = this.#deviceMessageParsers.add( new ClipboardStream(), ); - - this.#ackClipboardHandler = this.#deviceMessageParsers.add( - new AckClipboardHandler(), - ); } + this.#ackClipboardHandler = this.#deviceMessageParsers.add( + new AckClipboardHandler(), + ); + this.#uHidOutput = this.#deviceMessageParsers.add( new UHidOutputStream(), ); @@ -149,22 +150,9 @@ export class ScrcpyOptions2_4 serializeSetClipboardControlMessage( message: ScrcpySetClipboardControlMessage, ): Uint8Array | [Uint8Array, Promise] { - if (!this.#ackClipboardHandler) { - if (!this.value.control) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `control: true`", - ); - } else if (!this.value.clipboardAutosync) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `clipboardAutosync: true`", - ); - } else { - throw new Error("unreachable"); - } - } - - return this.#ackClipboardHandler.serializeSetClipboardControlMessage( + return serializeSetClipboardControlMessage( message, + this.#ackClipboardHandler, ); } diff --git a/libraries/scrcpy/src/2_6/options.ts b/libraries/scrcpy/src/2_6/options.ts index e8b1600b..ee32bbcd 100644 --- a/libraries/scrcpy/src/2_6/options.ts +++ b/libraries/scrcpy/src/2_6/options.ts @@ -35,6 +35,7 @@ import { serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, + serializeSetClipboardControlMessage, serializeUHidCreateControlMessage, setListDisplays, setListEncoders, @@ -87,12 +88,12 @@ export class ScrcpyOptions2_6 this.#clipboard = this.#deviceMessageParsers.add( new ClipboardStream(), ); - - this.#ackClipboardHandler = this.#deviceMessageParsers.add( - new AckClipboardHandler(), - ); } + this.#ackClipboardHandler = this.#deviceMessageParsers.add( + new AckClipboardHandler(), + ); + this.#uHidOutput = this.#deviceMessageParsers.add( new UHidOutputStream(), ); @@ -153,22 +154,9 @@ export class ScrcpyOptions2_6 serializeSetClipboardControlMessage( message: ScrcpySetClipboardControlMessage, ): Uint8Array | [Uint8Array, Promise] { - if (!this.#ackClipboardHandler) { - if (!this.value.control) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `control: true`", - ); - } else if (!this.value.clipboardAutosync) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `clipboardAutosync: true`", - ); - } else { - throw new Error("unreachable"); - } - } - - return this.#ackClipboardHandler.serializeSetClipboardControlMessage( + return serializeSetClipboardControlMessage( message, + this.#ackClipboardHandler, ); } diff --git a/libraries/scrcpy/src/2_7/options.ts b/libraries/scrcpy/src/2_7/options.ts index e2f2b896..b63c1170 100644 --- a/libraries/scrcpy/src/2_7/options.ts +++ b/libraries/scrcpy/src/2_7/options.ts @@ -35,6 +35,7 @@ import { serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, + serializeSetClipboardControlMessage, serializeUHidCreateControlMessage, setListDisplays, setListEncoders, @@ -87,12 +88,12 @@ export class ScrcpyOptions2_7 this.#clipboard = this.#deviceMessageParsers.add( new ClipboardStream(), ); - - this.#ackClipboardHandler = this.#deviceMessageParsers.add( - new AckClipboardHandler(), - ); } + this.#ackClipboardHandler = this.#deviceMessageParsers.add( + new AckClipboardHandler(), + ); + this.#uHidOutput = this.#deviceMessageParsers.add( new UHidOutputStream(), ); @@ -153,22 +154,9 @@ export class ScrcpyOptions2_7 serializeSetClipboardControlMessage( message: ScrcpySetClipboardControlMessage, ): Uint8Array | [Uint8Array, Promise] { - if (!this.#ackClipboardHandler) { - if (!this.value.control) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `control: true`", - ); - } else if (!this.value.clipboardAutosync) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `clipboardAutosync: true`", - ); - } else { - throw new Error("unreachable"); - } - } - - return this.#ackClipboardHandler.serializeSetClipboardControlMessage( + return serializeSetClipboardControlMessage( message, + this.#ackClipboardHandler, ); } diff --git a/libraries/scrcpy/src/3_0/options.ts b/libraries/scrcpy/src/3_0/options.ts index 1458342c..a5d1e1ee 100644 --- a/libraries/scrcpy/src/3_0/options.ts +++ b/libraries/scrcpy/src/3_0/options.ts @@ -35,6 +35,7 @@ import { serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, + serializeSetClipboardControlMessage, serializeUHidCreateControlMessage, setListDisplays, setListEncoders, @@ -87,12 +88,12 @@ export class ScrcpyOptions3_0 this.#clipboard = this.#deviceMessageParsers.add( new ClipboardStream(), ); - - this.#ackClipboardHandler = this.#deviceMessageParsers.add( - new AckClipboardHandler(), - ); } + this.#ackClipboardHandler = this.#deviceMessageParsers.add( + new AckClipboardHandler(), + ); + this.#uHidOutput = this.#deviceMessageParsers.add( new UHidOutputStream(), ); @@ -153,22 +154,9 @@ export class ScrcpyOptions3_0 serializeSetClipboardControlMessage( message: ScrcpySetClipboardControlMessage, ): Uint8Array | [Uint8Array, Promise] { - if (!this.#ackClipboardHandler) { - if (!this.value.control) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `control: true`", - ); - } else if (!this.value.clipboardAutosync) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `clipboardAutosync: true`", - ); - } else { - throw new Error("unreachable"); - } - } - - return this.#ackClipboardHandler.serializeSetClipboardControlMessage( + return serializeSetClipboardControlMessage( message, + this.#ackClipboardHandler, ); } diff --git a/libraries/scrcpy/src/3_1/options.ts b/libraries/scrcpy/src/3_1/options.ts index b235e856..7169cc10 100644 --- a/libraries/scrcpy/src/3_1/options.ts +++ b/libraries/scrcpy/src/3_1/options.ts @@ -35,6 +35,7 @@ import { serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, + serializeSetClipboardControlMessage, serializeUHidCreateControlMessage, setListDisplays, setListEncoders, @@ -87,12 +88,12 @@ export class ScrcpyOptions3_1 this.#clipboard = this.#deviceMessageParsers.add( new ClipboardStream(), ); - - this.#ackClipboardHandler = this.#deviceMessageParsers.add( - new AckClipboardHandler(), - ); } + this.#ackClipboardHandler = this.#deviceMessageParsers.add( + new AckClipboardHandler(), + ); + this.#uHidOutput = this.#deviceMessageParsers.add( new UHidOutputStream(), ); @@ -153,22 +154,9 @@ export class ScrcpyOptions3_1 serializeSetClipboardControlMessage( message: ScrcpySetClipboardControlMessage, ): Uint8Array | [Uint8Array, Promise] { - if (!this.#ackClipboardHandler) { - if (!this.value.control) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `control: true`", - ); - } else if (!this.value.clipboardAutosync) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `clipboardAutosync: true`", - ); - } else { - throw new Error("unreachable"); - } - } - - return this.#ackClipboardHandler.serializeSetClipboardControlMessage( + return serializeSetClipboardControlMessage( message, + this.#ackClipboardHandler, ); } diff --git a/libraries/scrcpy/src/3_2/options.ts b/libraries/scrcpy/src/3_2/options.ts index dfcc1727..7bd3cd82 100644 --- a/libraries/scrcpy/src/3_2/options.ts +++ b/libraries/scrcpy/src/3_2/options.ts @@ -35,6 +35,7 @@ import { serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, + serializeSetClipboardControlMessage, serializeUHidCreateControlMessage, setListDisplays, setListEncoders, @@ -87,12 +88,12 @@ export class ScrcpyOptions3_2 this.#clipboard = this.#deviceMessageParsers.add( new ClipboardStream(), ); - - this.#ackClipboardHandler = this.#deviceMessageParsers.add( - new AckClipboardHandler(), - ); } + this.#ackClipboardHandler = this.#deviceMessageParsers.add( + new AckClipboardHandler(), + ); + this.#uHidOutput = this.#deviceMessageParsers.add( new UHidOutputStream(), ); @@ -153,22 +154,9 @@ export class ScrcpyOptions3_2 serializeSetClipboardControlMessage( message: ScrcpySetClipboardControlMessage, ): Uint8Array | [Uint8Array, Promise] { - if (!this.#ackClipboardHandler) { - if (!this.value.control) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `control: true`", - ); - } else if (!this.value.clipboardAutosync) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `clipboardAutosync: true`", - ); - } else { - throw new Error("unreachable"); - } - } - - return this.#ackClipboardHandler.serializeSetClipboardControlMessage( + return serializeSetClipboardControlMessage( message, + this.#ackClipboardHandler, ); } diff --git a/libraries/scrcpy/src/3_3_1/options.ts b/libraries/scrcpy/src/3_3_1/options.ts index 360f5eeb..986c585f 100644 --- a/libraries/scrcpy/src/3_3_1/options.ts +++ b/libraries/scrcpy/src/3_3_1/options.ts @@ -35,6 +35,7 @@ import { serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, + serializeSetClipboardControlMessage, serializeUHidCreateControlMessage, setListDisplays, setListEncoders, @@ -87,12 +88,12 @@ export class ScrcpyOptions3_3_1 this.#clipboard = this.#deviceMessageParsers.add( new ClipboardStream(), ); - - this.#ackClipboardHandler = this.#deviceMessageParsers.add( - new AckClipboardHandler(), - ); } + this.#ackClipboardHandler = this.#deviceMessageParsers.add( + new AckClipboardHandler(), + ); + this.#uHidOutput = this.#deviceMessageParsers.add( new UHidOutputStream(), ); @@ -153,22 +154,9 @@ export class ScrcpyOptions3_3_1 serializeSetClipboardControlMessage( message: ScrcpySetClipboardControlMessage, ): Uint8Array | [Uint8Array, Promise] { - if (!this.#ackClipboardHandler) { - if (!this.value.control) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `control: true`", - ); - } else if (!this.value.clipboardAutosync) { - throw new Error( - "`serializeSetClipboardControlMessage` requires `clipboardAutosync: true`", - ); - } else { - throw new Error("unreachable"); - } - } - - return this.#ackClipboardHandler.serializeSetClipboardControlMessage( + return serializeSetClipboardControlMessage( message, + this.#ackClipboardHandler, ); }