mirror of
https://github.com/yume-chan/ya-webadb.git
synced 2025-10-03 09:49:24 +02:00
fix(scrcpy): ack clipboard handler should be enabled as long as control
is enabled
it shouldn't be affected by `clipboardAutosync` option
This commit is contained in:
parent
4b98c1ba19
commit
443686751a
18 changed files with 144 additions and 304 deletions
|
@ -7,4 +7,5 @@ export {
|
||||||
AckClipboardDeviceMessage,
|
AckClipboardDeviceMessage,
|
||||||
AckClipboardHandler,
|
AckClipboardHandler,
|
||||||
SetClipboardControlMessage,
|
SetClipboardControlMessage,
|
||||||
|
serializeSetClipboardControlMessage,
|
||||||
} from "./set-clipboard.js";
|
} from "./set-clipboard.js";
|
||||||
|
|
|
@ -76,3 +76,16 @@ export class AckClipboardHandler implements ScrcpyDeviceMessageParser {
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function serializeSetClipboardControlMessage(
|
||||||
|
message: ScrcpySetClipboardControlMessage,
|
||||||
|
ackHandler: AckClipboardHandler | undefined,
|
||||||
|
): Uint8Array | [Uint8Array, Promise<void>] {
|
||||||
|
if (!ackHandler) {
|
||||||
|
throw new Error(
|
||||||
|
"`serializeSetClipboardControlMessage` requires `control: true` option",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ackHandler.serializeSetClipboardControlMessage(message);
|
||||||
|
}
|
||||||
|
|
|
@ -32,6 +32,7 @@ import {
|
||||||
serialize,
|
serialize,
|
||||||
serializeBackOrScreenOnControlMessage,
|
serializeBackOrScreenOnControlMessage,
|
||||||
serializeInjectTouchControlMessage,
|
serializeInjectTouchControlMessage,
|
||||||
|
serializeSetClipboardControlMessage,
|
||||||
setListDisplays,
|
setListDisplays,
|
||||||
setListEncoders,
|
setListEncoders,
|
||||||
} from "./impl/index.js";
|
} from "./impl/index.js";
|
||||||
|
@ -62,10 +63,12 @@ export class ScrcpyOptions1_21
|
||||||
constructor(init: Init) {
|
constructor(init: Init) {
|
||||||
this.value = { ...Defaults, ...init };
|
this.value = { ...Defaults, ...init };
|
||||||
|
|
||||||
if (this.value.control && this.value.clipboardAutosync) {
|
if (this.value.control) {
|
||||||
this.#clipboard = this.#deviceMessageParsers.add(
|
if (this.value.clipboardAutosync) {
|
||||||
new ClipboardStream(),
|
this.#clipboard = this.#deviceMessageParsers.add(
|
||||||
);
|
new ClipboardStream(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
||||||
new AckClipboardHandler(),
|
new AckClipboardHandler(),
|
||||||
|
@ -121,22 +124,9 @@ export class ScrcpyOptions1_21
|
||||||
serializeSetClipboardControlMessage(
|
serializeSetClipboardControlMessage(
|
||||||
message: ScrcpySetClipboardControlMessage,
|
message: ScrcpySetClipboardControlMessage,
|
||||||
): Uint8Array | [Uint8Array, Promise<void>] {
|
): Uint8Array | [Uint8Array, Promise<void>] {
|
||||||
if (!this.#ackClipboardHandler) {
|
return serializeSetClipboardControlMessage(
|
||||||
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(
|
|
||||||
message,
|
message,
|
||||||
|
this.#ackClipboardHandler,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@ import {
|
||||||
serialize,
|
serialize,
|
||||||
serializeBackOrScreenOnControlMessage,
|
serializeBackOrScreenOnControlMessage,
|
||||||
serializeInjectTouchControlMessage,
|
serializeInjectTouchControlMessage,
|
||||||
|
serializeSetClipboardControlMessage,
|
||||||
setListDisplays,
|
setListDisplays,
|
||||||
setListEncoders,
|
setListEncoders,
|
||||||
} from "./impl/index.js";
|
} from "./impl/index.js";
|
||||||
|
@ -62,10 +63,12 @@ export class ScrcpyOptions1_22
|
||||||
constructor(init: Init) {
|
constructor(init: Init) {
|
||||||
this.value = { ...Defaults, ...init };
|
this.value = { ...Defaults, ...init };
|
||||||
|
|
||||||
if (this.value.control && this.value.clipboardAutosync) {
|
if (this.value.control) {
|
||||||
this.#clipboard = this.#deviceMessageParsers.add(
|
if (this.value.clipboardAutosync) {
|
||||||
new ClipboardStream(),
|
this.#clipboard = this.#deviceMessageParsers.add(
|
||||||
);
|
new ClipboardStream(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
||||||
new AckClipboardHandler(),
|
new AckClipboardHandler(),
|
||||||
|
@ -121,22 +124,9 @@ export class ScrcpyOptions1_22
|
||||||
serializeSetClipboardControlMessage(
|
serializeSetClipboardControlMessage(
|
||||||
message: ScrcpySetClipboardControlMessage,
|
message: ScrcpySetClipboardControlMessage,
|
||||||
): Uint8Array | [Uint8Array, Promise<void>] {
|
): Uint8Array | [Uint8Array, Promise<void>] {
|
||||||
if (!this.#ackClipboardHandler) {
|
return serializeSetClipboardControlMessage(
|
||||||
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(
|
|
||||||
message,
|
message,
|
||||||
|
this.#ackClipboardHandler,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@ import {
|
||||||
serialize,
|
serialize,
|
||||||
serializeBackOrScreenOnControlMessage,
|
serializeBackOrScreenOnControlMessage,
|
||||||
serializeInjectTouchControlMessage,
|
serializeInjectTouchControlMessage,
|
||||||
|
serializeSetClipboardControlMessage,
|
||||||
setListDisplays,
|
setListDisplays,
|
||||||
setListEncoders,
|
setListEncoders,
|
||||||
} from "./impl/index.js";
|
} from "./impl/index.js";
|
||||||
|
@ -62,10 +63,12 @@ export class ScrcpyOptions1_23
|
||||||
constructor(init: Init) {
|
constructor(init: Init) {
|
||||||
this.value = { ...Defaults, ...init };
|
this.value = { ...Defaults, ...init };
|
||||||
|
|
||||||
if (this.value.control && this.value.clipboardAutosync) {
|
if (this.value.control) {
|
||||||
this.#clipboard = this.#deviceMessageParsers.add(
|
if (this.value.clipboardAutosync) {
|
||||||
new ClipboardStream(),
|
this.#clipboard = this.#deviceMessageParsers.add(
|
||||||
);
|
new ClipboardStream(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
||||||
new AckClipboardHandler(),
|
new AckClipboardHandler(),
|
||||||
|
@ -121,22 +124,9 @@ export class ScrcpyOptions1_23
|
||||||
serializeSetClipboardControlMessage(
|
serializeSetClipboardControlMessage(
|
||||||
message: ScrcpySetClipboardControlMessage,
|
message: ScrcpySetClipboardControlMessage,
|
||||||
): Uint8Array | [Uint8Array, Promise<void>] {
|
): Uint8Array | [Uint8Array, Promise<void>] {
|
||||||
if (!this.#ackClipboardHandler) {
|
return serializeSetClipboardControlMessage(
|
||||||
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(
|
|
||||||
message,
|
message,
|
||||||
|
this.#ackClipboardHandler,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@ import {
|
||||||
serialize,
|
serialize,
|
||||||
serializeBackOrScreenOnControlMessage,
|
serializeBackOrScreenOnControlMessage,
|
||||||
serializeInjectTouchControlMessage,
|
serializeInjectTouchControlMessage,
|
||||||
|
serializeSetClipboardControlMessage,
|
||||||
setListDisplays,
|
setListDisplays,
|
||||||
setListEncoders,
|
setListEncoders,
|
||||||
} from "./impl/index.js";
|
} from "./impl/index.js";
|
||||||
|
@ -62,10 +63,12 @@ export class ScrcpyOptions1_24
|
||||||
constructor(init: Init) {
|
constructor(init: Init) {
|
||||||
this.value = { ...Defaults, ...init };
|
this.value = { ...Defaults, ...init };
|
||||||
|
|
||||||
if (this.value.control && this.value.clipboardAutosync) {
|
if (this.value.control) {
|
||||||
this.#clipboard = this.#deviceMessageParsers.add(
|
if (this.value.clipboardAutosync) {
|
||||||
new ClipboardStream(),
|
this.#clipboard = this.#deviceMessageParsers.add(
|
||||||
);
|
new ClipboardStream(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
||||||
new AckClipboardHandler(),
|
new AckClipboardHandler(),
|
||||||
|
@ -121,22 +124,9 @@ export class ScrcpyOptions1_24
|
||||||
serializeSetClipboardControlMessage(
|
serializeSetClipboardControlMessage(
|
||||||
message: ScrcpySetClipboardControlMessage,
|
message: ScrcpySetClipboardControlMessage,
|
||||||
): Uint8Array | [Uint8Array, Promise<void>] {
|
): Uint8Array | [Uint8Array, Promise<void>] {
|
||||||
if (!this.#ackClipboardHandler) {
|
return serializeSetClipboardControlMessage(
|
||||||
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(
|
|
||||||
message,
|
message,
|
||||||
|
this.#ackClipboardHandler,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@ import {
|
||||||
serialize,
|
serialize,
|
||||||
serializeBackOrScreenOnControlMessage,
|
serializeBackOrScreenOnControlMessage,
|
||||||
serializeInjectTouchControlMessage,
|
serializeInjectTouchControlMessage,
|
||||||
|
serializeSetClipboardControlMessage,
|
||||||
setListDisplays,
|
setListDisplays,
|
||||||
setListEncoders,
|
setListEncoders,
|
||||||
} from "./impl/index.js";
|
} from "./impl/index.js";
|
||||||
|
@ -62,10 +63,12 @@ export class ScrcpyOptions1_25
|
||||||
constructor(init: Init) {
|
constructor(init: Init) {
|
||||||
this.value = { ...Defaults, ...init };
|
this.value = { ...Defaults, ...init };
|
||||||
|
|
||||||
if (this.value.control && this.value.clipboardAutosync) {
|
if (this.value.control) {
|
||||||
this.#clipboard = this.#deviceMessageParsers.add(
|
if (this.value.clipboardAutosync) {
|
||||||
new ClipboardStream(),
|
this.#clipboard = this.#deviceMessageParsers.add(
|
||||||
);
|
new ClipboardStream(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
||||||
new AckClipboardHandler(),
|
new AckClipboardHandler(),
|
||||||
|
@ -121,22 +124,9 @@ export class ScrcpyOptions1_25
|
||||||
serializeSetClipboardControlMessage(
|
serializeSetClipboardControlMessage(
|
||||||
message: ScrcpySetClipboardControlMessage,
|
message: ScrcpySetClipboardControlMessage,
|
||||||
): Uint8Array | [Uint8Array, Promise<void>] {
|
): Uint8Array | [Uint8Array, Promise<void>] {
|
||||||
if (!this.#ackClipboardHandler) {
|
return serializeSetClipboardControlMessage(
|
||||||
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(
|
|
||||||
message,
|
message,
|
||||||
|
this.#ackClipboardHandler,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,7 @@ import {
|
||||||
serialize,
|
serialize,
|
||||||
serializeBackOrScreenOnControlMessage,
|
serializeBackOrScreenOnControlMessage,
|
||||||
serializeInjectTouchControlMessage,
|
serializeInjectTouchControlMessage,
|
||||||
|
serializeSetClipboardControlMessage,
|
||||||
setListDisplays,
|
setListDisplays,
|
||||||
setListEncoders,
|
setListEncoders,
|
||||||
} from "./impl/index.js";
|
} from "./impl/index.js";
|
||||||
|
@ -63,10 +64,12 @@ export class ScrcpyOptions2_0
|
||||||
constructor(init: Init) {
|
constructor(init: Init) {
|
||||||
this.value = { ...Defaults, ...init };
|
this.value = { ...Defaults, ...init };
|
||||||
|
|
||||||
if (this.value.control && this.value.clipboardAutosync) {
|
if (this.value.control) {
|
||||||
this.#clipboard = this.#deviceMessageParsers.add(
|
if (this.value.clipboardAutosync) {
|
||||||
new ClipboardStream(),
|
this.#clipboard = this.#deviceMessageParsers.add(
|
||||||
);
|
new ClipboardStream(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
||||||
new AckClipboardHandler(),
|
new AckClipboardHandler(),
|
||||||
|
@ -128,22 +131,9 @@ export class ScrcpyOptions2_0
|
||||||
serializeSetClipboardControlMessage(
|
serializeSetClipboardControlMessage(
|
||||||
message: ScrcpySetClipboardControlMessage,
|
message: ScrcpySetClipboardControlMessage,
|
||||||
): Uint8Array | [Uint8Array, Promise<void>] {
|
): Uint8Array | [Uint8Array, Promise<void>] {
|
||||||
if (!this.#ackClipboardHandler) {
|
return serializeSetClipboardControlMessage(
|
||||||
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(
|
|
||||||
message,
|
message,
|
||||||
|
this.#ackClipboardHandler,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,7 @@ import {
|
||||||
serialize,
|
serialize,
|
||||||
serializeBackOrScreenOnControlMessage,
|
serializeBackOrScreenOnControlMessage,
|
||||||
serializeInjectTouchControlMessage,
|
serializeInjectTouchControlMessage,
|
||||||
|
serializeSetClipboardControlMessage,
|
||||||
setListDisplays,
|
setListDisplays,
|
||||||
setListEncoders,
|
setListEncoders,
|
||||||
} from "./impl/index.js";
|
} from "./impl/index.js";
|
||||||
|
@ -63,10 +64,12 @@ export class ScrcpyOptions2_1<TVideo extends boolean>
|
||||||
constructor(init: Init<TVideo>) {
|
constructor(init: Init<TVideo>) {
|
||||||
this.value = { ...Defaults, ...init } as never;
|
this.value = { ...Defaults, ...init } as never;
|
||||||
|
|
||||||
if (this.value.control && this.value.clipboardAutosync) {
|
if (this.value.control) {
|
||||||
this.#clipboard = this.#deviceMessageParsers.add(
|
if (this.value.clipboardAutosync) {
|
||||||
new ClipboardStream(),
|
this.#clipboard = this.#deviceMessageParsers.add(
|
||||||
);
|
new ClipboardStream(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
||||||
new AckClipboardHandler(),
|
new AckClipboardHandler(),
|
||||||
|
@ -128,22 +131,9 @@ export class ScrcpyOptions2_1<TVideo extends boolean>
|
||||||
serializeSetClipboardControlMessage(
|
serializeSetClipboardControlMessage(
|
||||||
message: ScrcpySetClipboardControlMessage,
|
message: ScrcpySetClipboardControlMessage,
|
||||||
): Uint8Array | [Uint8Array, Promise<void>] {
|
): Uint8Array | [Uint8Array, Promise<void>] {
|
||||||
if (!this.#ackClipboardHandler) {
|
return serializeSetClipboardControlMessage(
|
||||||
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(
|
|
||||||
message,
|
message,
|
||||||
|
this.#ackClipboardHandler,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,7 @@ import {
|
||||||
serialize,
|
serialize,
|
||||||
serializeBackOrScreenOnControlMessage,
|
serializeBackOrScreenOnControlMessage,
|
||||||
serializeInjectTouchControlMessage,
|
serializeInjectTouchControlMessage,
|
||||||
|
serializeSetClipboardControlMessage,
|
||||||
setListDisplays,
|
setListDisplays,
|
||||||
setListEncoders,
|
setListEncoders,
|
||||||
} from "./impl/index.js";
|
} from "./impl/index.js";
|
||||||
|
@ -67,10 +68,12 @@ export class ScrcpyOptions2_2<TVideo extends boolean>
|
||||||
this.value.control = false;
|
this.value.control = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.value.control && this.value.clipboardAutosync) {
|
if (this.value.control) {
|
||||||
this.#clipboard = this.#deviceMessageParsers.add(
|
if (this.value.clipboardAutosync) {
|
||||||
new ClipboardStream(),
|
this.#clipboard = this.#deviceMessageParsers.add(
|
||||||
);
|
new ClipboardStream(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
||||||
new AckClipboardHandler(),
|
new AckClipboardHandler(),
|
||||||
|
@ -132,22 +135,9 @@ export class ScrcpyOptions2_2<TVideo extends boolean>
|
||||||
serializeSetClipboardControlMessage(
|
serializeSetClipboardControlMessage(
|
||||||
message: ScrcpySetClipboardControlMessage,
|
message: ScrcpySetClipboardControlMessage,
|
||||||
): Uint8Array | [Uint8Array, Promise<void>] {
|
): Uint8Array | [Uint8Array, Promise<void>] {
|
||||||
if (!this.#ackClipboardHandler) {
|
return serializeSetClipboardControlMessage(
|
||||||
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(
|
|
||||||
message,
|
message,
|
||||||
|
this.#ackClipboardHandler,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,7 @@ import {
|
||||||
serialize,
|
serialize,
|
||||||
serializeBackOrScreenOnControlMessage,
|
serializeBackOrScreenOnControlMessage,
|
||||||
serializeInjectTouchControlMessage,
|
serializeInjectTouchControlMessage,
|
||||||
|
serializeSetClipboardControlMessage,
|
||||||
setListDisplays,
|
setListDisplays,
|
||||||
setListEncoders,
|
setListEncoders,
|
||||||
} from "./impl/index.js";
|
} from "./impl/index.js";
|
||||||
|
@ -67,10 +68,12 @@ export class ScrcpyOptions2_3<TVideo extends boolean>
|
||||||
this.value.control = false;
|
this.value.control = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.value.control && this.value.clipboardAutosync) {
|
if (this.value.control) {
|
||||||
this.#clipboard = this.#deviceMessageParsers.add(
|
if (this.value.clipboardAutosync) {
|
||||||
new ClipboardStream(),
|
this.#clipboard = this.#deviceMessageParsers.add(
|
||||||
);
|
new ClipboardStream(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
||||||
new AckClipboardHandler(),
|
new AckClipboardHandler(),
|
||||||
|
@ -132,22 +135,9 @@ export class ScrcpyOptions2_3<TVideo extends boolean>
|
||||||
serializeSetClipboardControlMessage(
|
serializeSetClipboardControlMessage(
|
||||||
message: ScrcpySetClipboardControlMessage,
|
message: ScrcpySetClipboardControlMessage,
|
||||||
): Uint8Array | [Uint8Array, Promise<void>] {
|
): Uint8Array | [Uint8Array, Promise<void>] {
|
||||||
if (!this.#ackClipboardHandler) {
|
return serializeSetClipboardControlMessage(
|
||||||
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(
|
|
||||||
message,
|
message,
|
||||||
|
this.#ackClipboardHandler,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,7 @@ import {
|
||||||
serialize,
|
serialize,
|
||||||
serializeBackOrScreenOnControlMessage,
|
serializeBackOrScreenOnControlMessage,
|
||||||
serializeInjectTouchControlMessage,
|
serializeInjectTouchControlMessage,
|
||||||
|
serializeSetClipboardControlMessage,
|
||||||
serializeUHidCreateControlMessage,
|
serializeUHidCreateControlMessage,
|
||||||
setListDisplays,
|
setListDisplays,
|
||||||
setListEncoders,
|
setListEncoders,
|
||||||
|
@ -83,12 +84,12 @@ export class ScrcpyOptions2_4<TVideo extends boolean>
|
||||||
this.#clipboard = this.#deviceMessageParsers.add(
|
this.#clipboard = this.#deviceMessageParsers.add(
|
||||||
new ClipboardStream(),
|
new ClipboardStream(),
|
||||||
);
|
);
|
||||||
|
|
||||||
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
|
||||||
new AckClipboardHandler(),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
||||||
|
new AckClipboardHandler(),
|
||||||
|
);
|
||||||
|
|
||||||
this.#uHidOutput = this.#deviceMessageParsers.add(
|
this.#uHidOutput = this.#deviceMessageParsers.add(
|
||||||
new UHidOutputStream(),
|
new UHidOutputStream(),
|
||||||
);
|
);
|
||||||
|
@ -149,22 +150,9 @@ export class ScrcpyOptions2_4<TVideo extends boolean>
|
||||||
serializeSetClipboardControlMessage(
|
serializeSetClipboardControlMessage(
|
||||||
message: ScrcpySetClipboardControlMessage,
|
message: ScrcpySetClipboardControlMessage,
|
||||||
): Uint8Array | [Uint8Array, Promise<void>] {
|
): Uint8Array | [Uint8Array, Promise<void>] {
|
||||||
if (!this.#ackClipboardHandler) {
|
return serializeSetClipboardControlMessage(
|
||||||
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(
|
|
||||||
message,
|
message,
|
||||||
|
this.#ackClipboardHandler,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,7 @@ import {
|
||||||
serialize,
|
serialize,
|
||||||
serializeBackOrScreenOnControlMessage,
|
serializeBackOrScreenOnControlMessage,
|
||||||
serializeInjectTouchControlMessage,
|
serializeInjectTouchControlMessage,
|
||||||
|
serializeSetClipboardControlMessage,
|
||||||
serializeUHidCreateControlMessage,
|
serializeUHidCreateControlMessage,
|
||||||
setListDisplays,
|
setListDisplays,
|
||||||
setListEncoders,
|
setListEncoders,
|
||||||
|
@ -87,12 +88,12 @@ export class ScrcpyOptions2_6<TVideo extends boolean>
|
||||||
this.#clipboard = this.#deviceMessageParsers.add(
|
this.#clipboard = this.#deviceMessageParsers.add(
|
||||||
new ClipboardStream(),
|
new ClipboardStream(),
|
||||||
);
|
);
|
||||||
|
|
||||||
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
|
||||||
new AckClipboardHandler(),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
||||||
|
new AckClipboardHandler(),
|
||||||
|
);
|
||||||
|
|
||||||
this.#uHidOutput = this.#deviceMessageParsers.add(
|
this.#uHidOutput = this.#deviceMessageParsers.add(
|
||||||
new UHidOutputStream(),
|
new UHidOutputStream(),
|
||||||
);
|
);
|
||||||
|
@ -153,22 +154,9 @@ export class ScrcpyOptions2_6<TVideo extends boolean>
|
||||||
serializeSetClipboardControlMessage(
|
serializeSetClipboardControlMessage(
|
||||||
message: ScrcpySetClipboardControlMessage,
|
message: ScrcpySetClipboardControlMessage,
|
||||||
): Uint8Array | [Uint8Array, Promise<void>] {
|
): Uint8Array | [Uint8Array, Promise<void>] {
|
||||||
if (!this.#ackClipboardHandler) {
|
return serializeSetClipboardControlMessage(
|
||||||
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(
|
|
||||||
message,
|
message,
|
||||||
|
this.#ackClipboardHandler,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,7 @@ import {
|
||||||
serialize,
|
serialize,
|
||||||
serializeBackOrScreenOnControlMessage,
|
serializeBackOrScreenOnControlMessage,
|
||||||
serializeInjectTouchControlMessage,
|
serializeInjectTouchControlMessage,
|
||||||
|
serializeSetClipboardControlMessage,
|
||||||
serializeUHidCreateControlMessage,
|
serializeUHidCreateControlMessage,
|
||||||
setListDisplays,
|
setListDisplays,
|
||||||
setListEncoders,
|
setListEncoders,
|
||||||
|
@ -87,12 +88,12 @@ export class ScrcpyOptions2_7<TVideo extends boolean>
|
||||||
this.#clipboard = this.#deviceMessageParsers.add(
|
this.#clipboard = this.#deviceMessageParsers.add(
|
||||||
new ClipboardStream(),
|
new ClipboardStream(),
|
||||||
);
|
);
|
||||||
|
|
||||||
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
|
||||||
new AckClipboardHandler(),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
||||||
|
new AckClipboardHandler(),
|
||||||
|
);
|
||||||
|
|
||||||
this.#uHidOutput = this.#deviceMessageParsers.add(
|
this.#uHidOutput = this.#deviceMessageParsers.add(
|
||||||
new UHidOutputStream(),
|
new UHidOutputStream(),
|
||||||
);
|
);
|
||||||
|
@ -153,22 +154,9 @@ export class ScrcpyOptions2_7<TVideo extends boolean>
|
||||||
serializeSetClipboardControlMessage(
|
serializeSetClipboardControlMessage(
|
||||||
message: ScrcpySetClipboardControlMessage,
|
message: ScrcpySetClipboardControlMessage,
|
||||||
): Uint8Array | [Uint8Array, Promise<void>] {
|
): Uint8Array | [Uint8Array, Promise<void>] {
|
||||||
if (!this.#ackClipboardHandler) {
|
return serializeSetClipboardControlMessage(
|
||||||
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(
|
|
||||||
message,
|
message,
|
||||||
|
this.#ackClipboardHandler,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,7 @@ import {
|
||||||
serialize,
|
serialize,
|
||||||
serializeBackOrScreenOnControlMessage,
|
serializeBackOrScreenOnControlMessage,
|
||||||
serializeInjectTouchControlMessage,
|
serializeInjectTouchControlMessage,
|
||||||
|
serializeSetClipboardControlMessage,
|
||||||
serializeUHidCreateControlMessage,
|
serializeUHidCreateControlMessage,
|
||||||
setListDisplays,
|
setListDisplays,
|
||||||
setListEncoders,
|
setListEncoders,
|
||||||
|
@ -87,12 +88,12 @@ export class ScrcpyOptions3_0<TVideo extends boolean>
|
||||||
this.#clipboard = this.#deviceMessageParsers.add(
|
this.#clipboard = this.#deviceMessageParsers.add(
|
||||||
new ClipboardStream(),
|
new ClipboardStream(),
|
||||||
);
|
);
|
||||||
|
|
||||||
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
|
||||||
new AckClipboardHandler(),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
||||||
|
new AckClipboardHandler(),
|
||||||
|
);
|
||||||
|
|
||||||
this.#uHidOutput = this.#deviceMessageParsers.add(
|
this.#uHidOutput = this.#deviceMessageParsers.add(
|
||||||
new UHidOutputStream(),
|
new UHidOutputStream(),
|
||||||
);
|
);
|
||||||
|
@ -153,22 +154,9 @@ export class ScrcpyOptions3_0<TVideo extends boolean>
|
||||||
serializeSetClipboardControlMessage(
|
serializeSetClipboardControlMessage(
|
||||||
message: ScrcpySetClipboardControlMessage,
|
message: ScrcpySetClipboardControlMessage,
|
||||||
): Uint8Array | [Uint8Array, Promise<void>] {
|
): Uint8Array | [Uint8Array, Promise<void>] {
|
||||||
if (!this.#ackClipboardHandler) {
|
return serializeSetClipboardControlMessage(
|
||||||
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(
|
|
||||||
message,
|
message,
|
||||||
|
this.#ackClipboardHandler,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,7 @@ import {
|
||||||
serialize,
|
serialize,
|
||||||
serializeBackOrScreenOnControlMessage,
|
serializeBackOrScreenOnControlMessage,
|
||||||
serializeInjectTouchControlMessage,
|
serializeInjectTouchControlMessage,
|
||||||
|
serializeSetClipboardControlMessage,
|
||||||
serializeUHidCreateControlMessage,
|
serializeUHidCreateControlMessage,
|
||||||
setListDisplays,
|
setListDisplays,
|
||||||
setListEncoders,
|
setListEncoders,
|
||||||
|
@ -87,12 +88,12 @@ export class ScrcpyOptions3_1<TVideo extends boolean>
|
||||||
this.#clipboard = this.#deviceMessageParsers.add(
|
this.#clipboard = this.#deviceMessageParsers.add(
|
||||||
new ClipboardStream(),
|
new ClipboardStream(),
|
||||||
);
|
);
|
||||||
|
|
||||||
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
|
||||||
new AckClipboardHandler(),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
||||||
|
new AckClipboardHandler(),
|
||||||
|
);
|
||||||
|
|
||||||
this.#uHidOutput = this.#deviceMessageParsers.add(
|
this.#uHidOutput = this.#deviceMessageParsers.add(
|
||||||
new UHidOutputStream(),
|
new UHidOutputStream(),
|
||||||
);
|
);
|
||||||
|
@ -153,22 +154,9 @@ export class ScrcpyOptions3_1<TVideo extends boolean>
|
||||||
serializeSetClipboardControlMessage(
|
serializeSetClipboardControlMessage(
|
||||||
message: ScrcpySetClipboardControlMessage,
|
message: ScrcpySetClipboardControlMessage,
|
||||||
): Uint8Array | [Uint8Array, Promise<void>] {
|
): Uint8Array | [Uint8Array, Promise<void>] {
|
||||||
if (!this.#ackClipboardHandler) {
|
return serializeSetClipboardControlMessage(
|
||||||
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(
|
|
||||||
message,
|
message,
|
||||||
|
this.#ackClipboardHandler,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,7 @@ import {
|
||||||
serialize,
|
serialize,
|
||||||
serializeBackOrScreenOnControlMessage,
|
serializeBackOrScreenOnControlMessage,
|
||||||
serializeInjectTouchControlMessage,
|
serializeInjectTouchControlMessage,
|
||||||
|
serializeSetClipboardControlMessage,
|
||||||
serializeUHidCreateControlMessage,
|
serializeUHidCreateControlMessage,
|
||||||
setListDisplays,
|
setListDisplays,
|
||||||
setListEncoders,
|
setListEncoders,
|
||||||
|
@ -87,12 +88,12 @@ export class ScrcpyOptions3_2<TVideo extends boolean>
|
||||||
this.#clipboard = this.#deviceMessageParsers.add(
|
this.#clipboard = this.#deviceMessageParsers.add(
|
||||||
new ClipboardStream(),
|
new ClipboardStream(),
|
||||||
);
|
);
|
||||||
|
|
||||||
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
|
||||||
new AckClipboardHandler(),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
||||||
|
new AckClipboardHandler(),
|
||||||
|
);
|
||||||
|
|
||||||
this.#uHidOutput = this.#deviceMessageParsers.add(
|
this.#uHidOutput = this.#deviceMessageParsers.add(
|
||||||
new UHidOutputStream(),
|
new UHidOutputStream(),
|
||||||
);
|
);
|
||||||
|
@ -153,22 +154,9 @@ export class ScrcpyOptions3_2<TVideo extends boolean>
|
||||||
serializeSetClipboardControlMessage(
|
serializeSetClipboardControlMessage(
|
||||||
message: ScrcpySetClipboardControlMessage,
|
message: ScrcpySetClipboardControlMessage,
|
||||||
): Uint8Array | [Uint8Array, Promise<void>] {
|
): Uint8Array | [Uint8Array, Promise<void>] {
|
||||||
if (!this.#ackClipboardHandler) {
|
return serializeSetClipboardControlMessage(
|
||||||
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(
|
|
||||||
message,
|
message,
|
||||||
|
this.#ackClipboardHandler,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,7 @@ import {
|
||||||
serialize,
|
serialize,
|
||||||
serializeBackOrScreenOnControlMessage,
|
serializeBackOrScreenOnControlMessage,
|
||||||
serializeInjectTouchControlMessage,
|
serializeInjectTouchControlMessage,
|
||||||
|
serializeSetClipboardControlMessage,
|
||||||
serializeUHidCreateControlMessage,
|
serializeUHidCreateControlMessage,
|
||||||
setListDisplays,
|
setListDisplays,
|
||||||
setListEncoders,
|
setListEncoders,
|
||||||
|
@ -87,12 +88,12 @@ export class ScrcpyOptions3_3_1<TVideo extends boolean>
|
||||||
this.#clipboard = this.#deviceMessageParsers.add(
|
this.#clipboard = this.#deviceMessageParsers.add(
|
||||||
new ClipboardStream(),
|
new ClipboardStream(),
|
||||||
);
|
);
|
||||||
|
|
||||||
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
|
||||||
new AckClipboardHandler(),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
||||||
|
new AckClipboardHandler(),
|
||||||
|
);
|
||||||
|
|
||||||
this.#uHidOutput = this.#deviceMessageParsers.add(
|
this.#uHidOutput = this.#deviceMessageParsers.add(
|
||||||
new UHidOutputStream(),
|
new UHidOutputStream(),
|
||||||
);
|
);
|
||||||
|
@ -153,22 +154,9 @@ export class ScrcpyOptions3_3_1<TVideo extends boolean>
|
||||||
serializeSetClipboardControlMessage(
|
serializeSetClipboardControlMessage(
|
||||||
message: ScrcpySetClipboardControlMessage,
|
message: ScrcpySetClipboardControlMessage,
|
||||||
): Uint8Array | [Uint8Array, Promise<void>] {
|
): Uint8Array | [Uint8Array, Promise<void>] {
|
||||||
if (!this.#ackClipboardHandler) {
|
return serializeSetClipboardControlMessage(
|
||||||
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(
|
|
||||||
message,
|
message,
|
||||||
|
this.#ackClipboardHandler,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue