/// <summary>
        /// Send a message to get the device media or receiver status.
        /// </summary>
        public void GetStatus()
        {
            if (chromeCastMessages == null || device == null || IsDisposed)
            {
                return;
            }

            var deviceState = device.GetDeviceState();

            if (!pendingStatusMessage)
            {
                pendingStatusMessage = true;
                if (deviceState == DeviceState.Playing ||
                    deviceState == DeviceState.Buffering ||
                    deviceState == DeviceState.Paused)
                {
                    SendMessage(chromeCastMessages.GetMediaStatusMessage(GetNextRequestId(), chromeCastSource, chromeCastDestination));
                }
                else
                {
                    GetReceiverStatus();
                }
            }
            else
            {
                logger.Log($"[{DateTime.Now.ToLongTimeString()}] [{device.GetHost()}:{device.GetPort()}] Last received message: {lastReceivedMessage}");
            }

            // Keep trying to play when in playing mode.
            if (userMode == UserMode.Playing)
            {
                switch (deviceState)
                {
                case DeviceState.NotConnected:
                case DeviceState.Disposed:
                case DeviceState.ConnectError:
                case DeviceState.LoadFailed:
                case DeviceState.LoadCancelled:
                case DeviceState.InvalidRequest:
                case DeviceState.Closed:
                case DeviceState.Connected:
                case DeviceState.LaunchingApplication:
                case DeviceState.LaunchedApplication:
                case DeviceState.Idle:
                    ResumePlaying();
                    break;

                case DeviceState.LoadingMedia:
                case DeviceState.LoadingMediaCheckFirewall:
                case DeviceState.Buffering:
                case DeviceState.Playing:
                case DeviceState.Paused:
                default:
                    break;
                }
            }
        }
        public void GetStatus()
        {
            var deviceState = getDeviceState();

            if (deviceState == DeviceState.Playing ||
                deviceState == DeviceState.Buffering ||
                deviceState == DeviceState.Paused)
            {
                SendMessage(chromeCastMessages.GetMediaStatusMessage(GetNextRequestId(), chromeCastSource, chromeCastDestination));
            }
            else
            {
                GetReceiverStatus();
            }
        }
Beispiel #3
0
 public void GetMediaStatus()
 {
     SendMessage(chromeCastMessages.GetMediaStatusMessage(GetNextRequestId(), chromeCastSource, chromeCastDestination));
 }