]> git.sesse.net Git - vlc/blobdiff - src/libvlc.h
Add a useful link to precious Meuhh's comments
[vlc] / src / libvlc.h
index 9aedae50f208455b0036b269118587392f22a3bb..b64c2aeafd4a0a9fc9c40d979e46a4b022250628 100644 (file)
 
 extern const char vlc_usage[];
 
-extern const module_config_t libvlc_config[];
-extern const size_t libvlc_config_count;
-
 extern const struct hotkey libvlc_hotkeys[];
 extern const size_t libvlc_hotkeys_size;
 
+
+/*
+ * Threads subsystem
+ */
+int __vlc_threads_init( vlc_object_t * );
+int __vlc_threads_end( vlc_object_t * );
+
+/*
+ * CPU capabilities
+ */
+extern uint32_t cpu_flags;
+uint32_t CPUCapabilities( void );
+
+/*
+ * Unicode stuff
+ */
+
+/*
+ * LibVLC objects stuff
+ */
+
 extern vlc_object_t *
 vlc_custom_create (vlc_object_t *p_this, size_t i_size, int i_type,
                    const char *psz_type);
@@ -74,24 +92,88 @@ struct libvlc_global_data_t
 #endif
 };
 
-#define vlc_global( a ) __vlc_global( VLC_OBJECT( a ) )
-static inline libvlc_global_data_t *__vlc_global( vlc_object_t *p_this )
-{
-    return (libvlc_global_data_t *)p_this->p_libvlc_global;
-}
 
-extern uint32_t cpu_flags;
-uint32_t CPUCapabilities( void );
+libvlc_global_data_t *vlc_global (void);
+libvlc_int_t *vlc_current_object (int i_object);
 
 /* Private LibVLC data for each objects */
 struct vlc_object_internals_t
 {
+    /* Object variables */
+    variable_t *    p_vars;
+    vlc_mutex_t     var_lock;
+    int             i_vars;
+
+    /* Thread properties, if any */
+    vlc_thread_t    thread_id;
+    vlc_bool_t      b_thread;
 
+    /* Objects thread synchronization */
+    int             pipes[2];
+
+    /* Objects management */
+    unsigned        i_refcount;
+    vlc_bool_t      b_attached;
 };
 
+
 static inline vlc_object_internals_t *vlc_internals( vlc_object_t *obj )
 {
     return obj->p_internals;
 }
 
+/*
+ * Configuration stuff
+ */
+#if 0
+struct module_config_t
+{
+    int          i_type;                               /* Configuration type */
+    const char  *psz_type;                          /* Configuration subtype */
+    const char  *psz_name;                                    /* Option name */
+    char         i_short;                      /* Optional short option name */
+    const char  *psz_text;      /* Short comment on the configuration option */
+    const char  *psz_longtext;   /* Long comment on the configuration option */
+    module_value_t value;                                    /* Option value */
+    module_value_t orig;
+    module_value_t saved;
+    module_nvalue_t min;
+    module_nvalue_t max;
+
+    /* Function to call when commiting a change */
+    vlc_callback_t pf_callback;
+    void          *p_callback_data;
+
+    /* Values list */
+    const char **ppsz_list;       /* List of possible values for the option */
+    int         *pi_list;                              /* Idem for integers */
+    const char **ppsz_list_text;          /* Friendly names for list values */
+    int          i_list;                               /* Options list size */
+
+    /* Actions list */
+    vlc_callback_t *ppf_action;    /* List of possible actions for a config */
+    const char    **ppsz_action_text;         /* Friendly names for actions */
+    int            i_action;                           /* actions list size */
+
+    /* Misc */
+    vlc_mutex_t *p_lock;            /* Lock to use when modifying the config */
+    vlc_bool_t   b_dirty;          /* Dirty flag to indicate a config change */
+    vlc_bool_t   b_advanced;          /* Flag to indicate an advanced option */
+    vlc_bool_t   b_internal;   /* Flag to indicate option is not to be shown */
+    vlc_bool_t   b_restart;   /* Flag to indicate the option needs a restart */
+                              /* to take effect */
+
+    /* Deprecated */
+    const char    *psz_current;                         /* Good option name */
+    vlc_bool_t     b_strict;                     /* Transitionnal or strict */
+
+    /* Option values loaded from config file */
+    vlc_bool_t   b_autosave;      /* Config will be auto-saved at exit time */
+    vlc_bool_t   b_unsaveable;                    /* Config should be saved */
+};
+#endif
+
+extern module_config_t libvlc_config[];
+extern const size_t libvlc_config_count;
+
 #endif