fix(qconnect): register renderer role during connect bootstrap
cx
This commit is contained in:
6 files changed
+49
-13
No files matched your search
@@ -147,6 +147,13 @@ where
|
||||
Ok(action_uuid)
|
||||
}
|
||||
|
||||
pub async fn send_renderer_report_command(
|
||||
&self,
|
||||
report: RendererReport,
|
||||
) -> Result<(), QconnectAppError> {
|
||||
self.send_renderer_report(report).await
|
||||
}
|
||||
|
||||
pub async fn handle_transport_event(
|
||||
&self,
|
||||
event: TransportEvent,
|
||||
|
||||
@@ -19,5 +19,5 @@ pub use qconnect_core::{
|
||||
evaluate_remote_queue_admission, resolve_handoff_intent, AdmissionDecision, HandoffIntent,
|
||||
QConnectQueueState, QConnectRendererState, RendererCommand, TrackOrigin,
|
||||
};
|
||||
pub use qconnect_protocol::QueueCommandType;
|
||||
pub use qconnect_protocol::{QueueCommandType, RendererReport, RendererReportType};
|
||||
pub use state::QconnectRuntimeState;
|
||||
@@ -390,6 +390,19 @@ fn map_queue_command(command: &QueueCommand) -> Result<QConnectMessage, Protocol
|
||||
|
||||
fn map_renderer_report(report: &RendererReport) -> Result<QConnectMessage, ProtocolError> {
|
||||
match report.report_type {
|
||||
RendererReportType::RndrSrvrJoinSession => Ok(QConnectMessage {
|
||||
message_type: Some(QConnectMessageType::MessageTypeRndrSrvrJoinSession as i32),
|
||||
rndr_srvr_join_session: Some(JoinSessionMessage {
|
||||
session_uuid: optional_uuid_bytes(&report.payload, &["session_uuid", "sessionUuid"])?,
|
||||
device_info: parse_device_info(&report.payload)?,
|
||||
}),
|
||||
..Default::default()
|
||||
}),
|
||||
RendererReportType::RndrSrvrDeviceInfoUpdated => Ok(QConnectMessage {
|
||||
message_type: Some(QConnectMessageType::MessageTypeRndrSrvrDeviceInfoUpdated as i32),
|
||||
rndr_srvr_device_info_updated: parse_device_info(&report.payload)?,
|
||||
..Default::default()
|
||||
}),
|
||||
RendererReportType::RndrSrvrStateUpdated => {
|
||||
let queue_version = optional_queue_version(&report.payload, "queue_version")?
|
||||
.unwrap_or(report.queue_version_ref);
|
||||
|
||||
@@ -702,6 +702,10 @@ pub struct QConnectMessages {
|
||||
pub struct QConnectMessage {
|
||||
#[prost(int32, optional, tag = "1")]
|
||||
pub message_type: Option<i32>,
|
||||
#[prost(message, optional, tag = "21")]
|
||||
pub rndr_srvr_join_session: Option<JoinSessionMessage>,
|
||||
#[prost(message, optional, tag = "22")]
|
||||
pub rndr_srvr_device_info_updated: Option<DeviceInfoMessage>,
|
||||
#[prost(message, optional, tag = "23")]
|
||||
pub rndr_srvr_state_updated: Option<RendererStateUpdatedMessage>,
|
||||
#[prost(message, optional, tag = "25")]
|
||||
|
||||
@@ -42,6 +42,8 @@ impl RendererServerCommand {
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
|
||||
pub enum RendererReportType {
|
||||
RndrSrvrJoinSession,
|
||||
RndrSrvrDeviceInfoUpdated,
|
||||
RndrSrvrStateUpdated,
|
||||
RndrSrvrVolumeChanged,
|
||||
RndrSrvrVolumeMuted,
|
||||
@@ -52,6 +54,8 @@ pub enum RendererReportType {
|
||||
impl RendererReportType {
|
||||
pub const fn as_message_type(self) -> &'static str {
|
||||
match self {
|
||||
Self::RndrSrvrJoinSession => "MESSAGE_TYPE_RNDR_SRVR_JOIN_SESSION",
|
||||
Self::RndrSrvrDeviceInfoUpdated => "MESSAGE_TYPE_RNDR_SRVR_DEVICE_INFO_UPDATED",
|
||||
Self::RndrSrvrStateUpdated => "MESSAGE_TYPE_RNDR_SRVR_STATE_UPDATED",
|
||||
Self::RndrSrvrVolumeChanged => "MESSAGE_TYPE_RNDR_SRVR_VOLUME_CHANGED",
|
||||
Self::RndrSrvrVolumeMuted => "MESSAGE_TYPE_RNDR_SRVR_VOLUME_MUTED",
|
||||
|
||||
Reference in new issue
Block a user