#[derive(Clone, Copy, PartialEq, Eq, Debug, ::prost::Enumeration)] #[repr(i32)] pub enum QConnectMessageType { MessageTypeRndrSrvrJoinSession = 21, MessageTypeRndrSrvrDeviceInfoUpdated = 22, MessageTypeRndrSrvrStateUpdated = 23, MessageTypeRndrSrvrRendererAction = 24, MessageTypeRndrSrvrVolumeChanged = 25, MessageTypeRndrSrvrFileAudioQualityChanged = 26, MessageTypeRndrSrvrDeviceAudioQualityChanged = 27, MessageTypeRndrSrvrMaxAudioQualityChanged = 28, MessageTypeRndrSrvrVolumeMuted = 29, MessageTypeSrvrRndrSetState = 41, MessageTypeSrvrRndrSetVolume = 42, MessageTypeSrvrRndrSetActive = 43, MessageTypeSrvrRndrSetMaxAudioQuality = 44, MessageTypeSrvrRndrSetLoopMode = 45, MessageTypeSrvrRndrSetShuffleMode = 46, MessageTypeSrvrRndrMuteVolume = 47, MessageTypeCtrlSrvrJoinSession = 61, MessageTypeCtrlSrvrSetPlayerState = 62, MessageTypeCtrlSrvrSetActiveRenderer = 63, MessageTypeCtrlSrvrSetVolume = 64, MessageTypeCtrlSrvrClearQueue = 65, MessageTypeCtrlSrvrQueueLoadTracks = 66, MessageTypeCtrlSrvrQueueInsertTracks = 67, MessageTypeCtrlSrvrQueueAddTracks = 68, MessageTypeCtrlSrvrQueueRemoveTracks = 69, MessageTypeCtrlSrvrQueueReorderTracks = 70, MessageTypeCtrlSrvrSetShuffleMode = 71, MessageTypeCtrlSrvrSetLoopMode = 72, MessageTypeCtrlSrvrMuteVolume = 73, MessageTypeCtrlSrvrSetMaxAudioQuality = 74, MessageTypeCtrlSrvrSetQueueState = 75, MessageTypeCtrlSrvrAskForQueueState = 76, MessageTypeCtrlSrvrAskForRendererState = 77, MessageTypeCtrlSrvrSetAutoplayMode = 78, MessageTypeCtrlSrvrAutoplayLoadTracks = 79, MessageTypeCtrlSrvrAutoplayRemoveTracks = 80, MessageTypeSrvrCtrlSessionState = 81, MessageTypeSrvrCtrlRendererStateUpdated = 82, MessageTypeSrvrCtrlAddRenderer = 83, MessageTypeSrvrCtrlUpdateRenderer = 84, MessageTypeSrvrCtrlRemoveRenderer = 85, MessageTypeSrvrCtrlActiveRendererChanged = 86, MessageTypeSrvrCtrlVolumeChanged = 87, MessageTypeSrvrCtrlQueueErrorMessage = 88, MessageTypeSrvrCtrlQueueCleared = 89, MessageTypeSrvrCtrlQueueState = 90, MessageTypeSrvrCtrlQueueTracksLoaded = 91, MessageTypeSrvrCtrlQueueTracksInserted = 92, MessageTypeSrvrCtrlQueueTracksAdded = 93, MessageTypeSrvrCtrlQueueTracksRemoved = 94, MessageTypeSrvrCtrlQueueTracksReordered = 95, MessageTypeSrvrCtrlShuffleModeSet = 96, MessageTypeSrvrCtrlLoopModeSet = 97, MessageTypeSrvrCtrlVolumeMuted = 98, MessageTypeSrvrCtrlMaxAudioQualityChanged = 99, MessageTypeSrvrCtrlFileAudioQualityChanged = 100, MessageTypeSrvrCtrlDeviceAudioQualityChanged = 101, MessageTypeSrvrCtrlAutoplayModeSet = 102, MessageTypeSrvrCtrlAutoplayTracksLoaded = 103, MessageTypeSrvrCtrlAutoplayTracksRemoved = 104, MessageTypeSrvrCtrlQueueTracksAddedFromAutoplay = 105, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueueVersionRef { #[prost(int32, optional, tag = "1")] pub major: Option, #[prost(int32, optional, tag = "2")] pub minor: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct ErrorMessage { /// Server sends error codes as strings (e.g. "ERROR_QUEUE_INSERT_TRACKS"), /// not integers. Wire type = LengthDelimited (string). #[prost(string, optional, tag = "1")] pub code: Option, #[prost(string, optional, tag = "2")] pub message: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueueTrack { #[prost(int32, optional, tag = "1")] pub queue_item_id: Option, #[prost(fixed32, optional, tag = "2")] pub track_id: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueueTrackWithContext { #[prost(int32, optional, tag = "1")] pub queue_item_id: Option, #[prost(fixed32, optional, tag = "2")] pub track_id: Option, #[prost(bytes = "vec", optional, tag = "3")] pub context_uuid: Option>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct SetQueueTrackWithContext { #[prost(int32, optional, tag = "1")] pub track_id: Option, #[prost(bytes = "vec", optional, tag = "2")] pub context_uuid: Option>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct DeviceCapabilitiesMessage { #[prost(int32, optional, tag = "1")] pub min_audio_quality: Option, #[prost(int32, optional, tag = "2")] pub max_audio_quality: Option, #[prost(int32, optional, tag = "3")] pub volume_remote_control: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct DeviceInfoMessage { #[prost(bytes = "vec", optional, tag = "1")] pub device_uuid: Option>, #[prost(string, optional, tag = "2")] pub friendly_name: Option, #[prost(string, optional, tag = "3")] pub brand: Option, #[prost(string, optional, tag = "4")] pub model: Option, #[prost(string, optional, tag = "5")] pub serial_number: Option, #[prost(int32, optional, tag = "6")] pub device_type: Option, #[prost(message, optional, tag = "7")] pub capabilities: Option, #[prost(string, optional, tag = "8")] pub software_version: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct JoinSessionMessage { #[prost(bytes = "vec", optional, tag = "1")] pub session_uuid: Option>, #[prost(message, optional, tag = "2")] pub device_info: Option, /// Renderer-only: reason for joining (0=unknown, 1=controller_request, 2=reconnection) #[prost(int32, optional, tag = "3")] pub reason: Option, /// Renderer-only: initial playback state sent on join #[prost(message, optional, tag = "4")] pub initial_state: Option, /// Renderer-only: whether this renderer is active #[prost(bool, optional, tag = "5")] pub is_active: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct SetPlayerStateQueueItemMessage { #[prost(message, optional, tag = "1")] pub queue_version: Option, #[prost(int32, optional, tag = "2")] pub id: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct SetPlayerStateMessage { #[prost(int32, optional, tag = "1")] pub playing_state: Option, #[prost(int32, optional, tag = "2")] pub current_position: Option, #[prost(message, optional, tag = "3")] pub current_queue_item: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct SetActiveRendererMessage { #[prost(int32, optional, tag = "1")] pub renderer_id: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct SetVolumeMessage { #[prost(int32, optional, tag = "1")] pub renderer_id: Option, #[prost(int32, optional, tag = "2")] pub volume: Option, #[prost(int32, optional, tag = "3")] pub volume_delta: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct SetLoopModeMessage { #[prost(int32, optional, tag = "1")] pub loop_mode: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct MuteVolumeMessage { #[prost(int32, optional, tag = "1")] pub renderer_id: Option, #[prost(bool, optional, tag = "2")] pub value: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct SetMaxAudioQualityMessage { #[prost(int32, optional, tag = "1")] pub renderer_id: Option, #[prost(int32, optional, tag = "2")] pub max_audio_quality: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct AskForRendererStateMessage { #[prost(int32, optional, tag = "1")] pub renderer_id: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct ClearQueueMessage { #[prost(message, optional, tag = "1")] pub queue_version_ref: Option, #[prost(bytes = "vec", optional, tag = "2")] pub action_uuid: Option>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueueLoadTracksMessage { #[prost(message, optional, tag = "1")] pub queue_version_ref: Option, #[prost(bytes = "vec", optional, tag = "2")] pub action_uuid: Option>, #[prost(fixed32, repeated, tag = "3")] pub track_ids: Vec, #[prost(int32, optional, tag = "4")] pub queue_position: Option, #[prost(fixed32, optional, tag = "5")] pub shuffle_seed: Option, #[prost(int32, optional, tag = "6")] pub shuffle_pivot_index: Option, #[prost(bool, optional, tag = "7")] pub shuffle_mode: Option, #[prost(bytes = "vec", optional, tag = "8")] pub context_uuid: Option>, #[prost(bool, optional, tag = "9")] pub autoplay_reset: Option, #[prost(bool, optional, tag = "10")] pub autoplay_loading: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueueInsertTracksMessage { #[prost(message, optional, tag = "1")] pub queue_version_ref: Option, #[prost(bytes = "vec", optional, tag = "2")] pub action_uuid: Option>, #[prost(fixed32, repeated, tag = "3")] pub track_ids: Vec, #[prost(int32, optional, tag = "4")] pub insert_after: Option, #[prost(fixed32, optional, tag = "5")] pub shuffle_seed: Option, #[prost(bytes = "vec", optional, tag = "6")] pub context_uuid: Option>, #[prost(bool, optional, tag = "7")] pub autoplay_reset: Option, #[prost(bool, optional, tag = "8")] pub autoplay_loading: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueueAddTracksMessage { #[prost(message, optional, tag = "1")] pub queue_version_ref: Option, #[prost(bytes = "vec", optional, tag = "2")] pub action_uuid: Option>, #[prost(fixed32, repeated, tag = "3")] pub track_ids: Vec, #[prost(fixed32, optional, tag = "4")] pub shuffle_seed: Option, #[prost(bytes = "vec", optional, tag = "5")] pub context_uuid: Option>, #[prost(bool, optional, tag = "6")] pub autoplay_reset: Option, #[prost(bool, optional, tag = "7")] pub autoplay_loading: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueueRemoveTracksMessage { #[prost(message, optional, tag = "1")] pub queue_version_ref: Option, #[prost(bytes = "vec", optional, tag = "2")] pub action_uuid: Option>, #[prost(int32, repeated, packed = "false", tag = "3")] pub queue_item_ids: Vec, #[prost(bool, optional, tag = "4")] pub autoplay_reset: Option, #[prost(bool, optional, tag = "5")] pub autoplay_loading: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueueReorderTracksMessage { #[prost(message, optional, tag = "1")] pub queue_version_ref: Option, #[prost(bytes = "vec", optional, tag = "2")] pub action_uuid: Option>, #[prost(int32, repeated, packed = "false", tag = "3")] pub queue_item_ids: Vec, #[prost(int32, optional, tag = "4")] pub insert_after: Option, #[prost(bool, optional, tag = "5")] pub autoplay_reset: Option, #[prost(bool, optional, tag = "6")] pub autoplay_loading: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct SetShuffleModeMessage { #[prost(message, optional, tag = "1")] pub queue_version_ref: Option, #[prost(bytes = "vec", optional, tag = "2")] pub action_uuid: Option>, #[prost(bool, optional, tag = "3")] pub shuffle_mode: Option, #[prost(fixed32, optional, tag = "4")] pub shuffle_seed: Option, #[prost(int32, optional, tag = "5")] pub shuffle_pivot_queue_item_id: Option, #[prost(bool, optional, tag = "6")] pub autoplay_reset: Option, #[prost(bool, optional, tag = "7")] pub autoplay_loading: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct SetAutoplayModeMessage { #[prost(message, optional, tag = "1")] pub queue_version_ref: Option, #[prost(bytes = "vec", optional, tag = "2")] pub action_uuid: Option>, #[prost(bool, optional, tag = "3")] pub autoplay_mode: Option, #[prost(bool, optional, tag = "4")] pub autoplay_reset: Option, #[prost(bool, optional, tag = "5")] pub autoplay_loading: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct AutoplayLoadTracksMessage { #[prost(message, optional, tag = "1")] pub queue_version_ref: Option, #[prost(bytes = "vec", optional, tag = "2")] pub action_uuid: Option>, #[prost(fixed32, repeated, tag = "3")] pub track_ids: Vec, #[prost(bytes = "vec", optional, tag = "4")] pub context_uuid: Option>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct AutoplayRemoveTracksMessage { #[prost(message, optional, tag = "1")] pub queue_version_ref: Option, #[prost(bytes = "vec", optional, tag = "2")] pub action_uuid: Option>, #[prost(int32, repeated, packed = "false", tag = "3")] pub queue_item_ids: Vec, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct SetQueueStateMessage { #[prost(message, optional, tag = "1")] pub queue_version_ref: Option, #[prost(bytes = "vec", optional, tag = "2")] pub action_uuid: Option>, #[prost(message, repeated, tag = "3")] pub tracks: Vec, #[prost(bool, optional, tag = "4")] pub shuffle_mode: Option, #[prost(int32, repeated, packed = "false", tag = "5")] pub shuffled_track_indexes: Vec, #[prost(bool, optional, tag = "6")] pub autoplay_mode: Option, #[prost(bool, optional, tag = "7")] pub autoplay_loading: Option, #[prost(message, repeated, tag = "8")] pub autoplay_tracks: Vec, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct AskForQueueStateMessage { #[prost(message, optional, tag = "1")] pub queue_version_ref: Option, #[prost(bytes = "vec", optional, tag = "2")] pub action_uuid: Option>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueueErrorMessage { #[prost(message, optional, tag = "1")] pub queue_version: Option, #[prost(bytes = "vec", optional, tag = "2")] pub action_uuid: Option>, #[prost(message, optional, tag = "3")] pub error: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueueClearedMessage { #[prost(message, optional, tag = "1")] pub queue_version: Option, #[prost(bytes = "vec", optional, tag = "2")] pub action_uuid: Option>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueueStateMessage { #[prost(message, optional, tag = "1")] pub queue_version: Option, #[prost(bytes = "vec", optional, tag = "2")] pub action_uuid: Option>, #[prost(message, repeated, tag = "3")] pub tracks: Vec, #[prost(bool, optional, tag = "4")] pub shuffle_mode: Option, #[prost(int32, repeated, packed = "false", tag = "5")] pub shuffled_track_indexes: Vec, #[prost(bool, optional, tag = "6")] pub autoplay_mode: Option, #[prost(bool, optional, tag = "7")] pub autoplay_loading: Option, #[prost(message, repeated, tag = "8")] pub autoplay_tracks: Vec, #[prost(bytes = "vec", optional, tag = "100")] pub queue_hash: Option>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueueTracksLoadedMessage { #[prost(message, optional, tag = "1")] pub queue_version: Option, #[prost(bytes = "vec", optional, tag = "2")] pub action_uuid: Option>, #[prost(message, repeated, tag = "3")] pub tracks: Vec, #[prost(int32, optional, tag = "4")] pub queue_position: Option, #[prost(fixed32, optional, tag = "5")] pub shuffle_seed: Option, #[prost(int32, optional, tag = "6")] pub shuffle_pivot_queue_item_id: Option, #[prost(bool, optional, tag = "7")] pub shuffle_mode: Option, #[prost(bytes = "vec", optional, tag = "8")] pub context_uuid: Option>, #[prost(bool, optional, tag = "9")] pub autoplay_reset: Option, #[prost(bool, optional, tag = "10")] pub autoplay_loading: Option, #[prost(bytes = "vec", optional, tag = "100")] pub queue_hash: Option>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueueTracksInsertedMessage { #[prost(message, optional, tag = "1")] pub queue_version: Option, #[prost(bytes = "vec", optional, tag = "2")] pub action_uuid: Option>, #[prost(message, repeated, tag = "3")] pub tracks: Vec, #[prost(int32, optional, tag = "4")] pub insert_after: Option, #[prost(fixed32, optional, tag = "5")] pub shuffle_seed: Option, #[prost(bytes = "vec", optional, tag = "6")] pub context_uuid: Option>, #[prost(bool, optional, tag = "7")] pub autoplay_reset: Option, #[prost(bool, optional, tag = "8")] pub autoplay_loading: Option, #[prost(bytes = "vec", optional, tag = "100")] pub queue_hash: Option>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueueTracksAddedMessage { #[prost(message, optional, tag = "1")] pub queue_version: Option, #[prost(bytes = "vec", optional, tag = "2")] pub action_uuid: Option>, #[prost(message, repeated, tag = "3")] pub tracks: Vec, #[prost(fixed32, optional, tag = "4")] pub shuffle_seed: Option, #[prost(bytes = "vec", optional, tag = "5")] pub context_uuid: Option>, #[prost(bool, optional, tag = "6")] pub autoplay_reset: Option, #[prost(bool, optional, tag = "7")] pub autoplay_loading: Option, #[prost(bytes = "vec", optional, tag = "100")] pub queue_hash: Option>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueueTracksRemovedMessage { #[prost(message, optional, tag = "1")] pub queue_version: Option, #[prost(bytes = "vec", optional, tag = "2")] pub action_uuid: Option>, #[prost(int32, repeated, packed = "false", tag = "3")] pub queue_item_ids: Vec, #[prost(bool, optional, tag = "4")] pub autoplay_reset: Option, #[prost(bool, optional, tag = "5")] pub autoplay_loading: Option, #[prost(bytes = "vec", optional, tag = "100")] pub queue_hash: Option>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueueTracksReorderedMessage { #[prost(message, optional, tag = "1")] pub queue_version: Option, #[prost(bytes = "vec", optional, tag = "2")] pub action_uuid: Option>, #[prost(int32, repeated, packed = "false", tag = "3")] pub queue_item_ids: Vec, #[prost(int32, optional, tag = "4")] pub insert_after: Option, #[prost(bool, optional, tag = "5")] pub autoplay_reset: Option, #[prost(bool, optional, tag = "6")] pub autoplay_loading: Option, #[prost(bytes = "vec", optional, tag = "100")] pub queue_hash: Option>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct ShuffleModeSetMessage { #[prost(message, optional, tag = "1")] pub queue_version: Option, #[prost(bytes = "vec", optional, tag = "2")] pub action_uuid: Option>, #[prost(bool, optional, tag = "3")] pub shuffle_mode: Option, #[prost(fixed32, optional, tag = "4")] pub shuffle_seed: Option, #[prost(int32, optional, tag = "5")] pub shuffle_pivot_queue_item_id: Option, #[prost(bool, optional, tag = "6")] pub autoplay_reset: Option, #[prost(bool, optional, tag = "7")] pub autoplay_loading: Option, #[prost(bytes = "vec", optional, tag = "100")] pub queue_hash: Option>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct AutoplayModeSetMessage { #[prost(message, optional, tag = "1")] pub queue_version: Option, #[prost(bytes = "vec", optional, tag = "2")] pub action_uuid: Option>, #[prost(bool, optional, tag = "3")] pub autoplay_mode: Option, #[prost(bool, optional, tag = "4")] pub autoplay_reset: Option, #[prost(bool, optional, tag = "5")] pub autoplay_loading: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct AutoplayTracksLoadedMessage { #[prost(message, optional, tag = "1")] pub queue_version: Option, #[prost(bytes = "vec", optional, tag = "2")] pub action_uuid: Option>, #[prost(message, repeated, tag = "3")] pub tracks: Vec, #[prost(bytes = "vec", optional, tag = "4")] pub context_uuid: Option>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct AutoplayTracksRemovedMessage { #[prost(message, optional, tag = "1")] pub queue_version: Option, #[prost(bytes = "vec", optional, tag = "2")] pub action_uuid: Option>, #[prost(int32, repeated, packed = "false", tag = "3")] pub queue_item_ids: Vec, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueueTracksAddedFromAutoplayMessage { #[prost(message, optional, tag = "1")] pub queue_version: Option, #[prost(int32, repeated, packed = "false", tag = "2")] pub queue_item_ids: Vec, #[prost(bytes = "vec", optional, tag = "100")] pub queue_hash: Option>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct RendererSetStateMessage { #[prost(int32, optional, tag = "1")] pub playing_state: Option, #[prost(int32, optional, tag = "2")] pub current_position: Option, #[prost(message, optional, tag = "3")] pub queue_version: Option, #[prost(message, optional, tag = "4")] pub current_track: Option, #[prost(message, optional, tag = "5")] pub next_track: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct RendererSetVolumeMessage { #[prost(int32, optional, tag = "1")] pub volume: Option, #[prost(int32, optional, tag = "2")] pub volume_delta: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct RendererSetActiveMessage { #[prost(bool, optional, tag = "1")] pub active: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct RendererSetMaxAudioQualityMessage { #[prost(int32, optional, tag = "1")] pub max_audio_quality: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct RendererSetLoopModeMessage { #[prost(int32, optional, tag = "1")] pub loop_mode: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct RendererSetShuffleModeMessage { #[prost(bool, optional, tag = "1")] pub shuffle_mode: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct RendererMuteVolumeMessage { #[prost(bool, optional, tag = "1")] pub value: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct PlaybackPositionMessage { #[prost(fixed64, optional, tag = "1")] pub timestamp: Option, #[prost(int32, optional, tag = "2")] pub value: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct RendererStateMessage { #[prost(int32, optional, tag = "1")] pub playing_state: Option, #[prost(int32, optional, tag = "2")] pub buffer_state: Option, #[prost(message, optional, tag = "3")] pub current_position: Option, #[prost(int32, optional, tag = "4")] pub duration: Option, #[prost(message, optional, tag = "5")] pub queue_version: Option, #[prost(int32, optional, tag = "6")] pub current_queue_item_id: Option, #[prost(int32, optional, tag = "7")] pub next_queue_item_id: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct RendererActionMessage { #[prost(uint32, optional, tag = "1")] pub seek_position: Option, /// ActionType: 0=unknown, 1=previous, 2=next, 3=repeat_off, 4=repeat_one, /// 5=repeat_all, 6=shuffle_off, 7=shuffle_on, 8=seek #[prost(int32, tag = "2")] pub action: i32, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct RendererStateUpdatedMessage { #[prost(message, optional, tag = "1")] pub state: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct RendererVolumeChangedMessage { #[prost(int32, optional, tag = "1")] pub volume: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct RendererVolumeMutedMessage { #[prost(bool, optional, tag = "1")] pub value: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct RendererFileAudioQualityChangedMessage { #[prost(int32, optional, tag = "1")] pub sampling_rate: Option, #[prost(int32, optional, tag = "2")] pub bit_depth: Option, #[prost(int32, optional, tag = "3")] pub nb_channels: Option, #[prost(int32, optional, tag = "4")] pub audio_quality: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct RendererMaxAudioQualityChangedMessage { #[prost(int32, optional, tag = "1")] pub max_audio_quality: Option, #[prost(int32, optional, tag = "2")] pub network_type: Option, } // --- SRVR_CTRL session management messages (server → controller) --- /// Type 81: Session state after joining #[derive(Clone, PartialEq, ::prost::Message)] pub struct CtrlSessionStateMessage { #[prost(bytes = "vec", optional, tag = "1")] pub session_uuid: Option>, #[prost(int32, optional, tag = "2")] pub active_renderer_id: Option, #[prost(message, optional, tag = "3")] pub queue_version: Option, #[prost(int32, optional, tag = "4")] pub playing_state: Option, #[prost(int32, optional, tag = "5")] pub loop_mode: Option, } /// Nested player state for CtrlRendererStateUpdatedMessage #[derive(Clone, PartialEq, ::prost::Message)] pub struct CtrlRendererPlayerState { #[prost(int32, optional, tag = "1")] pub playing_state: Option, #[prost(int32, optional, tag = "2")] pub buffer_state: Option, #[prost(message, optional, tag = "3")] pub current_position: Option, #[prost(uint32, optional, tag = "4")] pub duration: Option, #[prost(int32, optional, tag = "5")] pub current_queue_item_id: Option, } /// Type 82: Renderer state updated (controller view) #[derive(Clone, PartialEq, ::prost::Message)] pub struct CtrlRendererStateUpdatedMessage { #[prost(int32, optional, tag = "1")] pub renderer_id: Option, #[prost(int32, optional, tag = "2")] pub status: Option, #[prost(message, optional, tag = "3")] pub player_state: Option, } /// Type 83: New renderer added to session #[derive(Clone, PartialEq, ::prost::Message)] pub struct CtrlAddRendererMessage { #[prost(int32, optional, tag = "1")] pub renderer_id: Option, #[prost(message, optional, tag = "2")] pub device_info: Option, } /// Type 84: Renderer info updated #[derive(Clone, PartialEq, ::prost::Message)] pub struct CtrlUpdateRendererMessage { #[prost(int32, optional, tag = "1")] pub renderer_id: Option, #[prost(message, optional, tag = "2")] pub device_info: Option, } /// Type 85: Renderer removed from session #[derive(Clone, PartialEq, ::prost::Message)] pub struct CtrlRemoveRendererMessage { #[prost(int32, optional, tag = "1")] pub renderer_id: Option, } /// Type 86: Active renderer changed #[derive(Clone, PartialEq, ::prost::Message)] pub struct CtrlActiveRendererChangedMessage { #[prost(int32, optional, tag = "1")] pub active_renderer_id: Option, } /// Type 87: Volume changed on a renderer (controller view) #[derive(Clone, PartialEq, ::prost::Message)] pub struct CtrlVolumeChangedMessage { #[prost(int32, optional, tag = "1")] pub renderer_id: Option, #[prost(uint32, optional, tag = "2")] pub volume: Option, } /// Type 97: Loop mode set #[derive(Clone, PartialEq, ::prost::Message)] pub struct CtrlLoopModeSetMessage { #[prost(int32, optional, tag = "1")] pub loop_mode: Option, } /// Type 98: Volume muted (controller view) #[derive(Clone, PartialEq, ::prost::Message)] pub struct CtrlVolumeMutedMessage { #[prost(int32, optional, tag = "1")] pub renderer_id: Option, #[prost(bool, optional, tag = "2")] pub value: Option, } /// Type 99: Max audio quality changed (controller view) #[derive(Clone, PartialEq, ::prost::Message)] pub struct CtrlMaxAudioQualityChangedMessage { #[prost(int32, optional, tag = "1")] pub renderer_id: Option, #[prost(int32, optional, tag = "2")] pub max_audio_quality: Option, #[prost(int32, optional, tag = "3")] pub network_type: Option, } /// Type 100: File audio quality changed (controller view) #[derive(Clone, PartialEq, ::prost::Message)] pub struct CtrlFileAudioQualityChangedMessage { #[prost(int32, optional, tag = "1")] pub renderer_id: Option, #[prost(uint32, optional, tag = "2")] pub sampling_rate: Option, #[prost(uint32, optional, tag = "3")] pub bit_depth: Option, #[prost(uint32, optional, tag = "4")] pub nb_channels: Option, #[prost(int32, optional, tag = "5")] pub audio_quality: Option, } /// Type 101: Device audio quality changed (controller view) #[derive(Clone, PartialEq, ::prost::Message)] pub struct CtrlDeviceAudioQualityChangedMessage { #[prost(int32, optional, tag = "1")] pub renderer_id: Option, #[prost(uint32, optional, tag = "2")] pub sampling_rate: Option, #[prost(uint32, optional, tag = "3")] pub bit_depth: Option, #[prost(uint32, optional, tag = "4")] pub nb_channels: Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct QConnectMessages { #[prost(fixed64, optional, tag = "1")] pub messages_time: Option, #[prost(int32, optional, tag = "2")] pub messages_id: Option, #[prost(message, repeated, tag = "3")] pub messages: Vec, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct QConnectMessage { #[prost(int32, optional, tag = "1")] pub message_type: Option, #[prost(message, optional, tag = "21")] pub rndr_srvr_join_session: Option, #[prost(message, optional, tag = "22")] pub rndr_srvr_device_info_updated: Option, #[prost(message, optional, tag = "23")] pub rndr_srvr_state_updated: Option, #[prost(message, optional, tag = "24")] pub rndr_srvr_renderer_action: Option, #[prost(message, optional, tag = "25")] pub rndr_srvr_volume_changed: Option, #[prost(message, optional, tag = "26")] pub rndr_srvr_file_audio_quality_changed: Option, #[prost(message, optional, tag = "28")] pub rndr_srvr_max_audio_quality_changed: Option, #[prost(message, optional, tag = "29")] pub rndr_srvr_volume_muted: Option, #[prost(message, optional, tag = "41")] pub srvr_rndr_set_state: Option, #[prost(message, optional, tag = "42")] pub srvr_rndr_set_volume: Option, #[prost(message, optional, tag = "43")] pub srvr_rndr_set_active: Option, #[prost(message, optional, tag = "44")] pub srvr_rndr_set_max_audio_quality: Option, #[prost(message, optional, tag = "45")] pub srvr_rndr_set_loop_mode: Option, #[prost(message, optional, tag = "46")] pub srvr_rndr_set_shuffle_mode: Option, #[prost(message, optional, tag = "47")] pub srvr_rndr_mute_volume: Option, #[prost(message, optional, tag = "61")] pub ctrl_srvr_join_session: Option, #[prost(message, optional, tag = "62")] pub ctrl_srvr_set_player_state: Option, #[prost(message, optional, tag = "63")] pub ctrl_srvr_set_active_renderer: Option, #[prost(message, optional, tag = "64")] pub ctrl_srvr_set_volume: Option, #[prost(message, optional, tag = "65")] pub ctrl_srvr_clear_queue: Option, #[prost(message, optional, tag = "66")] pub ctrl_srvr_queue_load_tracks: Option, #[prost(message, optional, tag = "67")] pub ctrl_srvr_queue_insert_tracks: Option, #[prost(message, optional, tag = "68")] pub ctrl_srvr_queue_add_tracks: Option, #[prost(message, optional, tag = "69")] pub ctrl_srvr_queue_remove_tracks: Option, #[prost(message, optional, tag = "70")] pub ctrl_srvr_queue_reorder_tracks: Option, #[prost(message, optional, tag = "71")] pub ctrl_srvr_set_shuffle_mode: Option, #[prost(message, optional, tag = "72")] pub ctrl_srvr_set_loop_mode: Option, #[prost(message, optional, tag = "73")] pub ctrl_srvr_mute_volume: Option, #[prost(message, optional, tag = "74")] pub ctrl_srvr_set_max_audio_quality: Option, #[prost(message, optional, tag = "75")] pub ctrl_srvr_set_queue_state: Option, #[prost(message, optional, tag = "76")] pub ctrl_srvr_ask_for_queue_state: Option, #[prost(message, optional, tag = "77")] pub ctrl_srvr_ask_for_renderer_state: Option, #[prost(message, optional, tag = "78")] pub ctrl_srvr_set_autoplay_mode: Option, #[prost(message, optional, tag = "79")] pub ctrl_srvr_autoplay_load_tracks: Option, #[prost(message, optional, tag = "80")] pub ctrl_srvr_autoplay_remove_tracks: Option, #[prost(message, optional, tag = "81")] pub srvr_ctrl_session_state: Option, #[prost(message, optional, tag = "82")] pub srvr_ctrl_renderer_state_updated: Option, #[prost(message, optional, tag = "83")] pub srvr_ctrl_add_renderer: Option, #[prost(message, optional, tag = "84")] pub srvr_ctrl_update_renderer: Option, #[prost(message, optional, tag = "85")] pub srvr_ctrl_remove_renderer: Option, #[prost(message, optional, tag = "86")] pub srvr_ctrl_active_renderer_changed: Option, #[prost(message, optional, tag = "87")] pub srvr_ctrl_volume_changed: Option, #[prost(message, optional, tag = "88")] pub srvr_ctrl_queue_error_message: Option, #[prost(message, optional, tag = "89")] pub srvr_ctrl_queue_cleared: Option, #[prost(message, optional, tag = "90")] pub srvr_ctrl_queue_state: Option, #[prost(message, optional, tag = "91")] pub srvr_ctrl_queue_tracks_loaded: Option, #[prost(message, optional, tag = "92")] pub srvr_ctrl_queue_tracks_inserted: Option, #[prost(message, optional, tag = "93")] pub srvr_ctrl_queue_tracks_added: Option, #[prost(message, optional, tag = "94")] pub srvr_ctrl_queue_tracks_removed: Option, #[prost(message, optional, tag = "95")] pub srvr_ctrl_queue_tracks_reordered: Option, #[prost(message, optional, tag = "96")] pub srvr_ctrl_shuffle_mode_set: Option, #[prost(message, optional, tag = "97")] pub srvr_ctrl_loop_mode_set: Option, #[prost(message, optional, tag = "98")] pub srvr_ctrl_volume_muted: Option, #[prost(message, optional, tag = "99")] pub srvr_ctrl_max_audio_quality_changed: Option, #[prost(message, optional, tag = "100")] pub srvr_ctrl_file_audio_quality_changed: Option, #[prost(message, optional, tag = "101")] pub srvr_ctrl_device_audio_quality_changed: Option, #[prost(message, optional, tag = "102")] pub srvr_ctrl_autoplay_mode_set: Option, #[prost(message, optional, tag = "103")] pub srvr_ctrl_autoplay_tracks_loaded: Option, #[prost(message, optional, tag = "104")] pub srvr_ctrl_autoplay_tracks_removed: Option, #[prost(message, optional, tag = "105")] pub srvr_ctrl_queue_tracks_added_from_autoplay: Option, }