コード例 #1
0
        private void YouTubeChannel_MessageReceived(object sender, ChromecastSSLClientDataReceivedArgs e)
        {
            var json     = e.Message.PayloadUtf8;
            var response = JsonConvert.DeserializeObject <YouTubeSessionStatusResponse>(json);

            ScreenIdChanged?.Invoke(this, response.Data.ScreenId);
        }
コード例 #2
0
ファイル: ReceiverChannel.cs プロジェクト: ant-1/Popcorn
 private async void ReceiverChannel_MessageReceived(object sender, ChromecastSSLClientDataReceivedArgs e)
 {
     var json = e.Message.PayloadUtf8;
     var response = JsonConvert.DeserializeObject<ChromecastStatusResponse>(json);
     if (response.ChromecastStatus == null) return;
     Client.ChromecastStatus = response.ChromecastStatus;
     Client.Volume = response.ChromecastStatus.Volume;
     await ConnectToApplication(Client.ChromecastApplicationId);
 }
コード例 #3
0
        private async void HeartbeatChannel_MessageReceived(object sender, ChromecastSSLClientDataReceivedArgs e)
        {
            Debug.WriteLine(e.Message.GetJsonType());
            if (Client.Connected || e.Message.GetJsonType() != "PONG")
            {
                return;
            }
            //Wait 100 milliseconds before sending GET_STATUS because chromecast was sending CLOSE back without a wait
            await Task.Delay(100);

            Client.ReceiverChannel.GetChromecastStatus();
            //Wait 100 milliseconds to make sure that the status of Chromecast device is received before notifying we have connected to it
            await Task.Delay(100);

            Client.Connected = true;
        }
コード例 #4
0
        private void OnData(object sender, ChromecastSSLClientDataReceivedArgs e)
        {
            lstDeviceList.InvokeIfRequired(() =>
            {
                // Added just to see how it works out to get the "type" out JSON dynamically. Will be removed.
                Trace.WriteLine(string.Format("Responsetype: {0}", e.Message.GetJsonType()));

                if (e.Message.GetJsonType() == "RECEIVER_STATUS")
                {
                    ReceiverStatusResponse response = e.Message.PayloadUtf8.DeserializeJson <ReceiverStatusResponse>();
                    this.CurrentStatus = response;
                    Trace.WriteLine("current status set");
                }
                lstLog.Items.Add(e.Message.PayloadUtf8);
            });
        }
コード例 #5
0
        private void OnMessageReceived(object sender, ChromecastSSLClientDataReceivedArgs chromecastSSLClientDataReceivedArgs)
        {
            var json     = chromecastSSLClientDataReceivedArgs.Message.PayloadUtf8;
            var response = JsonConvert.DeserializeObject <MediaStatusResponse>(json);

            if (response.status == null)
            {
                return;                          //TODO: Should probably raise LOAD_FAILED event
            }
            if (response.status.Count == 0)
            {
                return;                             //Initializing
            }
            Client.MediaStatus = response.status.First();
            if (Client.MediaStatus.Volume != null)
            {
                Client.Volume = Client.MediaStatus.Volume;
            }
            Client.CurrentMediaSessionId = Client.MediaStatus.MediaSessionId;
        }
コード例 #6
0
ファイル: MediaChannel.cs プロジェクト: ant-1/Popcorn
        private void OnMessageReceived(object sender, ChromecastSSLClientDataReceivedArgs chromecastSSLClientDataReceivedArgs)
        {
            var json     = chromecastSSLClientDataReceivedArgs.Message.PayloadUtf8;
            var response = JsonConvert.DeserializeObject <MediaStatusResponse>(json);

            if (response.status == null)
            {
                var errorMessage = JsonConvert.DeserializeObject <ChromecastMediaError>(json);
                ErrorReceived?.Invoke(this, errorMessage);
                return;
            }
            if (response.status.Count == 0)
            {
                return;                             //Initializing
            }
            Client.MediaStatus = response.status.First();
            if (Client.MediaStatus.Volume != null)
            {
                Client.Volume = Client.MediaStatus.Volume;
            }
            Client.CurrentMediaSessionId = Client.MediaStatus.MediaSessionId;
        }
コード例 #7
0
 public void OnMessageReceived(ChromecastSSLClientDataReceivedArgs e)
 {
     MessageReceived?.Invoke(this, e);
 }