255
255
gsd_sound_manager_start (GsdSoundManager *manager,
259
const char *env, *dd;
259
const gchar * const * dirs;
261
262
g_debug ("Starting sound manager");
262
263
gnome_settings_profile_start (NULL);
267
268
/* ... and we listen to changes of the theme base directories
270
if ((env = g_getenv ("XDG_DATA_HOME")) && *env == '/')
271
p = g_build_filename (env, "sounds", NULL);
272
else if (((env = g_getenv ("HOME")) && *env == '/') || (env = g_get_home_dir ()))
273
p = g_build_filename (env, ".local", "share", "sounds", NULL);
270
p = g_build_filename (g_get_user_data_dir (), "sounds", NULL);
271
if (g_mkdir_with_parents(p, 0600) == 0)
278
272
register_directory_callback (manager, p, NULL);
275
/* ... and globally. */
276
dirs = g_get_system_data_dirs ();
277
for (i = 0; dirs[i] != NULL; i++) {
278
p = g_build_filename (dirs[i], "sounds", NULL);
279
if (g_file_test (p, G_FILE_TEST_IS_DIR))
280
register_directory_callback (manager, p, NULL);
282
/* ... and globally. */
283
if (!(dd = g_getenv ("XDG_DATA_DIRS")) || *dd == 0)
284
dd = "/usr/local/share:/usr/share";
286
ps = g_strsplit (dd, ":", 0);
288
for (k = ps; *k; ++k)
289
register_directory_callback (manager, *k, NULL);
293
284
gnome_settings_profile_end (NULL);