#ifndef LIBVLC_LIBVLC_H
# define LIBVLC_LIBVLC_H 1
+#include<vlc_media_library.h>
+
typedef struct variable_t variable_t;
/* Actions (hot keys) */
* 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
*/
*/
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
*/
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")
/* 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)
/* 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)
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;