]> git.sesse.net Git - vlc/blobdiff - src/libvlc.h
Use var_Inherit* instead of var_CreateGet*.
[vlc] / src / libvlc.h
index a9fd3d17eb89c3a9a4720c54470636c6d2d57c0d..02bdfaaddbd6eb80de2d72d920015bbd18715ff1 100644 (file)
@@ -25,6 +25,8 @@
 #ifndef LIBVLC_LIBVLC_H
 # define LIBVLC_LIBVLC_H 1
 
+#include<vlc_media_library.h>
+
 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 <dirent.h>
 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