@yume-chan/scrcpy
Version:
TypeScript implementation of Scrcpy.
76 lines • 3.04 kB
JavaScript
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