]> git.sesse.net Git - vlc/blobdiff - include/vlc_configuration.h
config_ChainCreate: result must be free()'d, so it must be used
[vlc] / include / vlc_configuration.h
index 1c2c48fe1cdbeef1b3b5ad9687f58fcf9338d0dc..e24195b0e77045318b3c806c8a9abd97ac9ac2a6 100644 (file)
@@ -178,7 +178,6 @@ struct module_config_t
     int            i_action;                           /* actions list size */
 
     /* Misc */
-    vlc_mutex_t *p_lock;           /* Lock to use when modifying the config */
     bool        b_dirty;          /* Dirty flag to indicate a config change */
     bool        b_advanced;          /* Flag to indicate an advanced option */
     bool        b_internal;   /* Flag to indicate option is not to be shown */
@@ -214,13 +213,28 @@ VLC_EXPORT( int,    __config_SaveConfigFile, ( vlc_object_t *, const char * ) );
 VLC_EXPORT( void,   __config_ResetAll, ( vlc_object_t * ) );
 
 VLC_EXPORT( module_config_t *, config_FindConfig,( vlc_object_t *, const char * ) LIBVLC_USED );
-
-VLC_EXPORT(const char *, config_GetDataDir, ( void ) LIBVLC_USED);
+VLC_EXPORT(char *, __config_GetDataDir, ( vlc_object_t * ) LIBVLC_USED);
+#define config_GetDataDir(a) __config_GetDataDir(VLC_OBJECT(a))
 VLC_EXPORT(const char *, config_GetConfDir, ( void ) LIBVLC_USED);
-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);
+
+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 * ) );
@@ -270,7 +284,7 @@ VLC_EXPORT( void,   __config_ChainParse, ( vlc_object_t *, const char *psz_prefi
  *
  * The options values are unescaped using config_StringUnescape.
  */
-VLC_EXPORT( char *, config_ChainCreate, ( char **ppsz_name, config_chain_t **pp_cfg, const char *psz_string ) );
+VLC_EXPORT( char *, config_ChainCreate, ( char **ppsz_name, config_chain_t **pp_cfg, const char *psz_string ) ) LIBVLC_USED LIBVLC_MALLOC;
 
 /**
  * This function will release a linked list of config_chain_t