X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Flibvlc.h;h=02bdfaaddbd6eb80de2d72d920015bbd18715ff1;hb=12ade3e3bc975d5426ba4af155b7372c31093b31;hp=046c90199446625f2a5f6377fd32de65975daf1b;hpb=094cdf1403bf562dcbed008196276f747258dea4;p=vlc diff --git a/src/libvlc.h b/src/libvlc.h index 046c901994..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 */ @@ -93,13 +89,26 @@ void msg_Destroy (msg_bank_t *); void msg_StackSet ( int, const char*, ... ); void msg_StackAdd ( const char*, ... ); const char* msg_StackMsg ( void ); -void msg_StackDestroy (void *); /* * Unicode stuff */ 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 */ @@ -168,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") @@ -205,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) @@ -218,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) @@ -254,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; @@ -314,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