[vlc-commits] chromecast: make conn_status private and use getter/setter
Steve Lhomme
git at videolan.org
Wed Dec 23 20:28:23 CET 2015
vlc | branch: master | Steve Lhomme <robUx4 at videolabs.io> | Wed Dec 23 12:58:29 2015 +0100| [6147305cf711499eb6a86a32126e8fd98a12c5b8] | committer: Jean-Baptiste Kempf
chromecast: make conn_status private and use getter/setter
Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=6147305cf711499eb6a86a32126e8fd98a12c5b8
---
modules/stream_out/chromecast/cast.cpp | 14 +++++------
modules/stream_out/chromecast/chromecast.h | 27 ++++++++++++++++++---
modules/stream_out/chromecast/chromecast_ctrl.cpp | 16 ++++++------
3 files changed, 39 insertions(+), 18 deletions(-)
diff --git a/modules/stream_out/chromecast/cast.cpp b/modules/stream_out/chromecast/cast.cpp
index fed230c..cbbda7f 100644
--- a/modules/stream_out/chromecast/cast.cpp
+++ b/modules/stream_out/chromecast/cast.cpp
@@ -212,7 +212,7 @@ static int Open(vlc_object_t *p_this)
Clean(p_stream);
return VLC_EGENERIC;
}
- p_sys->p_intf->conn_status = CHROMECAST_TLS_CONNECTED;
+ p_sys->p_intf->setConnectionStatus(CHROMECAST_TLS_CONNECTED);
char psz_localIP[NI_MAXNUMERICHOST];
if (net_GetSockAddress(p_sys->i_sock_fd, psz_localIP, NULL))
@@ -265,7 +265,7 @@ static int Open(vlc_object_t *p_this)
int i_ret = 0;
const mtime_t deadline = mdate() + 6 * CLOCK_FREQ;
vlc_mutex_lock(&p_intf->lock);
- while (p_sys->p_intf->conn_status != CHROMECAST_MEDIA_LOAD_SENT)
+ while (p_sys->p_intf->getConnectionStatus() != CHROMECAST_MEDIA_LOAD_SENT)
{
i_ret = vlc_cond_timedwait(&p_sys->p_intf->loadCommandCond, &p_intf->lock, deadline);
if (i_ret == ETIMEDOUT)
@@ -305,7 +305,7 @@ static void Close(vlc_object_t *p_this)
vlc_cancel(p_sys->chromecastThread);
vlc_join(p_sys->chromecastThread, NULL);
- switch (p_sys->p_intf->conn_status)
+ switch (p_sys->p_intf->getConnectionStatus())
{
case CHROMECAST_MEDIA_LOAD_SENT:
case CHROMECAST_APP_STARTED:
@@ -387,7 +387,7 @@ static void disconnectChromecast(sout_stream_t *p_stream)
vlc_tls_SessionDelete(p_sys->p_tls);
vlc_tls_Delete(p_sys->p_creds);
p_sys->p_tls = NULL;
- p_sys->p_intf->conn_status = CHROMECAST_DISCONNECTED;
+ p_sys->p_intf->setConnectionStatus(CHROMECAST_DISCONNECTED);
}
}
@@ -599,7 +599,7 @@ static void* chromecastThread(void* p_data)
{
msg_Err(p_stream, "The connection to the Chromecast died.");
vlc_mutex_locker locker(&p_sys->p_intf->lock);
- p_sys->p_intf->conn_status = CHROMECAST_CONNECTION_DEAD;
+ p_sys->p_intf->setConnectionStatus(CHROMECAST_CONNECTION_DEAD);
break;
}
@@ -628,12 +628,12 @@ static void* chromecastThread(void* p_data)
{
msg_Err(p_stream, "The connection to the Chromecast died.");
vlc_mutex_locker locker(&p_sys->p_intf->lock);
- p_sys->p_intf->conn_status = CHROMECAST_CONNECTION_DEAD;
+ p_sys->p_intf->setConnectionStatus(CHROMECAST_CONNECTION_DEAD);
}
}
vlc_mutex_lock(&p_sys->p_intf->lock);
- if ( p_sys->p_intf->conn_status == CHROMECAST_CONNECTION_DEAD )
+ if ( p_sys->p_intf->getConnectionStatus() == CHROMECAST_CONNECTION_DEAD )
{
vlc_mutex_unlock(&p_sys->p_intf->lock);
break;
diff --git a/modules/stream_out/chromecast/chromecast.h b/modules/stream_out/chromecast/chromecast.h
index e982a38..bc827b6 100644
--- a/modules/stream_out/chromecast/chromecast.h
+++ b/modules/stream_out/chromecast/chromecast.h
@@ -31,6 +31,7 @@
#include <vlc_common.h>
#include <vlc_plugin.h>
+#include <vlc_sout.h>
#include <queue>
@@ -71,6 +72,24 @@ struct intf_sys_t
void msgAuth();
void msgReceiverClose(std::string destinationId);
+
+ connection_status getConnectionStatus() const
+ {
+ return conn_status;
+ }
+
+ void setConnectionStatus(connection_status status)
+ {
+ if (conn_status != status)
+ {
+#ifndef NDEBUG
+ msg_Dbg(p_stream, "change Chromecast connection status from %d to %d", conn_status, status);
+#endif
+ conn_status = status;
+ vlc_cond_broadcast(&loadCommandCond);
+ }
+ }
+
void msgPing();
void msgPong();
void msgConnect(const std::string & destinationId = DEFAULT_CHOMECAST_RECEIVER);
@@ -80,12 +99,14 @@ struct intf_sys_t
void msgPlayerLoad();
- enum connection_status conn_status;
-
std::queue<castchannel::CastMessage> messagesToSend;
- unsigned i_requestId;
void processMessage(const castchannel::CastMessage &msg);
+
+private:
+ enum connection_status conn_status;
+
+ unsigned i_requestId;
};
#endif /* VLC_CHROMECAST_H */
diff --git a/modules/stream_out/chromecast/chromecast_ctrl.cpp b/modules/stream_out/chromecast/chromecast_ctrl.cpp
index e7dcc55..2847d7c 100644
--- a/modules/stream_out/chromecast/chromecast_ctrl.cpp
+++ b/modules/stream_out/chromecast/chromecast_ctrl.cpp
@@ -111,7 +111,7 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg)
else
{
vlc_mutex_locker locker(&lock);
- conn_status = CHROMECAST_AUTHENTICATED;
+ setConnectionStatus(CHROMECAST_AUTHENTICATED);
msgConnect(DEFAULT_CHOMECAST_RECEIVER);
msgReceiverLaunchApp();
}
@@ -164,25 +164,25 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg)
if ( p_app )
{
if (!appTransportId.empty()
- && conn_status == CHROMECAST_AUTHENTICATED)
+ && getConnectionStatus() == CHROMECAST_AUTHENTICATED)
{
- conn_status = CHROMECAST_APP_STARTED;
+ setConnectionStatus(CHROMECAST_APP_STARTED);
msgConnect(appTransportId);
msgPlayerLoad();
- conn_status = CHROMECAST_MEDIA_LOAD_SENT;
+ setConnectionStatus(CHROMECAST_MEDIA_LOAD_SENT);
vlc_cond_signal(&loadCommandCond);
}
}
else
{
- switch(conn_status)
+ switch(getConnectionStatus())
{
/* If the app is no longer present */
case CHROMECAST_APP_STARTED:
case CHROMECAST_MEDIA_LOAD_SENT:
msg_Warn(p_stream, "app is no longer present. closing");
msgReceiverClose(appTransportId);
- conn_status = CHROMECAST_CONNECTION_DEAD;
+ setConnectionStatus(CHROMECAST_CONNECTION_DEAD);
default:
break;
}
@@ -214,7 +214,7 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg)
msg_Err(p_stream, "Media load failed");
msgReceiverClose(appTransportId);
vlc_mutex_lock(&lock);
- conn_status = CHROMECAST_CONNECTION_DEAD;
+ setConnectionStatus(CHROMECAST_CONNECTION_DEAD);
vlc_mutex_unlock(&lock);
}
else
@@ -235,7 +235,7 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg)
{
msg_Warn(p_stream, "received close message");
vlc_mutex_lock(&lock);
- conn_status = CHROMECAST_CONNECTION_DEAD;
+ setConnectionStatus(CHROMECAST_CONNECTION_DEAD);
vlc_mutex_unlock(&lock);
}
else
More information about the vlc-commits
mailing list