X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Flibvlc.h;h=6013b84dd192a9b19e0f8c7961890ab5514e5037;hb=aefe3ed80c4422e50ff0dd753b4395264203a1b7;hp=8516a9082886c212ead49c41fc7bf51cfdb71b0b;hpb=d8180bb27170d1c5be7e1804144f707b0f557b14;p=vlc diff --git a/src/libvlc.h b/src/libvlc.h index 8516a90828..6013b84dd1 100644 --- a/src/libvlc.h +++ b/src/libvlc.h @@ -33,6 +33,24 @@ extern const size_t libvlc_config_count; extern const struct hotkey libvlc_hotkeys[]; extern const size_t libvlc_hotkeys_size; + +/* + * Threads subsystem + */ +int __vlc_threads_init( vlc_object_t * ); +int __vlc_threads_end( vlc_object_t * ); + +/* + * CPU capabilities + */ +extern uint32_t cpu_flags; +uint32_t CPUCapabilities( void ); + + +/* + * LibVLC objects stuff + */ + extern vlc_object_t * vlc_custom_create (vlc_object_t *p_this, size_t i_size, int i_type, const char *psz_type); @@ -74,12 +92,25 @@ struct libvlc_global_data_t #endif }; -#define vlc_global( a ) __vlc_global( VLC_OBJECT( a ) ) -static inline libvlc_global_data_t *__vlc_global( vlc_object_t *p_this ) +libvlc_global_data_t *vlc_global (void); + +/* Private LibVLC data for each objects */ +struct vlc_object_internals_t +{ + /* Object variables */ + variable_t * p_vars; + vlc_mutex_t var_lock; + int i_vars; + + /* Thread properties, if any */ + vlc_thread_t thread_id; + vlc_bool_t b_thread; +}; + + +static inline vlc_object_internals_t *vlc_internals( vlc_object_t *obj ) { - return (libvlc_global_data_t *)p_this->p_libvlc_global; + return obj->p_internals; } -extern uint32_t cpu_flags; - #endif