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