*/
int vlc_threads_init( void );
void vlc_threads_end( void );
+vlc_object_t *vlc_threadobj (void);
+#ifdef LIBVLC_REFCHECK
+void vlc_refcheck (vlc_object_t *obj);
+#else
+# define vlc_refcheck( obj ) (void)0
+#endif
/*
* CPU capabilities
/*
* Unicode stuff
*/
+char *vlc_fix_readdir (const char *);
+bool vlc_current_charset (char **);
/*
* LibVLC objects stuff
{
VLC_COMMON_MEMBERS
- /* Object structure data */
+ /* Object structure data */
int i_counter; ///< object counter
- int i_objects; ///< Attached objects count
- vlc_object_t ** pp_objects; ///< Array of all objects
module_bank_t * p_module_bank; ///< The module bank
libvlc_global_data_t *vlc_global (void);
-libvlc_int_t *vlc_current_object (int i_object);
/**
* Private LibVLC data for each object.
vlc_spinlock_t ref_spin;
unsigned i_refcount;
vlc_destructor_t pf_destructor;
- bool b_attached;
+#ifndef LIBVLC_REFCHECK
+ vlc_thread_t creator_id;
+#endif
+
+ /* Objects tree structure */
+ vlc_object_t *prev, *next;
+ vlc_object_t **pp_children;
+ int i_children;
};
#define ZOOM_SECTION N_("Zoom")
#define ZOOM_ORIGINAL_KEY_TEXT N_("1:1 Original")
#define ZOOM_DOUBLE_KEY_TEXT N_("2:1 Double")
-static inline vlc_object_internals_t *vlc_internals( vlc_object_t *obj )
-{
- return ((vlc_object_internals_t *)obj) - 1;
-}
+#define vlc_internals( obj ) (((vlc_object_internals_t*)(VLC_OBJECT(obj)))-1)
/**
* Private LibVLC instance data.
vlm_t *p_vlm; ///< the VLM singleton (or NULL)
vlc_object_t *p_interaction; ///< interface interaction object
httpd_t *p_httpd; ///< HTTP daemon (src/network/httpd.c)
+
+ /* Private playlist data (FIXME - playlist_t is too public...) */
+ sout_instance_t *p_sout; ///< kept sout instance (for playlist)
} libvlc_priv_t;
static inline libvlc_priv_t *libvlc_priv (libvlc_int_t *libvlc)
*/
void var_OptionParse (vlc_object_t *, const char *, bool trusted);
+/*
+ * 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 */
+struct _wdirent *vlc_wreaddir (void *);
+void vlc_rewinddir (void *);
+# define _wopendir vlc_wopendir
+# define _wreaddir vlc_wreaddir
+# define _wclosedir vlc_wclosedir
+# define rewinddir vlc_rewinddir
+#endif
+
#endif