-VLC_EXPORT(const char *, config_GetHomeDir, ( void ) LIBVLC_USED);
-VLC_EXPORT(char *, config_GetUserConfDir, ( void ) LIBVLC_USED);
-VLC_EXPORT(char *, config_GetUserDataDir, ( void ) LIBVLC_USED);
-VLC_EXPORT(char *, config_GetCacheDir, ( void ) LIBVLC_USED);
-
-VLC_EXPORT( void, __config_AddIntf, ( vlc_object_t *, const char * ) );
-VLC_EXPORT( void, __config_RemoveIntf, ( vlc_object_t *, const char * ) );
-VLC_EXPORT( bool, __config_ExistIntf, ( vlc_object_t *, const char * ) LIBVLC_USED);
-
-#define config_GetType(a,b) __config_GetType(VLC_OBJECT(a),b)
-#define config_GetInt(a,b) __config_GetInt(VLC_OBJECT(a),b)
-#define config_PutInt(a,b,c) __config_PutInt(VLC_OBJECT(a),b,c)
-#define config_GetFloat(a,b) __config_GetFloat(VLC_OBJECT(a),b)
-#define config_PutFloat(a,b,c) __config_PutFloat(VLC_OBJECT(a),b,c)
-#define config_GetPsz(a,b) __config_GetPsz(VLC_OBJECT(a),b)
-#define config_PutPsz(a,b,c) __config_PutPsz(VLC_OBJECT(a),b,c)
-
-#define config_AddIntf(a,b) __config_AddIntf(VLC_OBJECT(a),b)
-#define config_RemoveIntf(a,b) __config_RemoveIntf(VLC_OBJECT(a),b)
-#define config_ExistIntf(a,b) __config_ExistIntf(VLC_OBJECT(a),b)
+
+typedef enum vlc_userdir
+{
+ VLC_HOME_DIR, /* User's home */
+ VLC_CONFIG_DIR, /* VLC-specific configuration directory */
+ VLC_DATA_DIR, /* VLC-specific data directory */
+ VLC_CACHE_DIR, /* VLC-specific user cached data directory */
+ /* Generic directories (same as XDG) */
+ VLC_DESKTOP_DIR=0x80,
+ VLC_DOWNLOAD_DIR,
+ VLC_TEMPLATES_DIR,
+ VLC_PUBLICSHARE_DIR,
+ VLC_DOCUMENTS_DIR,
+ VLC_MUSIC_DIR,
+ VLC_PICTURES_DIR,
+ VLC_VIDEOS_DIR,
+} vlc_userdir_t;
+
+VLC_EXPORT(char *, config_GetUserDir, ( vlc_userdir_t ) LIBVLC_USED);
+
+VLC_EXPORT( void, config_AddIntf, ( vlc_object_t *, const char * ) );
+VLC_EXPORT( void, config_RemoveIntf, ( vlc_object_t *, const char * ) );
+VLC_EXPORT( bool, config_ExistIntf, ( vlc_object_t *, const char * ) LIBVLC_USED);
+
+#define config_GetType(a,b) config_GetType(VLC_OBJECT(a),b)
+#define config_GetInt(a,b) config_GetInt(VLC_OBJECT(a),b)
+#define config_PutInt(a,b,c) config_PutInt(VLC_OBJECT(a),b,c)
+#define config_GetFloat(a,b) config_GetFloat(VLC_OBJECT(a),b)
+#define config_PutFloat(a,b,c) config_PutFloat(VLC_OBJECT(a),b,c)
+#define config_GetPsz(a,b) config_GetPsz(VLC_OBJECT(a),b)
+#define config_PutPsz(a,b,c) config_PutPsz(VLC_OBJECT(a),b,c)
+
+#define config_AddIntf(a,b) config_AddIntf(VLC_OBJECT(a),b)
+#define config_RemoveIntf(a,b) config_RemoveIntf(VLC_OBJECT(a),b)
+#define config_ExistIntf(a,b) config_ExistIntf(VLC_OBJECT(a),b)