[vlc-commits] chromecast: thread: Use a trampoline function to simplify

Hugo Beauzée-Luyssen git at videolan.org
Tue Feb 21 14:00:56 CET 2017


vlc | branch: master | Hugo Beauzée-Luyssen <hugo at beauzee.fr> | Fri Feb 17 15:56:12 2017 +0100| [a59884286c3981415efb7657a8f1c34fbfa648c5] | committer: Hugo Beauzée-Luyssen

chromecast: thread: Use a trampoline function to simplify

So we don't have to prefix with p_sys everywhere

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a59884286c3981415efb7657a8f1c34fbfa648c5
---

 modules/stream_out/chromecast/chromecast.h        |  2 ++
 modules/stream_out/chromecast/chromecast_ctrl.cpp | 22 ++++++++++++----------
 2 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/modules/stream_out/chromecast/chromecast.h b/modules/stream_out/chromecast/chromecast.h
index 0334cef..9f79ac8 100644
--- a/modules/stream_out/chromecast/chromecast.h
+++ b/modules/stream_out/chromecast/chromecast.h
@@ -182,6 +182,8 @@ private:
 
     double getPlaybackPosition() const;
 
+    void mainLoop();
+
 private:
     static void* ChromecastThread(void* p_data);
 
diff --git a/modules/stream_out/chromecast/chromecast_ctrl.cpp b/modules/stream_out/chromecast/chromecast_ctrl.cpp
index be94690..d9a17e7 100644
--- a/modules/stream_out/chromecast/chromecast_ctrl.cpp
+++ b/modules/stream_out/chromecast/chromecast_ctrl.cpp
@@ -486,19 +486,22 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg)
 void* intf_sys_t::ChromecastThread(void* p_data)
 {
     intf_sys_t *p_sys = reinterpret_cast<intf_sys_t*>(p_data);
+    p_sys->mainLoop();
+    return NULL;
+}
 
-    vlc_interrupt_set( p_sys->p_ctl_thread_interrupt );
-    vlc_interrupt_set( p_sys->p_ctl_thread_interrupt );
-
-    vlc_mutex_lock(&p_sys->lock);
-    p_sys->setConnectionStatus(CHROMECAST_TLS_CONNECTED);
-    vlc_mutex_unlock(&p_sys->lock);
+void intf_sys_t::mainLoop()
+{
+    vlc_interrupt_set( p_ctl_thread_interrupt );
 
-    p_sys->m_communication.msgAuth();
+    vlc_mutex_lock(&lock);
+    setConnectionStatus(CHROMECAST_TLS_CONNECTED);
+    vlc_mutex_unlock(&lock);
 
-    while ( !vlc_killed() && p_sys->handleMessages() );
+    m_communication.msgAuth();
 
-    return NULL;
+    while ( !vlc_killed() && handleMessages() )
+        ;
 }
 
 bool intf_sys_t::handleMessages()
@@ -711,7 +714,6 @@ double intf_sys_t::getPlaybackPosition() const
     return 0.0;
 }
 
-
 mtime_t intf_sys_t::get_time(void *pt)
 {
     intf_sys_t *p_this = reinterpret_cast<intf_sys_t*>(pt);



More information about the vlc-commits mailing list