Commit f2993b77 authored by Steve Lhomme's avatar Steve Lhomme Committed by Jean-Baptiste Kempf

chromecast: use the enum to handle the connection status

Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent 46d740aa
...@@ -212,7 +212,7 @@ static int Open(vlc_object_t *p_this) ...@@ -212,7 +212,7 @@ static int Open(vlc_object_t *p_this)
Clean(p_stream); Clean(p_stream);
return VLC_EGENERIC; return VLC_EGENERIC;
} }
p_sys->p_intf->i_status = CHROMECAST_TLS_CONNECTED; p_sys->p_intf->conn_status = CHROMECAST_TLS_CONNECTED;
char psz_localIP[NI_MAXNUMERICHOST]; char psz_localIP[NI_MAXNUMERICHOST];
if (net_GetSockAddress(p_sys->i_sock_fd, psz_localIP, NULL)) if (net_GetSockAddress(p_sys->i_sock_fd, psz_localIP, NULL))
...@@ -265,7 +265,7 @@ static int Open(vlc_object_t *p_this) ...@@ -265,7 +265,7 @@ static int Open(vlc_object_t *p_this)
int i_ret = 0; int i_ret = 0;
const mtime_t deadline = mdate() + 6 * CLOCK_FREQ; const mtime_t deadline = mdate() + 6 * CLOCK_FREQ;
vlc_mutex_lock(&p_intf->lock); vlc_mutex_lock(&p_intf->lock);
while (p_sys->p_intf->i_status != CHROMECAST_MEDIA_LOAD_SENT) while (p_sys->p_intf->conn_status != CHROMECAST_MEDIA_LOAD_SENT)
{ {
i_ret = vlc_cond_timedwait(&p_sys->p_intf->loadCommandCond, &p_intf->lock, deadline); i_ret = vlc_cond_timedwait(&p_sys->p_intf->loadCommandCond, &p_intf->lock, deadline);
if (i_ret == ETIMEDOUT) if (i_ret == ETIMEDOUT)
...@@ -305,7 +305,7 @@ static void Close(vlc_object_t *p_this) ...@@ -305,7 +305,7 @@ static void Close(vlc_object_t *p_this)
vlc_cancel(p_sys->chromecastThread); vlc_cancel(p_sys->chromecastThread);
vlc_join(p_sys->chromecastThread, NULL); vlc_join(p_sys->chromecastThread, NULL);
switch (p_sys->p_intf->i_status) switch (p_sys->p_intf->conn_status)
{ {
case CHROMECAST_MEDIA_LOAD_SENT: case CHROMECAST_MEDIA_LOAD_SENT:
case CHROMECAST_APP_STARTED: case CHROMECAST_APP_STARTED:
...@@ -387,7 +387,7 @@ static void disconnectChromecast(sout_stream_t *p_stream) ...@@ -387,7 +387,7 @@ static void disconnectChromecast(sout_stream_t *p_stream)
vlc_tls_SessionDelete(p_sys->p_tls); vlc_tls_SessionDelete(p_sys->p_tls);
vlc_tls_Delete(p_sys->p_creds); vlc_tls_Delete(p_sys->p_creds);
p_sys->p_tls = NULL; p_sys->p_tls = NULL;
p_sys->p_intf->i_status = CHROMECAST_DISCONNECTED; p_sys->p_intf->conn_status = CHROMECAST_DISCONNECTED;
} }
} }
...@@ -599,7 +599,7 @@ static void* chromecastThread(void* p_data) ...@@ -599,7 +599,7 @@ static void* chromecastThread(void* p_data)
{ {
msg_Err(p_stream, "The connection to the Chromecast died."); msg_Err(p_stream, "The connection to the Chromecast died.");
vlc_mutex_locker locker(&p_sys->p_intf->lock); vlc_mutex_locker locker(&p_sys->p_intf->lock);
p_sys->p_intf->i_status = CHROMECAST_CONNECTION_DEAD; p_sys->p_intf->conn_status = CHROMECAST_CONNECTION_DEAD;
break; break;
} }
...@@ -628,12 +628,12 @@ static void* chromecastThread(void* p_data) ...@@ -628,12 +628,12 @@ static void* chromecastThread(void* p_data)
{ {
msg_Err(p_stream, "The connection to the Chromecast died."); msg_Err(p_stream, "The connection to the Chromecast died.");
vlc_mutex_locker locker(&p_sys->p_intf->lock); vlc_mutex_locker locker(&p_sys->p_intf->lock);
p_sys->p_intf->i_status = CHROMECAST_CONNECTION_DEAD; p_sys->p_intf->conn_status = CHROMECAST_CONNECTION_DEAD;
} }
} }
vlc_mutex_lock(&p_sys->p_intf->lock); vlc_mutex_lock(&p_sys->p_intf->lock);
if ( p_sys->p_intf->i_status == CHROMECAST_CONNECTION_DEAD ) if ( p_sys->p_intf->conn_status == CHROMECAST_CONNECTION_DEAD )
{ {
vlc_mutex_unlock(&p_sys->p_intf->lock); vlc_mutex_unlock(&p_sys->p_intf->lock);
break; break;
......
...@@ -47,7 +47,7 @@ static const std::string NAMESPACE_MEDIA = "urn:x-cast:com.google.cas ...@@ -47,7 +47,7 @@ static const std::string NAMESPACE_MEDIA = "urn:x-cast:com.google.cas
// Status // Status
enum enum connection_status
{ {
CHROMECAST_DISCONNECTED, CHROMECAST_DISCONNECTED,
CHROMECAST_TLS_CONNECTED, CHROMECAST_TLS_CONNECTED,
...@@ -80,7 +80,7 @@ struct intf_sys_t ...@@ -80,7 +80,7 @@ struct intf_sys_t
void msgPlayerLoad(); void msgPlayerLoad();
int i_status; enum connection_status conn_status;
std::queue<castchannel::CastMessage> messagesToSend; std::queue<castchannel::CastMessage> messagesToSend;
unsigned i_requestId; unsigned i_requestId;
......
...@@ -73,7 +73,7 @@ static castchannel::CastMessage buildMessage(std::string namespace_, ...@@ -73,7 +73,7 @@ static castchannel::CastMessage buildMessage(std::string namespace_,
intf_sys_t::intf_sys_t(sout_stream_t * const p_this) intf_sys_t::intf_sys_t(sout_stream_t * const p_this)
: p_stream(p_this) : p_stream(p_this)
, i_status(CHROMECAST_DISCONNECTED) , conn_status(CHROMECAST_DISCONNECTED)
, i_requestId(0) , i_requestId(0)
{ {
vlc_mutex_init(&lock); vlc_mutex_init(&lock);
...@@ -111,7 +111,7 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg) ...@@ -111,7 +111,7 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg)
else else
{ {
vlc_mutex_locker locker(&lock); vlc_mutex_locker locker(&lock);
i_status = CHROMECAST_AUTHENTICATED; conn_status = CHROMECAST_AUTHENTICATED;
msgConnect(DEFAULT_CHOMECAST_RECEIVER); msgConnect(DEFAULT_CHOMECAST_RECEIVER);
msgReceiverLaunchApp(); msgReceiverLaunchApp();
} }
...@@ -164,25 +164,25 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg) ...@@ -164,25 +164,25 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg)
if ( p_app ) if ( p_app )
{ {
if (!appTransportId.empty() if (!appTransportId.empty()
&& i_status == CHROMECAST_AUTHENTICATED) && conn_status == CHROMECAST_AUTHENTICATED)
{ {
i_status = CHROMECAST_APP_STARTED; conn_status = CHROMECAST_APP_STARTED;
msgConnect(appTransportId); msgConnect(appTransportId);
msgPlayerLoad(); msgPlayerLoad();
i_status = CHROMECAST_MEDIA_LOAD_SENT; conn_status = CHROMECAST_MEDIA_LOAD_SENT;
vlc_cond_signal(&loadCommandCond); vlc_cond_signal(&loadCommandCond);
} }
} }
else else
{ {
switch(i_status) switch(conn_status)
{ {
/* If the app is no longer present */ /* If the app is no longer present */
case CHROMECAST_APP_STARTED: case CHROMECAST_APP_STARTED:
case CHROMECAST_MEDIA_LOAD_SENT: case CHROMECAST_MEDIA_LOAD_SENT:
msg_Warn(p_stream, "app is no longer present. closing"); msg_Warn(p_stream, "app is no longer present. closing");
msgReceiverClose(appTransportId); msgReceiverClose(appTransportId);
i_status = CHROMECAST_CONNECTION_DEAD; conn_status = CHROMECAST_CONNECTION_DEAD;
default: default:
break; break;
} }
...@@ -214,7 +214,7 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg) ...@@ -214,7 +214,7 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg)
msg_Err(p_stream, "Media load failed"); msg_Err(p_stream, "Media load failed");
msgReceiverClose(appTransportId); msgReceiverClose(appTransportId);
vlc_mutex_lock(&lock); vlc_mutex_lock(&lock);
i_status = CHROMECAST_CONNECTION_DEAD; conn_status = CHROMECAST_CONNECTION_DEAD;
vlc_mutex_unlock(&lock); vlc_mutex_unlock(&lock);
} }
else else
...@@ -235,7 +235,7 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg) ...@@ -235,7 +235,7 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg)
{ {
msg_Warn(p_stream, "received close message"); msg_Warn(p_stream, "received close message");
vlc_mutex_lock(&lock); vlc_mutex_lock(&lock);
i_status = CHROMECAST_CONNECTION_DEAD; conn_status = CHROMECAST_CONNECTION_DEAD;
vlc_mutex_unlock(&lock); vlc_mutex_unlock(&lock);
} }
else else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment