syntax = "proto3"; package com.ttstd.control; option java_package = "com.ttstd.control"; option java_multiple_files = true; // 控制指令类型,对应原 JSON 字段 action。 enum Action { ACTION_UNKNOWN = 0; TOUCH = 1; SWIPE = 2; KEY = 3; LONG_PRESS = 4; MOTION_EVENT = 5; SET_RESOLUTION = 6; // 控制端请求被控端切换屏幕采集分辨率 REPORT_RESOLUTION = 7; // 被控端上报当前实际采集分辨率(含连接建立后的初始值) } // 通过 RTCDataChannel 传输的控制指令(protobuf 二进制)。 // 坐标 x/y/x1/y1/x2/y2 均为相对屏幕的百分比,取值范围 0.0 ~ 1.0。 message ControlMessage { // 指令类型 Action action = 1; // 单点坐标(TOUCH / LONG_PRESS / MOTION_EVENT) double x = 2; double y = 3; // 滑动起止坐标(SWIPE) double x1 = 4; double y1 = 5; double x2 = 6; double y2 = 7; int64 duration = 8; // 按键(KEY):key_action 0=按下 1=抬起(对应 Android KeyEvent ACTION_DOWN/UP) int32 key_code = 9; int32 key_action = 10; // 原始动作(MOTION_EVENT):对应 Android MotionEvent ACTION_*(0=DOWN 1=UP 2=MOVE) int32 motion_action = 11; // 分辨率切换(SET_RESOLUTION): // width 为目标长边/宽度;<=0 表示使用被控端原始(native)分辨率。 // height 为目标高度;<=0 时按被控端屏幕宽高比基于 width 计算(保留原始比例)。 // fps 为目标帧率;<=0 表示沿用当前帧率。 int32 width = 12; int32 height = 13; int32 fps = 14; }