# endif
#include <vlc/vlc.h>
-
+#include <vlc/libvlc_structures.h>
+
/***************************************************************************
* Internal creation and destruction functions
***************************************************************************/
-libvlc_int_t *libvlc_InternalCreate();
-int libvlc_InternalInit( libvlc_int_t *, int, char *ppsz_argv[] );
-int libvlc_InternalCleanup( libvlc_int_t * );
-int libvlc_InternalDestroy( libvlc_int_t *, vlc_bool_t );
+VLC_EXPORT (libvlc_int_t *, libvlc_InternalCreate, ( void ) );
+VLC_EXPORT (int, libvlc_InternalInit, ( libvlc_int_t *, int, char *ppsz_argv[] ) );
+VLC_EXPORT (int, libvlc_InternalCleanup, ( libvlc_int_t * ) );
+VLC_EXPORT (int, libvlc_InternalDestroy, ( libvlc_int_t *, vlc_bool_t ) );
-int libvlc_InternalAddIntf( libvlc_int_t *, const char *, vlc_bool_t,
- vlc_bool_t, int, const char *const * );
+VLC_EXPORT (int, libvlc_InternalAddIntf, ( libvlc_int_t *, const char *, vlc_bool_t,
+ vlc_bool_t, int, const char *const * ) );
/***************************************************************************
* Opaque structures for libvlc API
***************************************************************************/
+struct libvlc_callback_entry_t
+{
+ libvlc_callback_t callback;
+ libvlc_event_type_t eventType;
+ void *p_user_data;
+};
+
+struct libvlc_callback_entry_list_t
+{
+ struct libvlc_callback_entry_t *elmt;
+ struct libvlc_callback_entry_list_t *next;
+ struct libvlc_callback_entry_list_t *prev;
+};
+
struct libvlc_instance_t
{
libvlc_int_t *p_libvlc_int;
- vlm_t *p_vlm;
+ vlm_t *p_vlm;
+ int b_playlist_locked;
+ vlc_mutex_t instance_lock;
+ struct libvlc_callback_entry_list_t *p_callback_list;
};
+
struct libvlc_input_t
{
int i_input_id; ///< Input object id. We don't use a pointer to