]> git.sesse.net Git - vlc/commitdiff
sout: chromecast: request status on timeout
authorFrancois Cartegnie <fcvlcdev@free.fr>
Thu, 2 Oct 2014 13:33:41 +0000 (15:33 +0200)
committerFrancois Cartegnie <fcvlcdev@free.fr>
Thu, 2 Oct 2014 15:36:01 +0000 (17:36 +0200)
modules/stream_out/chromecast/cast.cpp

index 6407997b4eb27e22f1f3be9d37e7870c858704d5..069bd312b2fbe3a2123d3a83c5c0bd896da8ab10 100644 (file)
@@ -121,6 +121,7 @@ static void msgConnect(sout_stream_t *p_stream, std::string destinationId);
 static void msgClose(sout_stream_t *p_stream, std::string destinationId);
 static void msgLaunch(sout_stream_t *p_stream);
 static void msgLoad(sout_stream_t *p_stream);
+static void msgStatus(sout_stream_t *p_stream);
 
 static void *chromecastThread(void *data);
 
@@ -778,6 +779,18 @@ static void msgClose(sout_stream_t *p_stream, std::string destinationId)
     p_sys->messagesToSend.push(msg);
 }
 
+static void msgStatus(sout_stream_t *p_stream)
+{
+    sout_stream_sys_t *p_sys = p_stream->p_sys;
+
+    std::stringstream ss;
+    ss << "{\"type\":\"GET_STATUS\"}";
+
+    castchannel::CastMessage msg = buildMessage("urn:x-cast:com.google.cast.receiver",
+        castchannel::CastMessage_PayloadType_STRING, ss.str());
+
+    p_sys->messagesToSend.push(msg);
+}
 
 static void msgLaunch(sout_stream_t *p_stream)
 {
@@ -859,7 +872,10 @@ static void* chromecastThread(void* p_data)
         }
 
         if (b_pingTimeout)
+        {
             msgPing(p_stream);
+            msgStatus(p_stream);
+        }
 
         if (b_msgReceived)
         {