]> git.sesse.net Git - vlc/blobdiff - src/control/libvlc_internal.h
user data pointer added to callback structure
[vlc] / src / control / libvlc_internal.h
index 6af7e53ab8916887193099fb1b4f6f8f40fd6b49..afb949282b4fff7549403859145dd32c0a1492f7 100644 (file)
@@ -30,28 +30,47 @@ extern "C" {
 # 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