]> git.sesse.net Git - vlc/blobdiff - src/libvlc.h
lelombrik: fix title encoding.
[vlc] / src / libvlc.h
index 046c90199446625f2a5f6377fd32de65975daf1b..11263e33e0493fde1f57200ff813322e07ef42b0 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) */
@@ -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;