aboutsummaryrefslogtreecommitdiffhomepage
path: root/libs/hbb_common/protos/message.proto
diff options
context:
space:
mode:
Diffstat (limited to 'libs/hbb_common/protos/message.proto')
-rw-r--r--libs/hbb_common/protos/message.proto144
1 files changed, 127 insertions, 17 deletions
diff --git a/libs/hbb_common/protos/message.proto b/libs/hbb_common/protos/message.proto
index 15ee971..b127ac3 100644
--- a/libs/hbb_common/protos/message.proto
+++ b/libs/hbb_common/protos/message.proto
@@ -1,13 +1,13 @@
syntax = "proto3";
package hbb;
-message VP9 {
+message EncodedVideoFrame {
bytes data = 1;
bool key = 2;
int64 pts = 3;
}
-message VP9s { repeated VP9 frames = 1; }
+message EncodedVideoFrames { repeated EncodedVideoFrame frames = 1; }
message RGB { bool compress = 1; }
@@ -19,9 +19,11 @@ message YUV {
message VideoFrame {
oneof union {
- VP9s vp9s = 6;
+ EncodedVideoFrames vp9s = 6;
RGB rgb = 7;
YUV yuv = 8;
+ EncodedVideoFrames h264s = 10;
+ EncodedVideoFrames h265s = 11;
}
int64 timestamp = 9;
}
@@ -38,6 +40,7 @@ message DisplayInfo {
int32 height = 4;
string name = 5;
bool online = 6;
+ bool cursor_embedded = 7;
}
message PortForward {
@@ -61,10 +64,21 @@ message LoginRequest {
PortForward port_forward = 8;
}
bool video_ack_required = 9;
+ uint64 session_id = 10;
+ string version = 11;
}
message ChatMessage { string text = 1; }
+message Features {
+ bool privacy_mode = 1;
+}
+
+message SupportedEncoding {
+ bool h264 = 1;
+ bool h265 = 2;
+}
+
message PeerInfo {
string username = 1;
string hostname = 2;
@@ -74,6 +88,8 @@ message PeerInfo {
bool sas_enabled = 6;
string version = 7;
int32 conn_id = 8;
+ Features features = 9;
+ SupportedEncoding encoding = 10;
}
message LoginResponse {
@@ -90,6 +106,13 @@ message MouseEvent {
repeated ControlKey modifiers = 4;
}
+enum KeyboardMode{
+ Legacy = 0;
+ Map = 1;
+ Translate = 2;
+ Auto = 3;
+}
+
enum ControlKey {
Unknown = 0;
Alt = 1;
@@ -183,6 +206,7 @@ message KeyEvent {
string seq = 6;
}
repeated ControlKey modifiers = 8;
+ KeyboardMode mode = 9;
}
message CursorData {
@@ -252,6 +276,7 @@ message FileAction {
FileRemoveFile remove_file = 6;
ReadAllFiles all_files = 7;
FileTransferCancel cancel = 8;
+ FileTransferSendConfirmRequest send_confirm = 9;
}
}
@@ -263,14 +288,24 @@ message FileResponse {
FileTransferBlock block = 2;
FileTransferError error = 3;
FileTransferDone done = 4;
+ FileTransferDigest digest = 5;
}
}
+message FileTransferDigest {
+ int32 id = 1;
+ sint32 file_num = 2;
+ uint64 last_modified = 3;
+ uint64 file_size = 4;
+ bool is_upload = 5;
+}
+
message FileTransferBlock {
int32 id = 1;
sint32 file_num = 2;
bytes data = 3;
bool compressed = 4;
+ uint32 blk_id = 5;
}
message FileTransferError {
@@ -283,6 +318,16 @@ message FileTransferSendRequest {
int32 id = 1;
string path = 2;
bool include_hidden = 3;
+ int32 file_num = 4;
+}
+
+message FileTransferSendConfirmRequest {
+ int32 id = 1;
+ sint32 file_num = 2;
+ oneof union {
+ bool skip = 3;
+ uint32 offset_blk = 4;
+ }
}
message FileTransferDone {
@@ -294,6 +339,7 @@ message FileTransferReceiveRequest {
int32 id = 1;
string path = 2; // path written to
repeated FileEntry files = 3;
+ int32 file_num = 4;
}
message FileRemoveDir {
@@ -315,38 +361,31 @@ message FileDirCreate {
// main logic from freeRDP
message CliprdrMonitorReady {
- int32 conn_id = 1;
}
message CliprdrFormat {
- int32 conn_id = 1;
int32 id = 2;
string format = 3;
}
message CliprdrServerFormatList {
- int32 conn_id = 1;
repeated CliprdrFormat formats = 2;
}
message CliprdrServerFormatListResponse {
- int32 conn_id = 1;
int32 msg_flags = 2;
}
message CliprdrServerFormatDataRequest {
- int32 conn_id = 1;
int32 requested_format_id = 2;
}
message CliprdrServerFormatDataResponse {
- int32 conn_id = 1;
int32 msg_flags = 2;
bytes format_data = 3;
}
message CliprdrFileContentsRequest {
- int32 conn_id = 1;
int32 stream_id = 2;
int32 list_index = 3;
int32 dw_flags = 4;
@@ -358,7 +397,6 @@ message CliprdrFileContentsRequest {
}
message CliprdrFileContentsResponse {
- int32 conn_id = 1;
int32 msg_flags = 3;
int32 stream_id = 4;
bytes requested_data = 5;
@@ -382,6 +420,7 @@ message SwitchDisplay {
sint32 y = 3;
int32 width = 4;
int32 height = 5;
+ bool cursor_embedded = 6;
}
message PermissionInfo {
@@ -390,6 +429,8 @@ message PermissionInfo {
Clipboard = 2;
Audio = 3;
File = 4;
+ Restart = 5;
+ Recording = 6;
}
Permission permission = 1;
@@ -403,6 +444,20 @@ enum ImageQuality {
Best = 4;
}
+message VideoCodecState {
+ enum PerferCodec {
+ Auto = 0;
+ VPX = 1;
+ H264 = 2;
+ H265 = 3;
+ }
+
+ int32 score_vpx = 1;
+ int32 score_h264 = 2;
+ int32 score_h265 = 3;
+ PerferCodec perfer = 4;
+}
+
message OptionMessage {
enum BoolOption {
NotSet = 0;
@@ -418,16 +473,15 @@ message OptionMessage {
BoolOption disable_audio = 7;
BoolOption disable_clipboard = 8;
BoolOption enable_file_transfer = 9;
-}
-
-message OptionResponse {
- OptionMessage opt = 1;
- string error = 2;
+ VideoCodecState video_codec_state = 10;
+ int32 custom_fps = 11;
}
message TestDelay {
int64 time = 1;
bool from_client = 2;
+ uint32 last_delay = 3;
+ uint32 target_bitrate = 4;
}
message PublicKey {
@@ -447,6 +501,57 @@ message AudioFrame {
int64 timestamp = 2;
}
+// Notify peer to show message box.
+message MessageBox {
+ // Message type. Refer to flutter/lib/commom.dart/msgBox().
+ string msgtype = 1;
+ string title = 2;
+ // English
+ string text = 3;
+ // If not empty, msgbox provides a button to following the link.
+ // The link here can't be directly http url.
+ // It must be the key of http url configed in peer side or "rustdesk://*" (jump in app).
+ string link = 4;
+}
+
+message BackNotification {
+ // no need to consider block input by someone else
+ enum BlockInputState {
+ BlkStateUnknown = 0;
+ BlkOnSucceeded = 2;
+ BlkOnFailed = 3;
+ BlkOffSucceeded = 4;
+ BlkOffFailed = 5;
+ }
+ enum PrivacyModeState {
+ PrvStateUnknown = 0;
+ // Privacy mode on by someone else
+ PrvOnByOther = 2;
+ // Privacy mode is not supported on the remote side
+ PrvNotSupported = 3;
+ // Privacy mode on by self
+ PrvOnSucceeded = 4;
+ // Privacy mode on by self, but denied
+ PrvOnFailedDenied = 5;
+ // Some plugins are not found
+ PrvOnFailedPlugin = 6;
+ // Privacy mode on by self, but failed
+ PrvOnFailed = 7;
+ // Privacy mode off by self
+ PrvOffSucceeded = 8;
+ // Ctrl + P
+ PrvOffByPeer = 9;
+ // Privacy mode off by self, but failed
+ PrvOffFailed = 10;
+ PrvOffUnknown = 11;
+ }
+
+ oneof union {
+ PrivacyModeState privacy_mode_state = 1;
+ BlockInputState block_input_state = 2;
+ }
+}
+
message Misc {
oneof union {
ChatMessage chat_message = 4;
@@ -456,8 +561,12 @@ message Misc {
AudioFormat audio_format = 8;
string close_reason = 9;
bool refresh_video = 10;
- OptionResponse option_response = 11;
bool video_received = 12;
+ BackNotification back_notification = 13;
+ bool restart_remote_device = 14;
+ bool uac = 15;
+ bool foreground_window_elevated = 16;
+ bool stop_service = 17;
}
}
@@ -481,5 +590,6 @@ message Message {
FileResponse file_response = 18;
Misc misc = 19;
Cliprdr cliprdr = 20;
+ MessageBox message_box = 21;
}
}