]> git.sesse.net Git - vlc/blobdiff - include/vlc_plugin.h
Remove picture qtype support code
[vlc] / include / vlc_plugin.h
index e88702d684ff5879b6513a6bfbd4fd3363bd0f0e..276ebc3ab5c7f40b611abff445ed51e184a24195 100644 (file)
@@ -1,24 +1,24 @@
 /*****************************************************************************
  * vlc_plugin.h : Macros used from within a module.
  *****************************************************************************
- * Copyright (C) 2001-2006 the VideoLAN team
+ * Copyright (C) 2001-2006 VLC authors and VideoLAN
  * Copyright © 2007-2009 Rémi Denis-Courmont
  *
  * Authors: Samuel Hocevar <sam@zoy.org>
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
 #ifndef LIBVLC_MODULES_MACROS_H
@@ -82,8 +82,8 @@ enum vlc_module_properties
     VLC_CONFIG_SHORTCUT,
     /* one-character (short) command line option name (args=char) */
 
-    VLC_CONFIG_OLDNAME,
-    /* former option name (args=const char *) */
+    VLC_CONFIG_OLDNAME_OBSOLETE,
+    /* unused (ignored) */
 
     VLC_CONFIG_SAFE,
     /* tag as modifiable by untrusted input item "sources" (args=none) */
@@ -91,22 +91,104 @@ enum vlc_module_properties
     VLC_CONFIG_DESC,
     /* description (args=const char *, const char *, const char *) */
 
+    VLC_CONFIG_LIST_OBSOLETE,
+    /* unused (ignored) */
+
+    VLC_CONFIG_ADD_ACTION_OBSOLETE,
+    /* unused (ignored) */
+
     VLC_CONFIG_LIST,
-    /* possible values list
-     * (args=const char *, size_t, const <type> *, const char *const *) */
+    /* list of suggested values
+     * (args=size_t, const <type> *, const char *const *) */
 
-    VLC_CONFIG_ADD_ACTION,
-    /* add value change callback
-     * (args=const char *, vlc_callback_t, const char *) */
+    VLC_CONFIG_LIST_CB,
+    /* callback for suggested values
+     * (args=size_t (*)(vlc_object_t *, <type> **, char ***)) */
 
     /* Insert new VLC_CONFIG_* here */
 };
 
+/* Configuration hint types */
+#define CONFIG_HINT_CATEGORY                0x02  /* Start of new category */
+#define CONFIG_HINT_SUBCATEGORY             0x03  /* Start of sub-category */
+#define CONFIG_HINT_SUBCATEGORY_END         0x04  /* End of sub-category */
+#define CONFIG_HINT_USAGE                   0x05  /* Usage information */
+
+#define CONFIG_CATEGORY                     0x06 /* Set category */
+#define CONFIG_SUBCATEGORY                  0x07 /* Set subcategory */
+#define CONFIG_SECTION                      0x08 /* Start of new section */
+
+/* Configuration item types */
+#define CONFIG_ITEM_FLOAT                   0x20  /* Float option */
+#define CONFIG_ITEM_INTEGER                 0x40  /* Integer option */
+#define CONFIG_ITEM_RGB                     0x41  /* RGB color option */
+#define CONFIG_ITEM_BOOL                    0x60  /* Bool option */
+#define CONFIG_ITEM_STRING                  0x80  /* String option */
+#define CONFIG_ITEM_PASSWORD                0x81  /* Password option (*) */
+#define CONFIG_ITEM_KEY                     0x82  /* Hot key option */
+#define CONFIG_ITEM_MODULE                  0x84  /* Module option */
+#define CONFIG_ITEM_MODULE_CAT              0x85  /* Module option */
+#define CONFIG_ITEM_MODULE_LIST             0x86  /* Module option */
+#define CONFIG_ITEM_MODULE_LIST_CAT         0x87  /* Module option */
+#define CONFIG_ITEM_LOADFILE                0x8C  /* Read file option */
+#define CONFIG_ITEM_SAVEFILE                0x8D  /* Written file option */
+#define CONFIG_ITEM_DIRECTORY               0x8E  /* Directory option */
+#define CONFIG_ITEM_FONT                    0x8F  /* Font option */
+
+#define CONFIG_ITEM(x) (((x) & ~0xF) != 0)
+
+/* Categories and subcategories */
+#define CAT_INTERFACE 1
+#define SUBCAT_INTERFACE_GENERAL 101
+#define SUBCAT_INTERFACE_MAIN 102
+#define SUBCAT_INTERFACE_CONTROL 103
+#define SUBCAT_INTERFACE_HOTKEYS 104
+
+#define CAT_AUDIO 2
+#define SUBCAT_AUDIO_GENERAL 201
+#define SUBCAT_AUDIO_AOUT 202
+#define SUBCAT_AUDIO_AFILTER 203
+#define SUBCAT_AUDIO_VISUAL 204
+#define SUBCAT_AUDIO_MISC 205
+
+#define CAT_VIDEO 3
+#define SUBCAT_VIDEO_GENERAL 301
+#define SUBCAT_VIDEO_VOUT 302
+#define SUBCAT_VIDEO_VFILTER 303
+#define SUBCAT_VIDEO_SUBPIC 305
+
+#define CAT_INPUT 4
+#define SUBCAT_INPUT_GENERAL 401
+#define SUBCAT_INPUT_ACCESS 402
+#define SUBCAT_INPUT_DEMUX 403
+#define SUBCAT_INPUT_VCODEC 404
+#define SUBCAT_INPUT_ACODEC 405
+#define SUBCAT_INPUT_SCODEC 406
+#define SUBCAT_INPUT_STREAM_FILTER 407
+
+#define CAT_SOUT 5
+#define SUBCAT_SOUT_GENERAL 501
+#define SUBCAT_SOUT_STREAM 502
+#define SUBCAT_SOUT_MUX 503
+#define SUBCAT_SOUT_ACO 504
+#define SUBCAT_SOUT_PACKETIZER 505
+#define SUBCAT_SOUT_VOD 507
+
+#define CAT_ADVANCED 6
+#define SUBCAT_ADVANCED_MISC 602
+#define SUBCAT_ADVANCED_NETWORK 603
+
+#define CAT_PLAYLIST 7
+#define SUBCAT_PLAYLIST_GENERAL 701
+#define SUBCAT_PLAYLIST_SD 702
+#define SUBCAT_PLAYLIST_EXPORT 703
+
+
 /**
  * Current plugin ABI version
  */
-# define MODULE_SYMBOL 1_2_0i
-# define MODULE_SUFFIX "__1_2_0i"
+# define MODULE_SYMBOL 2_1_0a
+# define MODULE_SUFFIX "__2_1_0a"
 
 /*****************************************************************************
  * Add a few defines. You do not want to read this section. Really.
@@ -138,7 +220,7 @@ enum vlc_module_properties
 #   define DLL_SYMBOL              __declspec(dllexport)
 #   undef CDECL_SYMBOL
 #   define CDECL_SYMBOL            __cdecl
-# elif defined (__GNUC__) && (__GNUC__ >= 4)
+# elif VLC_GCC_VERSION(4,0)
 #   define DLL_SYMBOL              __attribute__((visibility("default")))
 # else
 #  define DLL_SYMBOL
@@ -383,25 +465,26 @@ VLC_METADATA_EXPORTS
 
 /* Modifier macros for the config options (used for fine tuning) */
 
-#define add_deprecated_alias( name ) \
-    vlc_config_set (VLC_CONFIG_OLDNAME, (const char *)(name));
-
 #define change_short( ch ) \
     vlc_config_set (VLC_CONFIG_SHORTCUT, (int)(ch));
 
-#define change_string_list( list, list_text, list_update_func ) \
+#define change_string_list( list, list_text ) \
     vlc_config_set (VLC_CONFIG_LIST, \
                     (size_t)(sizeof (list) / sizeof (char *)), \
                     (const char *const *)(list), \
-                    (const char *const *)(list_text), \
-                    (vlc_callback_t)(list_update_func));
+                    (const char *const *)(list_text));
+
+#define change_string_cb( cb ) \
+    vlc_config_set (VLC_CONFIG_LIST_CB, (cb));
 
 #define change_integer_list( list, list_text ) \
     vlc_config_set (VLC_CONFIG_LIST, \
                     (size_t)(sizeof (list) / sizeof (int)), \
                     (const int *)(list), \
-                    (const char *const *)(list_text), \
-                    (vlc_callback_t)(NULL));
+                    (const char *const *)(list_text));
+
+#define change_integer_cb( cb ) \
+    vlc_config_set (VLC_CONFIG_LIST_CB, (cb));
 
 #define change_integer_range( minv, maxv ) \
     vlc_config_set (VLC_CONFIG_RANGE, (int64_t)(minv), (int64_t)(maxv));
@@ -410,8 +493,7 @@ VLC_METADATA_EXPORTS
     vlc_config_set (VLC_CONFIG_RANGE, (double)(minv), (double)(maxv));
 
 #define change_action_add( pf_action, text ) \
-    vlc_config_set (VLC_CONFIG_ADD_ACTION, \
-                    (vlc_callback_t)(pf_action), (const char *)(text));
+    (void)(pf_action, text);
 
 /* For options that are saved but hidden from the preferences panel */
 #define change_private() \