@yume-chan/scrcpy
Version:
TypeScript implementation of Scrcpy client.
76 lines • 2.58 kB
JavaScript
import { AckClipboardHandler, ClipboardStream, ControlMessageTypes, createMediaStreamTransformer, createScrollController, Defaults, parseAudioStreamMetadata, parseDisplay, parseEncoder, parseVideoStreamMetadata, serialize, serializeBackOrScreenOnControlMessage, serializeInjectTouchControlMessage, setListDisplays, setListEncoders, } from "./impl/index.js";
export class ScrcpyOptions2_0 {
static Defaults = Defaults;
value;
get controlMessageTypes() {
return ControlMessageTypes;
}
#clipboard;
get clipboard() {
return this.#clipboard;
}
#ackClipboardHandler;
constructor(init) {
this.value = { ...Defaults, ...init };
if (this.value.control && this.value.clipboardAutosync) {
this.#clipboard = new ClipboardStream();
this.#ackClipboardHandler = new AckClipboardHandler();
}
}
serialize() {
return serialize(this.value, Defaults);
}
setListDisplays() {
setListDisplays(this.value);
}
parseDisplay(line) {
return parseDisplay(line);
}
setListEncoders() {
setListEncoders(this.value);
}
parseEncoder(line) {
return parseEncoder(line);
}
parseVideoStreamMetadata(stream) {
return parseVideoStreamMetadata(this.value, stream);
}
parseAudioStreamMetadata(stream) {
return parseAudioStreamMetadata(stream, this.value);
}
async parseDeviceMessage(id, stream) {
if (await this.#clipboard?.parse(id, stream)) {
return;
}
if (await this.#ackClipboardHandler?.parse(id, stream)) {
return;
}
throw new Error("Unknown device message");
}
endDeviceMessageStream(e) {
if (e) {
this.#clipboard?.error(e);
this.#ackClipboardHandler?.error(e);
}
else {
this.#clipboard?.close();
this.#ackClipboardHandler?.close();
}
}
createMediaStreamTransformer() {
return createMediaStreamTransformer(this.value);
}
serializeInjectTouchControlMessage(message) {
return serializeInjectTouchControlMessage(message);
}
serializeBackOrScreenOnControlMessage(message) {
return serializeBackOrScreenOnControlMessage(message);
}
serializeSetClipboardControlMessage(message) {
return this.#ackClipboardHandler.serializeSetClipboardControlMessage(message);
}
createScrollController() {
return createScrollController();
}
}
//# sourceMappingURL=options.js.map