+/**
+ * \file
+ * This file implements plugin (module) macros used to define a vlc module.
+ */
+
+VLC_EXPORT( int, vlc_plugin_set, (module_t *, module_config_t *, int, ...) );
+
+#define vlc_module_set( mod, ... ) vlc_plugin_set ((mod), NULL, __VA_ARGS__)
+#define vlc_config_set( cfg, ... ) vlc_plugin_set (NULL, (cfg), __VA_ARGS__)
+
+enum vlc_module_properties
+{
+ VLC_SUBMODULE_CREATE,
+ VLC_CONFIG_CREATE,
+
+ /* DO NOT EVER REMOVE, INSERT OR REPLACE ANY ITEM! It would break the ABI!
+ * Append new items at the end ONLY. */
+ VLC_MODULE_CPU_REQUIREMENT=0x100,
+ VLC_MODULE_SHORTCUT,
+ VLC_MODULE_CAPABILITY,
+ VLC_MODULE_SCORE,
+ VLC_MODULE_CB_OPEN,
+ VLC_MODULE_CB_CLOSE,
+ VLC_MODULE_NO_UNLOAD,
+ VLC_MODULE_NAME,
+ VLC_MODULE_SHORTNAME,
+ VLC_MODULE_DESCRIPTION,
+ VLC_MODULE_HELP,
+ VLC_MODULE_TEXTDOMAIN,
+ /* Insert new VLC_MODULE_* here */
+
+ /* DO NOT EVER REMOVE, INSERT OR REPLACE ANY ITEM! It would break the ABI!
+ * Append new items at the end ONLY. */
+ VLC_CONFIG_NAME=0x1000,
+ /* command line name (args=const char *, vlc_callback_t) */
+
+ VLC_CONFIG_VALUE,
+ /* actual value (args=int/double/const char *) */
+
+ VLC_CONFIG_RANGE,
+ /* minimum value (args=int/double/const char * twice) */
+
+ VLC_CONFIG_ADVANCED,
+ /* enable advanced flag (args=none) */
+
+ VLC_CONFIG_VOLATILE,
+ /* don't write variable to storage (args=none) */
+
+ VLC_CONFIG_PERSISTENT,
+ /* always write variable to storage (args=none) */
+
+ VLC_CONFIG_RESTART,
+ /* restart required to apply value change (args=none) */
+
+ VLC_CONFIG_PRIVATE,
+ /* hide from user (args=none) */
+
+ VLC_CONFIG_REMOVED,
+ /* tag as no longer supported (args=none) */
+
+ VLC_CONFIG_CAPABILITY,
+ /* capability for a module or list thereof (args=const char*) */
+
+ VLC_CONFIG_SHORTCUT,
+ /* one-character (short) command line option name (args=char) */
+
+ VLC_CONFIG_OLDNAME,
+ /* former option name (args=const char *) */
+
+ 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 *) */
+
+ /* Insert new VLC_CONFIG_* here */
+};
+