]> git.sesse.net Git - vlc/blobdiff - src/libvlc.h
Move object lock and condition into the internals
[vlc] / src / libvlc.h
index 936b75c1e06ed95aa08584703756c0077131638e..24572742faeda6838f2201b76022204b66d4fe74 100644 (file)
@@ -179,6 +179,8 @@ struct vlc_object_internals_t
     bool            b_thread;
 
     /* Objects thread synchronization */
+    vlc_mutex_t     lock;
+    vlc_cond_t      wait;
     int             pipes[2];
     vlc_spinlock_t  spin;
 
@@ -204,6 +206,16 @@ struct vlc_object_internals_t
 
 #define vlc_internals( obj ) (((vlc_object_internals_t*)(VLC_OBJECT(obj)))-1)
 
+/* Signal an object without checking for locking consistency. This is wrong. */
+#ifdef __GNUC__
+__attribute__((deprecated))
+#endif
+static inline void
+vlc_object_signal_maybe (vlc_object_t *p_this)
+{
+    vlc_cond_signal (&(vlc_internals(p_this)->wait));
+}
+
 /**
  * Private LibVLC instance data.
  */
@@ -247,6 +259,8 @@ static inline libvlc_priv_t *libvlc_priv (libvlc_int_t *libvlc)
     return (libvlc_priv_t *)(libvlc + 1);
 }
 
+void playlist_ServicesDiscoveryKillAll( playlist_t *p_playlist );
+
 #define libvlc_stats( o ) (libvlc_priv((VLC_OBJECT(o))->p_libvlc)->b_stats)
 
 /**