X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Flibvlc.h;h=34070cee228e17235697dc93a1c02660eeb5fa97;hb=2d2df2dce5a1ee32cf9f493158595c4dcb7d1a88;hp=793e67a798c559fb988beff4a3ccfdee6fa7fd05;hpb=b298ce46d52a627d49e09e2203a93110cbbf51d1;p=vlc diff --git a/src/libvlc.h b/src/libvlc.h index 793e67a798..34070cee22 100644 --- a/src/libvlc.h +++ b/src/libvlc.h @@ -25,39 +25,38 @@ #ifndef LIBVLC_LIBVLC_H # define LIBVLC_LIBVLC_H 1 -#include +extern const char psz_vlc_changeset[]; typedef struct variable_t variable_t; /* Actions (hot keys) */ -typedef struct action -{ - char name[24]; - int value; -} action_t; -extern const struct action libvlc_actions[]; -extern const size_t libvlc_actions_count; -extern int vlc_InitActions (libvlc_int_t *); -extern void vlc_DeinitActions (libvlc_int_t *); +struct vlc_actions; +struct vlc_actions *vlc_InitActions (libvlc_int_t *); +extern void vlc_DeinitActions (libvlc_int_t *, struct vlc_actions *); + +size_t vlc_towc (const char *str, uint32_t *restrict pwc); /* * OS-specific initialization */ -void system_Init ( libvlc_int_t *, int *, const char *[] ); +void system_Init ( void ); void system_Configure ( libvlc_int_t *, int, const char *const [] ); -void system_End ( libvlc_int_t * ); +void system_End ( void ); + +void vlc_CPU_init(void); +void vlc_CPU_dump(vlc_object_t *); /* * Threads subsystem */ -/* This cannot be used as is from plugins: */ -void vlc_detach (vlc_thread_t); +/* This cannot be used as is from plugins yet: */ +int vlc_clone_detach (vlc_thread_t *, void *(*)(void *), void *, int); -/* Hopefully, no need to export this. There is a new thread API instead. */ -void vlc_thread_cancel (vlc_object_t *); int vlc_object_waitpipe (vlc_object_t *obj); +int vlc_set_priority( vlc_thread_t, int ); + void vlc_threads_setup (libvlc_int_t *); void vlc_trace (const char *fn, const char *file, unsigned line); @@ -69,27 +68,6 @@ void vlc_assert_locked (vlc_mutex_t *); # define vlc_assert_locked( m ) (void)m #endif -/* - * CPU capabilities - */ -extern uint32_t cpu_flags; -uint32_t CPUCapabilities( void ); -bool vlc_CPU_CheckPluginDir (const char *name); - -/* - * Message/logging stuff - */ - -typedef struct msg_bank_t msg_bank_t; - -msg_bank_t *msg_Create (void); -void msg_Destroy (msg_bank_t *); - -/** Internal message stack context */ -void msg_StackSet ( int, const char*, ... ); -void msg_StackAdd ( const char*, ... ); -const char* msg_StackMsg ( void ); - /* * LibVLC exit event handling */ @@ -118,15 +96,13 @@ void vlc_ExitDestroy( vlc_exit_t * ); * * @param p_this an existing VLC object * @param i_size byte size of the object structure - * @param i_type object type, usually VLC_OBJECT_CUSTOM * @param psz_type object type name * @return the created object, or NULL. */ extern void * -vlc_custom_create (vlc_object_t *p_this, size_t i_size, int i_type, - const char *psz_type); -#define vlc_custom_create(o, s, t, n) \ - vlc_custom_create(VLC_OBJECT(o), s, t, n) +vlc_custom_create (vlc_object_t *p_this, size_t i_size, const char *psz_type); +#define vlc_custom_create(o, s, n) \ + vlc_custom_create(VLC_OBJECT(o), s, n) /** * Assign a name to an object for vlc_object_find_name(). @@ -134,6 +110,12 @@ vlc_custom_create (vlc_object_t *p_this, size_t i_size, int i_type, extern int vlc_object_set_name(vlc_object_t *, const char *); #define vlc_object_set_name(o, n) vlc_object_set_name(VLC_OBJECT(o), n) +/* Types */ +typedef void (*vlc_destructor_t) (struct vlc_object_t *); +void vlc_object_set_destructor (vlc_object_t *, vlc_destructor_t); +#define vlc_object_set_destructor(a,b) \ + vlc_object_set_destructor (VLC_OBJECT(a), b) + /* * To be cleaned-up module stuff: */ @@ -148,7 +130,6 @@ typedef struct vlc_object_internals vlc_object_internals_t; struct vlc_object_internals { - int i_object_type; /* Object type, deprecated */ char *psz_name; /* given name */ /* Object variables */ @@ -156,10 +137,6 @@ struct vlc_object_internals vlc_mutex_t var_lock; vlc_cond_t var_wait; - /* Thread properties, if any */ - vlc_thread_t thread_id; - bool b_thread; - /* Objects thread synchronization */ int pipes[2]; @@ -192,11 +169,9 @@ typedef struct libvlc_priv_t { libvlc_int_t public_data; - int i_last_input_id ; ///< Last id of input item bool playlist_active; /* Messages */ - msg_bank_t *msg_bank; ///< The message bank int i_verbose; ///< info messages bool b_color; ///< color messages? @@ -209,7 +184,7 @@ typedef struct libvlc_priv_t /* Singleton objects */ module_t *p_memcpy_module; ///< Fast memcpy plugin used playlist_t *p_playlist; ///< the playlist singleton - media_library_t *p_ml; ///< the ML singleton + struct media_library_t *p_ml; ///< the ML singleton vlc_mutex_t ml_lock; ///< Mutex for ML creation vlm_t *p_vlm; ///< the VLM singleton (or NULL) vlc_object_t *p_dialog_provider; ///< dialog provider @@ -217,6 +192,7 @@ typedef struct libvlc_priv_t #ifdef ENABLE_SOUT sap_handler_t *p_sap; ///< SAP SDP advertiser #endif + struct vlc_actions *actions; ///< Hotkeys handler /* Interfaces */ struct intf_thread_t *p_intf; ///< Interfaces linked-list @@ -249,7 +225,6 @@ extern const size_t libvlc_config_count; */ void var_OptionParse (vlc_object_t *, const char *, bool trusted); - /* * Stats stuff */ @@ -315,23 +290,8 @@ static inline int stats_UpdateFloat( vlc_object_t *p_obj, counter_t *p_co, } #define stats_UpdateFloat(a,b,c,d) stats_UpdateFloat( VLC_OBJECT(a),b,c,d ) -VLC_EXPORT( void, stats_ComputeInputStats, (input_thread_t*, input_stats_t*) ); -VLC_EXPORT( void, stats_ReinitInputStats, (input_stats_t *) ); -VLC_EXPORT( void, stats_DumpInputStats, (input_stats_t *) ); - -/* - * Replacement functions - */ -#if defined (WIN32) -# include -void *vlc_wopendir (const wchar_t *); -void *vlc_wclosedir (void *); -struct _wdirent *vlc_wreaddir (void *); -void vlc_rewinddir (void *); -# define _wopendir vlc_wopendir -# define _wreaddir vlc_wreaddir -# define _wclosedir vlc_wclosedir -# define rewinddir vlc_rewinddir -#endif +void stats_ComputeInputStats(input_thread_t*, input_stats_t*); +void stats_ReinitInputStats(input_stats_t *); +void stats_DumpInputStats(input_stats_t *); #endif