X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Flibvlc.h;h=044a599e473ace1f0ca5c16628d0c9d9c8fb9164;hb=c7681744dec5cd48a9c9de9a5405d648081b0bd9;hp=48205b1471b96712a354a811ace5022a0ddef251;hpb=6bff1cc92a66ab1a73ba1fbf22523671bf5c8ce3;p=vlc diff --git a/src/libvlc.h b/src/libvlc.h index 48205b1471..044a599e47 100644 --- a/src/libvlc.h +++ b/src/libvlc.h @@ -25,8 +25,6 @@ #ifndef LIBVLC_LIBVLC_H # define LIBVLC_LIBVLC_H 1 -#include - typedef struct variable_t variable_t; /* Actions (hot keys) */ @@ -40,6 +38,8 @@ extern const size_t libvlc_actions_count; extern int vlc_InitActions (libvlc_int_t *); extern void vlc_DeinitActions (libvlc_int_t *); +size_t vlc_towc (const char *str, uint32_t *restrict pwc); + /* * OS-specific initialization */ @@ -51,8 +51,8 @@ void system_End ( libvlc_int_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 *); @@ -85,16 +85,6 @@ 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 ); - -/* - * Unicode stuff - */ -char *vlc_fix_readdir (const char *); - /* * LibVLC exit event handling */ @@ -139,6 +129,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: */ @@ -214,7 +210,8 @@ 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 httpd_t *p_httpd; ///< HTTP daemon (src/network/httpd.c) @@ -266,7 +263,7 @@ int stats_Get (vlc_object_t*, counter_t *, vlc_value_t*); void stats_CounterClean (counter_t * ); static inline int stats_GetInteger( vlc_object_t *p_obj, counter_t *p_counter, - int *value ) + int64_t *value ) { int i_ret; vlc_value_t val; val.i_int = 0; @@ -323,41 +320,4 @@ 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 - */ -# ifndef HAVE_DIRENT_H -typedef void DIR; -# ifndef FILENAME_MAX -# define FILENAME_MAX (260) -# endif -struct dirent -{ - long d_ino; /* Always zero. */ - unsigned short d_reclen; /* Always zero. */ - unsigned short d_namlen; /* Length of name in d_name. */ - char d_name[FILENAME_MAX]; /* File name. */ -}; -# define opendir vlc_opendir -# define readdir vlc_readdir -# define closedir vlc_closedir -# define rewinddir vlc_rewindir -void *vlc_opendir (const char *); -void *vlc_readdir (void *); -int vlc_closedir(void *); -void vlc_rewinddir(void *); -# endif - -#if defined (WIN32) -# include -void *vlc_wopendir (const wchar_t *); -/* void *vlc_wclosedir (void *); in vlc's exported symbols */ -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 - #endif