92 lines
2.7 KiB
Protocol Buffer
92 lines
2.7 KiB
Protocol Buffer
// ───────────────────────────────────────── proto/lesavka.proto
|
|
syntax = "proto3";
|
|
package lesavka;
|
|
|
|
message KeyboardReport { bytes data = 1; }
|
|
message MouseReport { bytes data = 1; }
|
|
|
|
message MonitorRequest {
|
|
uint32 id = 1;
|
|
uint32 max_bitrate = 2;
|
|
uint32 requested_width = 3;
|
|
uint32 requested_height = 4;
|
|
uint32 requested_fps = 5;
|
|
bool prefer_reencode = 6;
|
|
}
|
|
message VideoPacket {
|
|
uint32 id = 1;
|
|
uint64 pts = 2;
|
|
bytes data = 3;
|
|
uint64 seq = 4;
|
|
uint32 effective_fps = 5;
|
|
uint64 dropped_total = 6;
|
|
uint32 queue_depth = 7;
|
|
uint32 server_source_gap_peak_ms = 8;
|
|
uint32 server_send_gap_peak_ms = 9;
|
|
uint32 server_queue_peak = 10;
|
|
string server_encoder_label = 11;
|
|
uint32 server_process_cpu_tenths = 12;
|
|
}
|
|
message AudioPacket { uint32 id = 1; uint64 pts = 2; bytes data = 3; }
|
|
|
|
message ResetUsbReply { bool ok = 1; } // true = success
|
|
|
|
message PasteRequest {
|
|
bytes nonce = 1;
|
|
bytes data = 2;
|
|
bool encrypted = 3;
|
|
}
|
|
message PasteReply { bool ok = 1; string error = 2; }
|
|
message CapturePowerState {
|
|
bool available = 1;
|
|
bool enabled = 2;
|
|
string unit = 3;
|
|
string detail = 4;
|
|
uint32 active_leases = 5;
|
|
string mode = 6;
|
|
}
|
|
enum CapturePowerCommand {
|
|
CAPTURE_POWER_COMMAND_UNSPECIFIED = 0;
|
|
CAPTURE_POWER_COMMAND_AUTO = 1;
|
|
CAPTURE_POWER_COMMAND_FORCE_ON = 2;
|
|
CAPTURE_POWER_COMMAND_FORCE_OFF = 3;
|
|
}
|
|
message SetCapturePowerRequest {
|
|
bool enabled = 1;
|
|
CapturePowerCommand command = 2;
|
|
}
|
|
|
|
message HandshakeSet {
|
|
bool camera = 1;
|
|
bool microphone = 2;
|
|
string camera_output = 3;
|
|
string camera_codec = 4;
|
|
uint32 camera_width = 5;
|
|
uint32 camera_height = 6;
|
|
uint32 camera_fps = 7;
|
|
uint32 eye_width = 8;
|
|
uint32 eye_height = 9;
|
|
uint32 eye_fps = 10;
|
|
string server_version = 11;
|
|
}
|
|
|
|
message Empty {}
|
|
|
|
service Relay {
|
|
rpc StreamKeyboard (stream KeyboardReport) returns (stream KeyboardReport);
|
|
rpc StreamMouse (stream MouseReport) returns (stream MouseReport);
|
|
rpc CaptureVideo (MonitorRequest) returns (stream VideoPacket);
|
|
rpc CaptureAudio (MonitorRequest) returns (stream AudioPacket);
|
|
rpc StreamMicrophone (stream AudioPacket) returns (stream Empty);
|
|
rpc StreamCamera (stream VideoPacket) returns (stream Empty);
|
|
|
|
rpc PasteText (PasteRequest) returns (PasteReply);
|
|
rpc ResetUsb (Empty) returns (ResetUsbReply);
|
|
rpc GetCapturePower (Empty) returns (CapturePowerState);
|
|
rpc SetCapturePower (SetCapturePowerRequest) returns (CapturePowerState);
|
|
}
|
|
|
|
service Handshake {
|
|
rpc GetCapabilities (Empty) returns (HandshakeSet);
|
|
}
|