X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Flibvlc.h;h=02bdfaaddbd6eb80de2d72d920015bbd18715ff1;hb=12ade3e3bc975d5426ba4af155b7372c31093b31;hp=a9fd3d17eb89c3a9a4720c54470636c6d2d57c0d;hpb=07dd8683aa2ec200e25a373c1f390f7fa3097b8d;p=vlc diff --git a/src/libvlc.h b/src/libvlc.h index a9fd3d17eb..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) */ @@ -93,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 */ @@ -197,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) @@ -210,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) @@ -246,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; @@ -306,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