mirror of
https://git.sr.ht/~thestr4ng3r/chiaki
synced 2025-03-12 05:25:23 -07:00
461 lines
12 KiB
Protocol Buffer
461 lines
12 KiB
Protocol Buffer
syntax = "proto2";
|
|
|
|
package tkproto;
|
|
|
|
message TakionMessage {
|
|
required PayloadType type = 1;
|
|
enum PayloadType {
|
|
BIG = 0;
|
|
BANG = 1;
|
|
INFO = 2;
|
|
HEARTBEAT = 3;
|
|
PACKETLOSS = 4;
|
|
CORRUPTFRAME = 5;
|
|
CURSOR = 6;
|
|
TIMER = 7;
|
|
DISCONNECT = 8;
|
|
LOG = 9;
|
|
HEADERREQUEST = 10;
|
|
DEBUG = 11;
|
|
SENKUSHA = 12;
|
|
STREAMINFO = 13;
|
|
STREAMINFOACK = 14;
|
|
XMBCOMMAND = 15;
|
|
CONNECTIONQUALITY = 16;
|
|
CLIENTMETRIC = 17;
|
|
PLAYTIMELEFT = 18;
|
|
SERVERMESSAGE = 19;
|
|
FPSCHANGE = 20;
|
|
CONTROLLERCONNECTION = 21;
|
|
CLIENTINFO = 22;
|
|
VIDEOCAPTURE = 23;
|
|
AUDIOCAPTURE = 24;
|
|
IDRREQUEST = 25;
|
|
GKTRACE = 26;
|
|
PERIODICTIMESTAMP = 27;
|
|
SERVERSETTINGS = 28;
|
|
DIRECTMESSAGE = 29;
|
|
MICCONNECTION = 30;
|
|
TAKIONPROTOCOLREQUEST = 31;
|
|
TAKIONPROTOCOLREQUESTACK = 32;
|
|
}
|
|
|
|
optional BigPayload big_payload = 2;
|
|
optional BangPayload bang_payload = 3;
|
|
optional InfoPayload info_payload = 4;
|
|
optional PacketLossPayload loss_payload = 5;
|
|
optional CorruptFramePayload corrupt_payload = 6;
|
|
optional CursorPayload cursor_payload = 8;
|
|
optional TimerPayload timer_payload = 9;
|
|
optional DisconnectPayload disconnect_payload = 10;
|
|
optional LogPayload log_payload = 11;
|
|
optional HeaderRequestPayload header_payload = 12;
|
|
optional DebugOption debug_payload = 13;
|
|
optional SenkushaPayload senkusha_payload = 14;
|
|
optional StreamInfoPayload stream_info_payload = 15;
|
|
optional XmbCommandPayload xmb_command_payload = 16;
|
|
optional ConnectionQualityPayload connection_quality_payload = 17;
|
|
optional ClientMetricPayload client_metric_payload = 18;
|
|
optional PlayTimeLeftPayload play_time_left_payload = 19;
|
|
optional ServerMessagePayload server_message_payload = 20;
|
|
optional FpsChangePayload fps_change_payload = 21;
|
|
optional ControllerConnectionPayload controller_connection_payload = 22;
|
|
optional ClientInfoPayload client_info_payload = 23;
|
|
optional VideoCapturePayload video_capture_payload = 24;
|
|
optional AudioCapturePayload audio_capture_payload = 25;
|
|
optional GkTracePayload gk_trace_payload = 26;
|
|
optional PeriodicTimestampPayload periodic_timestamp_payload = 27;
|
|
optional ServerSettingsPayload server_settings_payload = 28;
|
|
optional DirectMessagePayload direct_message_payload = 29;
|
|
optional MicConnectionPayload mic_connection_payload = 30;
|
|
optional TakionProtocolRequestPayload takion_protocol_request = 31;
|
|
optional TakionProtocolRequestAckPayload takion_protocol_request_ack = 32;
|
|
}
|
|
|
|
message EventCode {
|
|
required string event_code = 1;
|
|
optional string name = 2;
|
|
optional string description = 3;
|
|
}
|
|
|
|
message BigPayload {
|
|
required uint32 client_version = 1;
|
|
required string session_key = 2;
|
|
required string launch_spec = 3;
|
|
required bytes encrypted_key = 4;
|
|
optional bytes ecdh_pub_key = 5;
|
|
optional bytes ecdh_sig = 6;
|
|
}
|
|
|
|
message BangPayload {
|
|
required uint32 server_version = 1;
|
|
required uint32 token = 2;
|
|
required bool encrypted_key_accepted = 3;
|
|
required bool version_accepted = 4;
|
|
required string session_key = 5;
|
|
optional EventCode extended_info = 6;
|
|
optional string server_version_string = 7;
|
|
optional bytes ecdh_pub_key = 8;
|
|
optional bytes ecdh_sig = 9;
|
|
}
|
|
|
|
message InfoPayload {
|
|
required uint32 effective_bw = 1;
|
|
required uint32 bitrate = 2;
|
|
required uint32 min_bitrate = 3;
|
|
required uint32 target_bitrate = 4;
|
|
required uint32 corrupt_frame_freq = 5;
|
|
required uint32 mtu = 6;
|
|
required uint32 fps = 7;
|
|
required uint32 monitor_interval = 8;
|
|
required uint32 ext_overhead = 9;
|
|
required uint32 int_overhead = 10;
|
|
required uint32 timeout_interval = 11;
|
|
required uint32 min_resume_quality = 12;
|
|
required uint32 min_fps = 13;
|
|
}
|
|
|
|
message CursorPayload {
|
|
required uint32 id = 1;
|
|
required uint32 width = 2;
|
|
required uint32 height = 3;
|
|
required uint32 hotspot_x = 4;
|
|
required uint32 hotspot_y = 5;
|
|
optional bytes pixels = 6;
|
|
}
|
|
|
|
message TimerPayload {
|
|
required uint32 seconds_left = 1;
|
|
required uint32 total_seconds = 2;
|
|
}
|
|
|
|
message CorruptFramePayload {
|
|
required uint32 start = 1;
|
|
required uint32 end = 2;
|
|
}
|
|
|
|
message PacketLossPayload {
|
|
required uint32 start = 1;
|
|
required uint32 end = 2;
|
|
required uint32 packets_received = 3;
|
|
}
|
|
|
|
message FpsChangePayload {
|
|
required uint32 fps = 1;
|
|
}
|
|
|
|
message DisconnectPayload {
|
|
required string reason = 1;
|
|
optional EventCode extended_info = 2;
|
|
}
|
|
|
|
message LogMessage {
|
|
required int64 timestamp = 1;
|
|
|
|
required LogLevel level = 2;
|
|
enum LogLevel {
|
|
CRITICAL = 0;
|
|
ERROR = 1;
|
|
WARNING = 2;
|
|
INFO = 3;
|
|
DEBUG = 4;
|
|
TRACE = 5;
|
|
}
|
|
|
|
required string component = 3;
|
|
required string message = 4;
|
|
optional double timestampdouble = 5;
|
|
}
|
|
|
|
message LogPayload {
|
|
repeated LogMessage messages = 1;
|
|
}
|
|
|
|
message ClientMetric {
|
|
required Category category = 1;
|
|
enum Category {
|
|
VIDEO_FRAMELIFETIME = 0;
|
|
VIDEO_FRAMENALUSCOMPLETE = 1;
|
|
VIDEO_FECCORRECTION = 2;
|
|
VIDEO_FRAMEQUEUE = 3;
|
|
VIDEO_DECODERFRAMEQUEUE = 4;
|
|
VIDEO_SUBMITTODECODER = 5;
|
|
VIDEO_DECODE = 6;
|
|
VIDEO_DECODEDPICTUREDROP = 7;
|
|
VIDEO_YUVCOPY = 8;
|
|
VIDEO_TEXTURECOPY = 9;
|
|
VIDEO_RENDER = 10;
|
|
GRAPHICS_PRERENDER = 11;
|
|
GRAPHICS_PRESENT = 12;
|
|
AUDIO_FRAMELIFETIME = 13;
|
|
AUDIO_FRAMENALUSCOMPLETE = 14;
|
|
AUDIO_FECCORRECTION = 15;
|
|
AUDIO_FRAMEQUEUE = 16;
|
|
AUDIO_SUBMITTODECODER = 17;
|
|
AUDIO_DECODE = 18;
|
|
AUDIO_BUFFERCOPY = 19;
|
|
AUDIO_RENDER = 20;
|
|
}
|
|
|
|
required int32 start_frame = 2;
|
|
required int32 end_frame = 3;
|
|
required int32 count = 5;
|
|
required float average = 6;
|
|
required float std_dev = 7;
|
|
required float min_val = 8;
|
|
required float max_val = 9;
|
|
}
|
|
|
|
message ClientMetricPayload {
|
|
repeated ClientMetric messages = 1;
|
|
}
|
|
|
|
message HeaderRequestPayload {
|
|
required HeaderType type = 1;
|
|
enum HeaderType {
|
|
AUDIO = 0;
|
|
VIDEO = 1;
|
|
}
|
|
}
|
|
|
|
message DebugOption {
|
|
required Type type = 1;
|
|
enum Type {
|
|
OVERLAY = 0;
|
|
BITRATE = 1;
|
|
}
|
|
|
|
optional OverlayPayload overlay = 2;
|
|
optional BitratePayload bitrate = 3;
|
|
}
|
|
|
|
message OverlayPayload {
|
|
optional bool enable = 1;
|
|
optional bool toggle = 2;
|
|
|
|
optional LogLocation location = 3;
|
|
enum LogLocation {
|
|
TOP_LEFT = 0;
|
|
TOP_RIGHT = 1;
|
|
BOTTOM_LEFT = 2;
|
|
BOTTOM_RIGHT = 3;
|
|
}
|
|
|
|
optional uint32 level = 4;
|
|
}
|
|
|
|
message BitratePayload {
|
|
optional bool toggle = 1;
|
|
optional float bitrate_change = 2;
|
|
}
|
|
|
|
message ResolutionPayload {
|
|
required uint32 width = 1;
|
|
required uint32 height = 2;
|
|
required bytes video_header = 3;
|
|
}
|
|
|
|
message AudioChannelPayload {
|
|
required uint32 audio_channel_type = 1;
|
|
required bytes audio_header = 2;
|
|
optional bool is_raw_pcm = 3;
|
|
}
|
|
|
|
message StreamInfoPayload {
|
|
repeated ResolutionPayload resolution = 1;
|
|
required bytes audio_header = 2;
|
|
optional uint32 start_timeout = 3;
|
|
optional uint32 afk_timeout = 4;
|
|
optional uint32 afk_timeout_disconnect = 5;
|
|
optional uint32 congestion_control_interval = 6;
|
|
repeated AudioChannelPayload audio_channel = 7;
|
|
}
|
|
|
|
message XmbCommandPayload {
|
|
required XmbCommand command = 1;
|
|
enum XmbCommand {
|
|
OFF = 0;
|
|
ON = 1;
|
|
TOGGLE = 2;
|
|
}
|
|
|
|
optional uint32 player_id = 2;
|
|
}
|
|
|
|
message ConnectionQualityPayload {
|
|
optional uint32 target_bitrate = 1;
|
|
optional uint32 upstream_bitrate = 2;
|
|
optional float upstream_loss = 3;
|
|
optional bool disable_upstream_audio = 4;
|
|
optional double rtt = 5;
|
|
optional uint64 loss = 6;
|
|
}
|
|
|
|
message PlayTimeLeftPayload {
|
|
optional uint32 time_left = 1;
|
|
optional string reason = 2;
|
|
}
|
|
|
|
message ServerMessagePayload {
|
|
optional string payload = 1;
|
|
}
|
|
|
|
message ControllerConnectionPayload {
|
|
optional int32 controller_id = 1;
|
|
optional bool connected = 2;
|
|
|
|
optional ControllerType controller_type = 3;
|
|
enum ControllerType {
|
|
NOTSET = 0;
|
|
DUALSHOCK3 = 1;
|
|
DUALSHOCK4 = 2;
|
|
VITA = 3;
|
|
XINPUT = 4;
|
|
MOBILE = 5;
|
|
BOND = 6;
|
|
}
|
|
}
|
|
|
|
message ClientInfoPayload {
|
|
required string session_key = 1;
|
|
optional uint32 gcm_tag = 2;
|
|
optional uint32 key_pos = 3;
|
|
}
|
|
|
|
message VideoCapturePayload {
|
|
optional bool server_side = 1 [default = false];
|
|
optional uint32 idr_period = 2 [default = 0];
|
|
}
|
|
|
|
message AudioCapturePayload {
|
|
optional bool server_side = 1 [default = false];
|
|
}
|
|
|
|
message ServerSettingsPayload {
|
|
optional uint32 idr_period = 1 [default = 0];
|
|
optional bool send_periodic_timestamp = 2 [default = false];
|
|
}
|
|
|
|
message GkTracePayload {
|
|
required uint32 seq_no = 1;
|
|
required uint32 gcm_tag = 2;
|
|
required uint32 key_pos = 3;
|
|
}
|
|
|
|
message PeriodicTimestampPayload {
|
|
required bytes periodic_ts_info = 1;
|
|
required uint32 version = 2;
|
|
}
|
|
|
|
message DeepLinkPayload {
|
|
required DeepLinkType deep_link_type = 1;
|
|
enum DeepLinkType {
|
|
SAVE_DATA = 0;
|
|
INVITE = 1;
|
|
GAME_ALERT = 2;
|
|
SYSTEM_SERVICE_STATUS = 3;
|
|
DEBUG_VSH_MENU = 4;
|
|
RAW = 5;
|
|
}
|
|
|
|
optional uint32 request_id = 2;
|
|
optional uint32 pad_unique_id = 3;
|
|
optional string invitation_id = 4;
|
|
optional string session_id = 5;
|
|
optional string item_id = 6;
|
|
optional string is_system_ui_overlaid = 7;
|
|
optional uint32 result = 8;
|
|
optional bool should_show = 9;
|
|
optional string raw_data = 10;
|
|
}
|
|
|
|
message MicInfoPayload {
|
|
required MicInfoType mic_info_type = 1;
|
|
enum MicInfoType {
|
|
MIC_CONNECT = 0;
|
|
MIC_MUTE = 1;
|
|
}
|
|
|
|
optional uint32 controller_id = 2;
|
|
optional bool connected = 3;
|
|
optional bool muted = 4;
|
|
optional bool result = 5;
|
|
}
|
|
|
|
message DirectMessagePayload {
|
|
required DirectMessageType direct_message_type = 1;
|
|
enum DirectMessageType {
|
|
DEEPLINK = 0;
|
|
MICINFO = 1;
|
|
}
|
|
|
|
required Destination destination = 2;
|
|
enum Destination {
|
|
GAIKAI_CONTROLLER = 1000;
|
|
CLIENT = 1001;
|
|
}
|
|
|
|
optional bytes data = 3;
|
|
}
|
|
|
|
message MicConnectionPayload {
|
|
required int32 controller_id = 1;
|
|
required bool connected = 2;
|
|
optional bool result = 3;
|
|
}
|
|
|
|
message TakionProtocolRequestPayload {
|
|
repeated uint32 supported_takion_versions = 1;
|
|
}
|
|
|
|
message TakionProtocolRequestAckPayload {
|
|
optional uint32 takion_protocol_version = 1;
|
|
}
|
|
|
|
message SenkushaPayload {
|
|
required Command command = 1;
|
|
enum Command {
|
|
ECHO_COMMAND = 0;
|
|
MTU_COMMAND = 1;
|
|
BANDWIDTH_COMMAND = 3;
|
|
CLIENT_MTU_COMMAND = 4;
|
|
}
|
|
|
|
optional SenkushaEchoCommand echo_command = 2;
|
|
optional SenkushaMtuCommand mtu_command = 3;
|
|
optional SenkushaBandwidthCommand bandwidth_command = 4;
|
|
optional SenkushaClientMtuCommand client_mtu_command = 5;
|
|
}
|
|
|
|
message SenkushaEchoCommand {
|
|
required bool state = 1;
|
|
}
|
|
|
|
message SenkushaMtuCommand {
|
|
required uint32 id = 1;
|
|
required uint32 mtu_req = 2;
|
|
optional uint32 mtu_sent = 3;
|
|
optional uint32 num = 4;
|
|
optional uint32 send_delay = 5;
|
|
optional uint32 delta = 6;
|
|
}
|
|
|
|
message SenkushaBandwidthCommand {
|
|
required uint32 id = 1;
|
|
required uint32 time = 2;
|
|
optional uint32 bandwidth = 3;
|
|
optional uint32 fps = 4;
|
|
optional uint32 mtu = 5;
|
|
optional uint32 nalu_count = 6;
|
|
optional uint32 total_sent = 7;
|
|
optional bool upstream = 8;
|
|
optional double loss = 9;
|
|
}
|
|
|
|
message SenkushaClientMtuCommand {
|
|
required uint32 id = 1;
|
|
required uint32 mtu_req = 2;
|
|
required bool state = 3;
|
|
optional uint32 mtu_down = 4;
|
|
}
|