lesavka/common/proto/lesavka.proto

68 lines
2.2 KiB
Protocol Buffer
Raw Normal View History

2025-07-04 01:56:59 -05:00
// ───────────────────────────────────────── proto/lesavka.proto
2025-06-01 14:26:57 -05:00
syntax = "proto3";
2025-06-23 07:18:26 -05:00
package lesavka;
2025-06-01 14:26:57 -05:00
2025-06-27 06:56:08 -05:00
message KeyboardReport { bytes data = 1; }
message MouseReport { bytes data = 1; }
2025-06-01 14:26:57 -05:00
2025-06-27 06:56:08 -05:00
message MonitorRequest { uint32 id = 1; uint32 max_bitrate = 2; }
message VideoPacket { uint32 id = 1; uint64 pts = 2; bytes data = 3; }
2025-06-29 03:46:34 -05:00
message AudioPacket { uint32 id = 1; uint64 pts = 2; bytes data = 3; }
2025-06-21 05:21:57 -05:00
2025-06-30 19:35:38 -05:00
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;
}
2026-01-28 17:52:00 -03:00
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;
}
2025-07-04 01:56:59 -05:00
2025-06-30 19:35:38 -05:00
message Empty {}
2025-06-21 05:21:57 -05:00
2025-06-01 14:26:57 -05:00
service Relay {
2025-06-30 19:35:38 -05:00
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);
2025-07-03 08:19:59 -05:00
rpc StreamMicrophone (stream AudioPacket) returns (stream Empty);
rpc StreamCamera (stream VideoPacket) returns (stream Empty);
rpc PasteText (PasteRequest) returns (PasteReply);
2025-06-30 19:35:38 -05:00
rpc ResetUsb (Empty) returns (ResetUsbReply);
rpc GetCapturePower (Empty) returns (CapturePowerState);
rpc SetCapturePower (SetCapturePowerRequest) returns (CapturePowerState);
2025-06-21 05:21:57 -05:00
}
2025-07-04 01:56:59 -05:00
service Handshake {
rpc GetCapabilities (Empty) returns (HandshakeSet);
}