UNPKG

@yume-chan/scrcpy

Version:
76 lines 3.04 kB
import { EmptyControlMessage } from "./empty.js"; import { ScrcpyInjectKeyCodeControlMessage } from "./inject-keycode.js"; import { ScrcpyInjectTextControlMessage } from "./inject-text.js"; import { ScrcpyRotateDeviceControlMessage } from "./rotate-device.js"; import { ScrcpySetScreenPowerModeControlMessage } from "./set-screen-power-mode.js"; import { ScrcpyControlMessageType, ScrcpyControlMessageTypeValue, } from "./type.js"; export class ScrcpyControlMessageSerializer { #options; #typeValues; #scrollController; constructor(options) { this.#options = options; this.#typeValues = new ScrcpyControlMessageTypeValue(options); this.#scrollController = options.createScrollController(); } injectKeyCode(message) { return ScrcpyInjectKeyCodeControlMessage.serialize(this.#typeValues.fillMessageType(message, ScrcpyControlMessageType.InjectKeyCode)); } injectText(text) { return ScrcpyInjectTextControlMessage.serialize({ text, type: this.#typeValues.get(ScrcpyControlMessageType.InjectText), }); } /** * `pressure` is a float value between 0 and 1. */ injectTouch(message) { return this.#options.serializeInjectTouchControlMessage(this.#typeValues.fillMessageType(message, ScrcpyControlMessageType.InjectTouch)); } /** * `scrollX` and `scrollY` are float values between 0 and 1. */ injectScroll(message) { return this.#scrollController.serializeScrollMessage(this.#typeValues.fillMessageType(message, ScrcpyControlMessageType.InjectScroll)); } backOrScreenOn(action) { return this.#options.serializeBackOrScreenOnControlMessage({ action, type: this.#typeValues.get(ScrcpyControlMessageType.BackOrScreenOn), }); } setScreenPowerMode(mode) { return ScrcpySetScreenPowerModeControlMessage.serialize({ mode, type: this.#typeValues.get(ScrcpyControlMessageType.SetScreenPowerMode), }); } expandNotificationPanel() { return EmptyControlMessage.serialize({ type: this.#typeValues.get(ScrcpyControlMessageType.ExpandNotificationPanel), }); } expandSettingPanel() { return EmptyControlMessage.serialize({ type: this.#typeValues.get(ScrcpyControlMessageType.ExpandSettingPanel), }); } collapseNotificationPanel() { return EmptyControlMessage.serialize({ type: this.#typeValues.get(ScrcpyControlMessageType.CollapseNotificationPanel), }); } rotateDevice() { return ScrcpyRotateDeviceControlMessage.serialize({ type: this.#typeValues.get(ScrcpyControlMessageType.RotateDevice), }); } setClipboard(message) { return this.#options.serializeSetClipboardControlMessage({ ...message, type: this.#typeValues.get(ScrcpyControlMessageType.SetClipboard), }); } } //# sourceMappingURL=serializer.js.map