]> git.sesse.net Git - vlc/blobdiff - include/vlc_plugin.h
Move swscale.c to the video_filter directory.
[vlc] / include / vlc_plugin.h
index c2ae1a2adc0f436f1537cf58ef1df3e3a7ebbcb7..48caeceb6ea84c4283bd0079ce7b671202568ba8 100644 (file)
  * instance the module name, its shortcuts, its capabilities... we also create
  * a copy of its config because the module can be unloaded at any time.
  */
-#if defined (__PLUGIN__) || defined (__BUILTIN__)
-EXTERN_SYMBOL DLL_SYMBOL int CDECL_SYMBOL
-E_(vlc_entry) ( module_t *p_module );
-#endif
-
 #define vlc_module_begin( )                                                   \
     EXTERN_SYMBOL DLL_SYMBOL int CDECL_SYMBOL                                 \
+    E_(vlc_entry) ( module_t *p_module );                                     \
+                                                                              \
+    EXTERN_SYMBOL DLL_SYMBOL int CDECL_SYMBOL                                 \
     __VLC_SYMBOL(vlc_entry) ( module_t *p_module )                            \
     {                                                                         \
         module_config_t *p_config = NULL;                                     \
+        const char *domain = NULL;                                            \
         if (vlc_module_set (p_module, VLC_MODULE_NAME,                        \
                             (const char *)(MODULE_STRING)))                   \
             goto error;                                                       \
@@ -106,7 +105,8 @@ E_(vlc_entry) ( module_t *p_module );
                                                                               \
     error:                                                                    \
         return VLC_EGENERIC;                                                  \
-    }
+    }                                                                         \
+    VLC_METADATA_EXPORTS
 
 #define add_submodule( ) \
     p_submodule = vlc_submodule_create( p_module );
@@ -122,17 +122,18 @@ E_(vlc_entry) ( module_t *p_module );
         goto error;
 
 #define set_shortname( shortname ) \
-    if (vlc_module_set (p_submodule, VLC_MODULE_SHORTNAME, \
-        (const char *)(shortname))) \
+    if (vlc_module_set (p_submodule, VLC_MODULE_SHORTNAME, domain, \
+                        (const char *)(shortname))) \
         goto error;
 
 #define set_description( desc ) \
-    if (vlc_module_set (p_submodule, VLC_MODULE_DESCRIPTION, \
+    if (vlc_module_set (p_submodule, VLC_MODULE_DESCRIPTION, domain, \
                         (const char *)(desc))) \
         goto error;
 
 #define set_help( help ) \
-    if (vlc_module_set (p_submodule, VLC_MODULE_HELP, (const char *)(help))) \
+    if (vlc_module_set (p_submodule, VLC_MODULE_HELP, domain, \
+                        (const char *)(help))) \
         goto error;
 
 #define set_capability( cap, score ) \
@@ -150,6 +151,8 @@ E_(vlc_entry) ( module_t *p_module );
     if (vlc_module_set (p_submodule, VLC_MODULE_NO_UNLOAD)) \
         goto error;
 
+#define set_text_domain( dom ) domain = (dom);
+
 VLC_EXPORT( module_t *, vlc_module_create, ( vlc_object_t * ) );
 VLC_EXPORT( module_t *, vlc_submodule_create, ( module_t * ) );
 VLC_EXPORT( int, vlc_module_set, (module_t *module, int propid, ...) );
@@ -162,16 +165,19 @@ enum vlc_module_properties
      * Append new items at the end ONLY. */
     VLC_MODULE_CPU_REQUIREMENT,
     VLC_MODULE_SHORTCUT,
-    VLC_MODULE_SHORTNAME,
-    VLC_MODULE_DESCRIPTION,
-    VLC_MODULE_HELP,
+    VLC_MODULE_SHORTNAME_NODOMAIN,
+    VLC_MODULE_DESCRIPTION_NODOMAIN,
+    VLC_MODULE_HELP_NODOMAIN,
     VLC_MODULE_CAPABILITY,
     VLC_MODULE_SCORE,
-    VLC_MODULE_PROGRAM,
+    VLC_MODULE_PROGRAM, /* obsoleted */
     VLC_MODULE_CB_OPEN,
     VLC_MODULE_CB_CLOSE,
     VLC_MODULE_NO_UNLOAD,
     VLC_MODULE_NAME,
+    VLC_MODULE_SHORTNAME,
+    VLC_MODULE_DESCRIPTION,
+    VLC_MODULE_HELP,
 };
 
 enum vlc_config_properties
@@ -182,7 +188,7 @@ enum vlc_config_properties
     VLC_CONFIG_NAME,
     /* command line name (args=const char *, vlc_callback_t) */
 
-    VLC_CONFIG_DESC,
+    VLC_CONFIG_DESC_NODOMAIN,
     /* description (args=const char *, const char *) */
 
     VLC_CONFIG_VALUE,
@@ -215,11 +221,11 @@ enum vlc_config_properties
     VLC_CONFIG_SHORTCUT,
     /* one-character (short) command line option name (args=char) */
 
-    VLC_CONFIG_LIST,
+    VLC_CONFIG_LIST_NODOMAIN,
     /* possible values list
      * (args=size_t, const <type> *, const char *const *) */
 
-    VLC_CONFIG_ADD_ACTION,
+    VLC_CONFIG_ADD_ACTION_NODOMAIN,
     /* add value change callback (args=vlc_callback_t, const char *) */
 
     VLC_CONFIG_OLDNAME,
@@ -227,6 +233,17 @@ enum vlc_config_properties
 
     VLC_CONFIG_SAFE,
     /* tag as modifiable by untrusted input item "sources" (args=none) */
+
+    VLC_CONFIG_DESC,
+    /* description (args=const char *, const char *, const char *) */
+
+    VLC_CONFIG_LIST,
+    /* possible values list
+     * (args=const char *, size_t, const <type> *, const char *const *) */
+
+    VLC_CONFIG_ADD_ACTION,
+    /* add value change callback
+     * (args=const char *, vlc_callback_t, const char *) */
 };
 
 /*****************************************************************************
@@ -247,7 +264,7 @@ enum vlc_config_properties
 
 #define add_typedesc_inner( type, text, longtext ) \
     add_type_inner( type ) \
-    vlc_config_set (p_config, VLC_CONFIG_DESC, \
+    vlc_config_set (p_config, VLC_CONFIG_DESC, domain, \
                     (const char *)(text), (const char *)(longtext));
 
 #define add_typeadv_inner( type, text, longtext, advc ) \
@@ -382,21 +399,21 @@ enum vlc_config_properties
     vlc_config_set (p_config, VLC_CONFIG_SHORTCUT, (int)(ch));
 
 #define change_string_list( list, list_text, list_update_func ) \
-    vlc_config_set (p_config, VLC_CONFIG_LIST, \
+    vlc_config_set (p_config, VLC_CONFIG_LIST, domain, \
                     (size_t)(sizeof (list) / sizeof (char *)), \
                     (const char *const *)(list), \
                     (const char *const *)(list_text), \
                     list_update_func);
 
 #define change_integer_list( list, list_text, list_update_func ) \
-    vlc_config_set (p_config, VLC_CONFIG_LIST, \
+    vlc_config_set (p_config, VLC_CONFIG_LIST, domain, \
                     (size_t)(sizeof (list) / sizeof (int)), \
                     (const int *)(list), \
                     (const char *const *)(list_text), \
                     list_update_func);
 
 #define change_float_list( list, list_text, list_update_func ) \
-    vlc_config_set (p_config, VLC_CONFIG_LIST, \
+    vlc_config_set (p_config, VLC_CONFIG_LIST, domain, \
                     (size_t)(sizeof (list) / sizeof (float)), \
                     (const float *)(list), \
                     (const char *const *)(list_text), \
@@ -410,7 +427,7 @@ enum vlc_config_properties
                     (double)(minv), (double)(maxv));
 
 #define change_action_add( pf_action, text ) \
-    vlc_config_set (p_config, VLC_CONFIG_ADD_ACTION, \
+    vlc_config_set (p_config, VLC_CONFIG_ADD_ACTION, domain, \
                     (vlc_callback_t)(pf_action), (const char *)(text));
 
 #define change_internal() \
@@ -430,4 +447,27 @@ enum vlc_config_properties
 #define change_safe() \
     vlc_config_set (p_config, VLC_CONFIG_SAFE);
 
+/* Meta data plugin exports */
+#define VLC_META_EXPORT( name, value ) \
+    EXTERN_SYMBOL DLL_SYMBOL const char * CDECL_SYMBOL \
+    E_(vlc_entry_ ## name) (void); \
+    EXTERN_SYMBOL DLL_SYMBOL const char * CDECL_SYMBOL \
+    __VLC_SYMBOL(vlc_entry_ ## name) (void) \
+    { \
+         return value; \
+    }
+
+#if defined (__LIBVLC__)
+# define VLC_COPYRIGHT_EXPORT VLC_META_EXPORT (copyright, COPYRIGHT_MESSAGE)
+#elif !defined (VLC_COPYRIGHT_EXPORT)
+# define VLC_COPYRIGHT_EXPORT
+#endif
+#define VLC_LICENSE_EXPORT VLC_META_EXPORT (license, \
+    "Licensed under the terms of the GNU General Public License, " \
+    "version 2 or later.")
+
+#define VLC_METADATA_EXPORTS \
+    VLC_COPYRIGHT_EXPORT \
+    VLC_LICENSE_EXPORT
+
 #endif