@yume-chan/scrcpy
Version:
TypeScript implementation of Scrcpy.
41 lines • 2.32 kB
JavaScript
// https://github.com/Genymobile/scrcpy/blob/fa5b2a29e983a46b49531def9cf3d80c40c3de37/app/src/control_msg.h#L23
// For their message bodies, see https://github.com/Genymobile/scrcpy/blob/5c62f3419d252d10cd8c9cbb7c918b358b81f2d0/app/src/control_msg.c#L92
// Their IDs change between versions, so always use `options.getControlMessageTypes()`
export var ScrcpyControlMessageType;
(function (ScrcpyControlMessageType) {
ScrcpyControlMessageType[ScrcpyControlMessageType["InjectKeyCode"] = 0] = "InjectKeyCode";
ScrcpyControlMessageType[ScrcpyControlMessageType["InjectText"] = 1] = "InjectText";
ScrcpyControlMessageType[ScrcpyControlMessageType["InjectTouch"] = 2] = "InjectTouch";
ScrcpyControlMessageType[ScrcpyControlMessageType["InjectScroll"] = 3] = "InjectScroll";
ScrcpyControlMessageType[ScrcpyControlMessageType["BackOrScreenOn"] = 4] = "BackOrScreenOn";
ScrcpyControlMessageType[ScrcpyControlMessageType["ExpandNotificationPanel"] = 5] = "ExpandNotificationPanel";
ScrcpyControlMessageType[ScrcpyControlMessageType["ExpandSettingPanel"] = 6] = "ExpandSettingPanel";
ScrcpyControlMessageType[ScrcpyControlMessageType["CollapseNotificationPanel"] = 7] = "CollapseNotificationPanel";
ScrcpyControlMessageType[ScrcpyControlMessageType["GetClipboard"] = 8] = "GetClipboard";
ScrcpyControlMessageType[ScrcpyControlMessageType["SetClipboard"] = 9] = "SetClipboard";
ScrcpyControlMessageType[ScrcpyControlMessageType["SetScreenPowerMode"] = 10] = "SetScreenPowerMode";
ScrcpyControlMessageType[ScrcpyControlMessageType["RotateDevice"] = 11] = "RotateDevice";
})(ScrcpyControlMessageType || (ScrcpyControlMessageType = {}));
/**
* Scrcpy control message types have different values between versions.
*
* This class provides a way to get the actual value for a given type.
*/
export class ScrcpyControlMessageTypeValue {
#types;
constructor(options) {
this.#types = options.controlMessageTypes;
}
get(type) {
const value = this.#types.indexOf(type);
if (value === -1) {
throw new TypeError("Invalid or unsupported control message type");
}
return value;
}
fillMessageType(message, type) {
message.type = this.get(type);
return message;
}
}
//# sourceMappingURL=type.js.map