]> git.sesse.net Git - vlc/blobdiff - include/vlc_modules.h
Qt, help/update: code simplification
[vlc] / include / vlc_modules.h
index 5652455bdfb543a584ee8b772202de306293891e..a6c391a54cdec17802d92783d2e46b5acde698cf 100644 (file)
@@ -1,7 +1,7 @@
 /*****************************************************************************
  * modules.h : Module descriptor and load functions
  *****************************************************************************
- * Copyright (C) 2001 the VideoLAN team
+ * Copyright (C) 2001-2011 the VideoLAN team
  * $Id$
  *
  * Authors: Samuel Hocevar <sam@zoy.org>
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
+/**
+ * \file
+ * This file defines functions for modules in vlc
+ */
+
+typedef int (*vlc_activate_t)(void *func, va_list args);
+typedef void (*vlc_deactivate_t)(void *func, va_list args);
+
 /*****************************************************************************
  * Exported functions.
  *****************************************************************************/
 
-#define module_Need(a,b,c,d) __module_Need(VLC_OBJECT(a),b,c,d)
-VLC_EXPORT( module_t *, __module_Need, ( vlc_object_t *, const char *, const char *, bool ) );
-#define module_Unneed(a,b) __module_Unneed(VLC_OBJECT(a),b)
-VLC_EXPORT( void, __module_Unneed, ( vlc_object_t *, module_t * ) );
-#define module_Exists(a,b) __module_Exists(VLC_OBJECT(a),b)
-VLC_EXPORT( bool,  __module_Exists, ( vlc_object_t *, const char * ) );
+VLC_EXPORT( module_t *, vlc_module_load, ( vlc_object_t *obj, const char *cap, const char *name, bool strict, vlc_activate_t probe, ... ) LIBVLC_USED );
+#define vlc_module_load(o,c,n,s,...) \
+        vlc_module_load(VLC_OBJECT(o),c,n,s,__VA_ARGS__)
+VLC_EXPORT( void, vlc_module_unload, ( module_t *, vlc_deactivate_t deinit, ... ) );
 
-#define module_Find(a,b) __module_Find(VLC_OBJECT(a),b)
-VLC_EXPORT( module_t *, __module_Find, ( vlc_object_t *, const char * ) );
-VLC_EXPORT( void, module_Put, ( module_t *module ) );
+VLC_EXPORT( module_t *, module_need, ( vlc_object_t *, const char *, const char *, bool ) LIBVLC_USED );
+#define module_need(a,b,c,d) module_need(VLC_OBJECT(a),b,c,d)
+VLC_EXPORT( void, module_unneed, ( vlc_object_t *, module_t * ) );
+#define module_unneed(a,b) module_unneed(VLC_OBJECT(a),b)
+VLC_EXPORT( bool,  module_exists, (const char *) LIBVLC_USED );
+VLC_EXPORT( module_t *, module_find, (const char *) LIBVLC_USED );
 
-VLC_EXPORT( module_config_t *, module_GetConfig, ( const module_t *, unsigned * ) );
-VLC_EXPORT( void, module_PutConfig, ( module_config_t * ) );
+int module_start(vlc_object_t *, module_t *);
+#define module_start(o, m) module_start(VLC_OBJECT(o),m)
+void module_stop(vlc_object_t *, module_t *);
+#define module_stop(o, m) module_stop(VLC_OBJECT(o),m)
 
-/* Return a NULL terminated array with the names of the modules that have a
- * certain capability.
- * Free after uses both the string and the table. */
- #define module_GetModulesNamesForCapability(a,b,c) \
-                    __module_GetModulesNamesForCapability(VLC_OBJECT(a),b,c)
-VLC_EXPORT(char **, __module_GetModulesNamesForCapability,
-                    ( vlc_object_t *p_this, const char * psz_capability,
-                      char ***psz_longname ) );
+VLC_EXPORT( module_config_t *, module_config_get, ( const module_t *, unsigned * ) LIBVLC_USED );
+VLC_EXPORT( void, module_config_free, ( module_config_t * ) );
 
-VLC_EXPORT( bool, module_IsCapable, ( const module_t *m, const char *cap ) );
-VLC_EXPORT( const char *, module_GetObjName, ( const module_t *m ) );
-VLC_EXPORT( const char *, module_GetName, ( const module_t *m, bool long_name ) );
-#define module_GetLongName( m ) module_GetName( m, true )
-VLC_EXPORT( const char *, module_GetHelp, ( const module_t *m ) );
+VLC_EXPORT( module_t *, module_hold, (module_t *module) );
+VLC_EXPORT( void, module_release, (module_t *module) );
+VLC_EXPORT( void, module_list_free, (module_t **) );
+VLC_EXPORT( module_t **, module_list_get, (size_t *n) LIBVLC_USED );
 
+VLC_EXPORT( bool, module_provides, ( const module_t *m, const char *cap ) );
+VLC_EXPORT( const char *, module_get_object, ( const module_t *m ) LIBVLC_USED );
+VLC_EXPORT( const char *, module_get_name, ( const module_t *m, bool long_name ) LIBVLC_USED );
+#define module_GetLongName( m ) module_get_name( m, true )
+VLC_EXPORT( const char *, module_get_help, ( const module_t *m ) LIBVLC_USED );
+VLC_EXPORT( const char *, module_get_capability, ( const module_t *m ) LIBVLC_USED );
+VLC_EXPORT( int, module_get_score, ( const module_t *m ) LIBVLC_USED );
+VLC_EXPORT( const char *, module_gettext, ( const module_t *, const char * ) LIBVLC_USED );
 
-#define module_GetMainModule(a) __module_GetMainModule(VLC_OBJECT(a))
-static inline module_t * __module_GetMainModule( vlc_object_t * p_this )
+LIBVLC_USED static inline module_t *module_get_main (void)
 {
-    return module_Find( p_this, "main" );
+    return module_find ("main");
 }
+#define module_get_main(a) module_get_main()
 
-static inline bool module_IsMainModule( module_t * p_module )
+LIBVLC_USED static inline bool module_is_main( const module_t * p_module )
 {
-    return !strcmp( module_GetObjName( p_module ), "main" );
+    return !strcmp( module_get_object( p_module ), "main" );
 }