]> git.sesse.net Git - vlc/blobdiff - src/libvlc.h
IsUTF8: redumdant check for nul
[vlc] / src / libvlc.h
index 629a28fe7dd3dcdf41047037fc1438c8e458e034..303be866115cb4270df8df5efd569e239cd70726 100644 (file)
@@ -35,8 +35,8 @@ typedef struct action
 } action_t;
 extern const struct action libvlc_actions[];
 extern const size_t libvlc_actions_count;
-extern int vlc_key_to_action (vlc_object_t *, const char *,
-                              vlc_value_t, vlc_value_t, void *);
+extern int vlc_InitActions (libvlc_int_t *);
+extern void vlc_DeinitActions (libvlc_int_t *);
 
 /*
  * OS-specific initialization
@@ -48,9 +48,8 @@ void system_End       ( libvlc_int_t * );
 /*
  * Legacy object stuff that is still used within libvlccore (only)
  */
-#define vlc_object_signal_unlocked( obj )
-
-vlc_list_t *vlc_list_find( vlc_object_t *, int, int );
+void vlc_object_detach (vlc_object_t *);
+#define vlc_object_detach( o ) vlc_object_detach(VLC_OBJECT(o))
 
 /*
  * Threads subsystem
@@ -79,31 +78,16 @@ void vlc_assert_locked (vlc_mutex_t *);
  */
 extern uint32_t cpu_flags;
 uint32_t CPUCapabilities( void );
+bool vlc_CPU_CheckPluginDir (const char *name);
 
 /*
  * Message/logging stuff
  */
 
-/**
- * Store all data required by messages interfaces.
- */
-typedef struct msg_bank_t
-{
-    /** Message queue lock */
-    vlc_rwlock_t lock;
+typedef struct msg_bank_t msg_bank_t;
 
-    /* Subscribers */
-    int i_sub;
-    msg_subscription_t **pp_sub;
-
-    /* Logfile for WinCE */
-#ifdef UNDER_CE
-    FILE *logfile;
-#endif
-} msg_bank_t;
-
-void msg_Create  (libvlc_int_t *);
-void msg_Destroy (libvlc_int_t *);
+msg_bank_t *msg_Create (void);
+void msg_Destroy (msg_bank_t *);
 
 /** Internal message stack context */
 void msg_StackSet ( int, const char*, ... );
@@ -156,16 +140,17 @@ module_t *module_find_by_shortcut (const char *psz_shortcut);
 /**
  * Private LibVLC data for each object.
  */
-typedef struct vlc_object_internals_t
+typedef struct vlc_object_internals vlc_object_internals_t;
+
+struct vlc_object_internals
 {
     int             i_object_type; /* Object type, deprecated */
     char           *psz_name; /* given name */
 
     /* Object variables */
-    variable_t *    p_vars;
+    void           *var_root;
     vlc_mutex_t     var_lock;
     vlc_cond_t      var_wait;
-    int             i_vars;
 
     /* Thread properties, if any */
     vlc_thread_t    thread_id;
@@ -180,9 +165,11 @@ typedef struct vlc_object_internals_t
     vlc_destructor_t pf_destructor;
 
     /* Objects tree structure */
-    vlc_object_t   **pp_children;
-    int              i_children;
-} vlc_object_internals_t;
+    vlc_object_internals_t *next;  /* next sibling */
+    vlc_object_internals_t *prev;  /* previous sibling */
+    vlc_object_internals_t *first; /* first child */
+    vlc_object_t   *old_parent;
+};
 
 #define ZOOM_SECTION N_("Zoom")
 #define ZOOM_QUARTER_KEY_TEXT N_("1:4 Quarter")
@@ -191,6 +178,7 @@ typedef struct vlc_object_internals_t
 #define ZOOM_DOUBLE_KEY_TEXT N_("2:1 Double")
 
 #define vlc_internals( obj ) (((vlc_object_internals_t*)(VLC_OBJECT(obj)))-1)
+#define vlc_externals( priv ) ((vlc_object_t *)((priv) + 1))
 
 typedef struct sap_handler_t sap_handler_t;
 
@@ -200,16 +188,14 @@ typedef struct sap_handler_t sap_handler_t;
 typedef struct libvlc_priv_t
 {
     libvlc_int_t       public_data;
-    vlc_cond_t         exiting; ///< signaled when VLC wants to exit
 
     int                i_last_input_id ; ///< Last id of input item
+    bool               playlist_active;
 
     /* Messages */
-    msg_bank_t         msg_bank;    ///< The message bank
+    msg_bank_t        *msg_bank;    ///< The message bank
     int                i_verbose;   ///< info messages
-    vlc_dictionary_t   msg_enabled_objects; ///< Enabled objects
     bool               b_color;     ///< color messages?
-    bool               msg_all_objects_enabled; ///< Should we print all objects?
 
     /* Timer stats */
     bool               b_stats;     ///< Whether to collect stats