X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Flibvlc.h;h=0964abdf278af655ca08acb88759ef8c4832fec1;hb=bd054d30866ab0144e0b0582e249184a8ea6506f;hp=9194932afd29fd18bffe2225db37a7e3ec523a9c;hpb=c807dafe39ee811da69b5fda6729e21ed77734bf;p=vlc diff --git a/src/libvlc.h b/src/libvlc.h index 9194932afd..0964abdf27 100644 --- a/src/libvlc.h +++ b/src/libvlc.h @@ -45,6 +45,12 @@ void system_End ( libvlc_int_t * ); */ int vlc_threads_init( void ); void vlc_threads_end( void ); +vlc_object_t *vlc_threadobj (void); +#ifdef LIBVLC_REFCHECK +void vlc_refcheck (vlc_object_t *obj); +#else +# define vlc_refcheck( obj ) (void)0 +#endif /* * CPU capabilities @@ -149,8 +155,6 @@ typedef struct libvlc_global_data_t /* Object structure data */ int i_counter; ///< object counter - int i_objects; ///< Attached objects count - vlc_object_t ** pp_objects; ///< Array of all objects module_bank_t * p_module_bank; ///< The module bank @@ -159,7 +163,6 @@ typedef struct libvlc_global_data_t libvlc_global_data_t *vlc_global (void); -libvlc_int_t *vlc_current_object (int i_object); /** * Private LibVLC data for each object. @@ -183,7 +186,12 @@ struct vlc_object_internals_t vlc_spinlock_t ref_spin; unsigned i_refcount; vlc_destructor_t pf_destructor; +#ifndef LIBVLC_REFCHECK + vlc_thread_t creator_id; +#endif + /* Objects tree structure */ + vlc_object_t *prev, *next; vlc_object_t **pp_children; int i_children; }; @@ -194,10 +202,7 @@ struct vlc_object_internals_t #define ZOOM_ORIGINAL_KEY_TEXT N_("1:1 Original") #define ZOOM_DOUBLE_KEY_TEXT N_("2:1 Double") -static inline vlc_object_internals_t *vlc_internals( vlc_object_t *obj ) -{ - return ((vlc_object_internals_t *)obj) - 1; -} +#define vlc_internals( obj ) (((vlc_object_internals_t*)(VLC_OBJECT(obj)))-1) /** * Private LibVLC instance data. @@ -232,6 +237,9 @@ typedef struct libvlc_priv_t vlm_t *p_vlm; ///< the VLM singleton (or NULL) vlc_object_t *p_interaction; ///< interface interaction object httpd_t *p_httpd; ///< HTTP daemon (src/network/httpd.c) + + /* Private playlist data (FIXME - playlist_t is too public...) */ + sout_instance_t *p_sout; ///< kept sout instance (for playlist) } libvlc_priv_t; static inline libvlc_priv_t *libvlc_priv (libvlc_int_t *libvlc) @@ -239,6 +247,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) /**