*/
int vlc_threads_init( void );
void vlc_threads_end( void );
+vlc_object_t *vlc_threadobj (void);
+#ifndef NDEBUG
+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
vlc_spinlock_t ref_spin;
unsigned i_refcount;
vlc_destructor_t pf_destructor;
- bool b_attached;
+#ifndef NDEBUG
+ 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.
*/
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