X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Flibvlc.h;h=02bdfaaddbd6eb80de2d72d920015bbd18715ff1;hb=f659703fb4033420e0607d34bc7cd880a5802ea7;hp=777d81d9f222cb6f5e48d65077168928dcac9a89;hpb=9f800212803d62e332c1c1e16546c1002aaeb64e;p=vlc diff --git a/src/libvlc.h b/src/libvlc.h index 777d81d9f2..02bdfaaddb 100644 --- a/src/libvlc.h +++ b/src/libvlc.h @@ -25,6 +25,8 @@ #ifndef LIBVLC_LIBVLC_H # define LIBVLC_LIBVLC_H 1 +#include + typedef struct variable_t variable_t; /* Actions (hot keys) */ @@ -42,15 +44,9 @@ extern void vlc_DeinitActions (libvlc_int_t *); * OS-specific initialization */ void system_Init ( libvlc_int_t *, int *, const char *[] ); -void system_Configure ( libvlc_int_t *, int *, const char *[] ); +void system_Configure ( libvlc_int_t *, int, const char *const [] ); void system_End ( libvlc_int_t * ); -/* - * Legacy object stuff that is still used within libvlccore (only) - */ -void vlc_object_detach (vlc_object_t *); -#define vlc_object_detach( o ) vlc_object_detach(VLC_OBJECT(o)) - /* * Threads subsystem */ @@ -99,6 +95,20 @@ const char* msg_StackMsg ( void ); */ char *vlc_fix_readdir (const char *); +/* + * LibVLC exit event handling + */ +typedef struct vlc_exit +{ + vlc_mutex_t lock; + void (*handler) (void *); + void *opaque; + bool killed; +} vlc_exit_t; + +void vlc_ExitInit( vlc_exit_t * ); +void vlc_ExitDestroy( vlc_exit_t * ); + /* * LibVLC objects stuff */ @@ -167,7 +177,6 @@ struct vlc_object_internals vlc_object_internals_t *next; /* next sibling */ vlc_object_internals_t *prev; /* previous sibling */ vlc_object_internals_t *first; /* first child */ - vlc_object_t *old_parent; }; #define ZOOM_SECTION N_("Zoom") @@ -204,7 +213,9 @@ typedef struct libvlc_priv_t /* Singleton objects */ module_t *p_memcpy_module; ///< Fast memcpy plugin used - playlist_t *p_playlist; //< the playlist singleton + playlist_t *p_playlist; ///< the playlist singleton + 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) @@ -217,6 +228,9 @@ typedef struct libvlc_priv_t /* Objects tree */ vlc_mutex_t structure_lock; + + /* Exit callback */ + vlc_exit_t exit; } libvlc_priv_t; static inline libvlc_priv_t *libvlc_priv (libvlc_int_t *libvlc) @@ -253,7 +267,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; @@ -313,32 +327,10 @@ 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 */ +void *vlc_wclosedir (void *); struct _wdirent *vlc_wreaddir (void *); void vlc_rewinddir (void *); # define _wopendir vlc_wopendir