private void OnReceiveReceiverStatus(MessageReceiverStatus receiverStatusMessage) { if (receiverStatusMessage != null && receiverStatusMessage.status != null && receiverStatusMessage.status.applications != null) { onVolumeUpdate(receiverStatusMessage.status.volume); var deviceApplication = receiverStatusMessage.status.applications.Where(a => a.appId.Equals("CC1AD845")); if (deviceApplication.Any()) { chromeCastDestination = deviceApplication.First().transportId; chromeCastApplicationSessionNr = deviceApplication.First().sessionId; if (getDeviceState().Equals(DeviceState.LaunchingApplication)) { setDeviceState(DeviceState.LaunchedApplication, null); Connect(chromeCastSource, chromeCastDestination); LoadMedia(); } } } if (lastVolumeSetItem != null && lastVolumeSetItem.RequestId == receiverStatusMessage.requestId) { lastVolumeSetItem = null; SendVolumeSet(); } }
private void OnReceiveReceiverStatus(MessageReceiverStatus receiverStatusMessage) { if (receiverStatusMessage != null && receiverStatusMessage.status != null && receiverStatusMessage.status.applications != null) { currentVolume = receiverStatusMessage.status.volume; VolumeChanged?.Invoke(this, currentVolume); var deviceApplication = receiverStatusMessage.status.applications.Where(a => a.appId.Equals("CC1AD845")); if (deviceApplication.Any()) { chromeCastDestination = deviceApplication.First().transportId; chromeCastApplicationSessionNr = deviceApplication.First().sessionId; } } }
/// <summary> /// Handle a receiver status message from the device. /// </summary> /// <param name="receiverStatusMessage">a receiver status message</param> private void OnReceiveReceiverStatus(MessageReceiverStatus receiverStatusMessage) { if (receiverStatusMessage == null) { return; } if (receiverStatusMessage?.status?.volume != null) { device.OnVolumeUpdate(receiverStatusMessage.status.volume); } var statusText = receiverStatusMessage?.status?.applications?.FirstOrDefault()?.statusText; statusText = statusText?.Replace("Default Media Receiver", string.Empty); var state = device.GetDeviceState(); if (state == DeviceState.ConnectError || state == DeviceState.NotConnected || state == DeviceState.Closed) { device.SetDeviceState(DeviceState.Connected, null); Connected = true; } device.SetDeviceState(device.GetDeviceState(), $" {statusText}"); if (receiverStatusMessage != null && receiverStatusMessage.status != null && receiverStatusMessage.status.applications != null) { var deviceApplication = receiverStatusMessage.status.applications.Where(a => a.appId.Equals("CC1AD845")); if (deviceApplication.Any()) { chromeCastDestination = deviceApplication.First().transportId; chromeCastApplicationSessionNr = deviceApplication.First().sessionId; if (device.GetDeviceState().Equals(DeviceState.LaunchingApplication)) { device.SetDeviceState(DeviceState.LaunchedApplication, null); Connect(chromeCastSource, chromeCastDestination); LoadMedia(); } } } if (lastVolumeSetItem != null && lastVolumeSetItem.RequestId == receiverStatusMessage.requestId) { lastVolumeSetItem = null; SendVolumeSet(); } }
private CastMessage ReceiverStatusMessageFromDevice() { var receiverStatusMessageFromDevice = new MessageReceiverStatus { type = "RECEIVER_STATUS", status = new ReceiverStatus { applications = new List <Communication.Classes.Application> { new Communication.Classes.Application { appId = "CC1AD845", displayName = "test" } }, volume = new Volume { controlType = "", level = 0.25f, muted = false, stepInterval = 0.05f } }, requestId = 0 }; return(new ChromeCastMessages().GetCastMessage(receiverStatusMessageFromDevice, string.Empty)); }