Exemplo n.º 1
0
        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;
                }
            }
        }
Exemplo n.º 3
0
        /// <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));
        }