option optimize_for = SPEED;
enum ERemoteClientBroadcastMsg {
k_ERemoteClientBroadcastMsgDiscovery = 0;
k_ERemoteClientBroadcastMsgStatus = 1;
k_ERemoteClientBroadcastMsgOffline = 2;
k_ERemoteDeviceAuthorizationRequest = 3;
k_ERemoteDeviceAuthorizationResponse = 4;
k_ERemoteDeviceStreamingRequest = 5;
k_ERemoteDeviceStreamingResponse = 6;
k_ERemoteDeviceProofRequest = 7;
k_ERemoteDeviceProofResponse = 8;
k_ERemoteDeviceAuthorizationCancelRequest = 9;
k_ERemoteDeviceStreamingCancelRequest = 10;
k_ERemoteClientBroadcastMsgClientIDDeconflict = 11;
k_ERemoteDeviceStreamTransportSignal = 12;
k_ERemoteDeviceStreamingProgress = 13;
k_ERemoteDeviceAuthorizationConfirmed = 14;
}
enum ERemoteClientService {
k_ERemoteClientServiceNone = 0;
k_ERemoteClientServiceRemoteControl = 1;
k_ERemoteClientServiceGameStreaming = 2;
k_ERemoteClientServiceSiteLicense = 4;
k_ERemoteClientServiceContentCache = 8;
k_ERemoteClientServiceContentServer = 16;
}
enum ERemoteDeviceAuthorizationResult {
k_ERemoteDeviceAuthorizationSuccess = 0;
k_ERemoteDeviceAuthorizationDenied = 1;
k_ERemoteDeviceAuthorizationNotLoggedIn = 2;
k_ERemoteDeviceAuthorizationOffline = 3;
k_ERemoteDeviceAuthorizationBusy = 4;
k_ERemoteDeviceAuthorizationInProgress = 5;
k_ERemoteDeviceAuthorizationTimedOut = 6;
k_ERemoteDeviceAuthorizationFailed = 7;
k_ERemoteDeviceAuthorizationCanceled = 8;
}
enum EStreamDeviceFormFactor {
k_EStreamDeviceFormFactorUnknown = 0;
k_EStreamDeviceFormFactorPhone = 1;
k_EStreamDeviceFormFactorTablet = 2;
k_EStreamDeviceFormFactorComputer = 3;
k_EStreamDeviceFormFactorTV = 4;
}
enum EStreamTransport {
k_EStreamTransportNone = 0;
k_EStreamTransportUDP = 1;
k_EStreamTransportUDPRelay = 2;
k_EStreamTransportWebRTC = 3;
k_EStreamTransportSDR = 4;
k_EStreamTransportUDP_SNS = 5;
k_EStreamTransportUDPRelay_SNS = 6;
}
enum EStreamInterface {
k_EStreamInterfaceDefault = 0;
k_EStreamInterfaceRecentGames = 1;
k_EStreamInterfaceBigPicture = 2;
k_EStreamInterfaceDesktop = 3;
}
enum ERemoteDeviceStreamingResult {
k_ERemoteDeviceStreamingSuccess = 0;
k_ERemoteDeviceStreamingUnauthorized = 1;
k_ERemoteDeviceStreamingScreenLocked = 2;
k_ERemoteDeviceStreamingFailed = 3;
k_ERemoteDeviceStreamingBusy = 4;
k_ERemoteDeviceStreamingInProgress = 5;
k_ERemoteDeviceStreamingCanceled = 6;
k_ERemoteDeviceStreamingDriversNotInstalled = 7;
k_ERemoteDeviceStreamingDisabled = 8;
k_ERemoteDeviceStreamingBroadcastingActive = 9;
k_ERemoteDeviceStreamingVRActive = 10;
k_ERemoteDeviceStreamingPINRequired = 11;
k_ERemoteDeviceStreamingTransportUnavailable = 12;
k_ERemoteDeviceStreamingInvisible = 13;
k_ERemoteDeviceStreamingGameLaunchFailed = 14;
}
message CMsgRemoteClientBroadcastHeader {
optional uint64 client_id = 1;
optional .ERemoteClientBroadcastMsg msg_type = 2 [default = k_ERemoteClientBroadcastMsgDiscovery];
optional uint64 instance_id = 3;
optional uint64 device_id = 4;
optional bytes device_token = 5;
}
message CMsgRemoteClientBroadcastStatus {
message User {
optional fixed64 steamid = 1;
optional uint32 auth_key_id = 2;
}
optional int32 version = 1;
optional int32 min_version = 2;
optional uint32 connect_port = 3;
optional string hostname = 4;
optional uint32 enabled_services = 6;
optional int32 ostype = 7 [default = 0];
optional bool is64bit = 8;
repeated .CMsgRemoteClientBroadcastStatus.User users = 9;
optional int32 euniverse = 11;
optional uint32 timestamp = 12;
optional bool screen_locked = 13;
optional bool games_running = 14;
repeated string mac_addresses = 15;
optional uint32 download_lan_peer_group = 16;
optional bool broadcasting_active = 17;
optional bool vr_active = 18;
optional uint32 content_cache_port = 19;
repeated string ip_addresses = 20;
optional string public_ip_address = 21;
optional bool remoteplay_active = 22;
optional uint32 supported_services = 23;
optional bool steam_deck = 24;
optional uint64 steam_version = 25;
}
message CMsgRemoteClientBroadcastDiscovery {
optional uint32 seq_num = 1;
repeated uint64 client_ids = 2;
}
message CMsgRemoteClientBroadcastClientIDDeconflict {
repeated uint64 client_ids = 2;
}
message CMsgRemoteDeviceAuthorizationRequest {
message CKeyEscrow_Ticket {
optional bytes password = 1;
optional uint64 identifier = 2;
optional bytes payload = 3;
optional uint32 timestamp = 4;
optional .CMsgRemoteDeviceAuthorizationRequest.EKeyEscrowUsage usage = 5 [default = k_EKeyEscrowUsageStreamingDevice];
optional string device_name = 6;
optional string device_model = 7;
optional string device_serial = 8;
optional uint32 device_provisioning_id = 9;
}
enum EKeyEscrowUsage {
k_EKeyEscrowUsageStreamingDevice = 0;
}
required bytes device_token = 1;
optional string device_name = 2;
required bytes encrypted_request = 3;
optional bytes auth_key = 4;
}
message CMsgRemoteDeviceAuthorizationCancelRequest {
}
message CMsgRemoteDeviceAuthorizationResponse {
required .ERemoteDeviceAuthorizationResult result = 1 [default = k_ERemoteDeviceAuthorizationSuccess];
optional fixed64 steamid = 2;
optional bytes auth_key = 3;
optional bytes device_token = 4;
}
message CMsgRemoteDeviceAuthorizationConfirmed {
required .ERemoteDeviceAuthorizationResult result = 1 [default = k_ERemoteDeviceAuthorizationSuccess];
}
message CMsgRemoteDeviceStreamingRequest {
message ReservedGamepad {
optional uint32 controller_type = 1;
optional uint32 controller_subtype = 2;
}
required uint32 request_id = 1;
optional int32 maximum_resolution_x = 2;
optional int32 maximum_resolution_y = 3;
optional int32 audio_channel_count = 4 [default = 2];
optional string device_version = 5;
optional bool stream_desktop = 6;
optional bytes device_token = 7;
optional bytes pin = 8;
optional bool enable_video_streaming = 9 [default = true];
optional bool enable_audio_streaming = 10 [default = true];
optional bool enable_input_streaming = 11 [default = true];
optional bool network_test = 12;
optional uint64 client_id = 13;
repeated .EStreamTransport supported_transport = 14;
optional bool restricted = 15;
optional .EStreamDeviceFormFactor form_factor = 16 [default = k_EStreamDeviceFormFactorUnknown];
optional int32 gamepad_count = 17;
repeated .CMsgRemoteDeviceStreamingRequest.ReservedGamepad gamepads = 18;
optional uint64 gameid = 19;
optional .EStreamInterface stream_interface = 20 [default = k_EStreamInterfaceDefault];
}
message CMsgRemoteDeviceStreamingCancelRequest {
required uint32 request_id = 1;
}
message CMsgRemoteDeviceStreamingProgress {
required uint32 request_id = 1;
optional float progress = 2;
}
message CMsgRemoteDeviceStreamingResponse {
required uint32 request_id = 1;
required .ERemoteDeviceStreamingResult result = 2 [default = k_ERemoteDeviceStreamingSuccess];
optional uint32 port = 3;
optional bytes encrypted_session_key = 4;
optional .EStreamTransport transport = 6 [default = k_EStreamTransportUDP];
optional string relay_server = 7;
optional string cert = 8;
}
message CMsgRemoteDeviceProofRequest {
required bytes challenge = 1;
optional uint32 request_id = 2;
optional bool update_secret = 3;
}
message CMsgRemoteDeviceProofResponse {
required bytes response = 1;
optional uint32 request_id = 2;
optional bool updated_secret = 3;
}
message CMsgRemoteDeviceStreamTransportSignal {
optional bytes token = 1;
optional bytes payload = 2;
}