diff src/skins/plugin.c @ 2675:4beebb0e82f8

add ui_skinselector
author Tomasz Mon <desowin@gmail.com>
date Sun, 01 Jun 2008 15:57:12 +0200
parents 7156fc000796
children 096aa996e4fa
line wrap: on
line diff
--- a/src/skins/plugin.c	Sun Jun 01 01:02:11 2008 +0300
+++ b/src/skins/plugin.c	Sun Jun 01 15:57:12 2008 +0200
@@ -32,6 +32,8 @@
 
 #define PACKAGE "audacious-plugins"
 
+gchar *skins_paths[SKINS_PATH_COUNT] = {};
+
 GeneralPlugin skins_gp =
 {
     .description= "Audacious Skinned GUI",
@@ -46,10 +48,40 @@
 GtkWidget *mainwin;
 gboolean plugin_is_active = FALSE;
 
+static void skins_free_paths(void) {
+    int i;
+
+    for (i = 0; i < BMP_PATH_COUNT; i++)  {
+        g_free(skins_paths[i]);
+        skins_paths[i] = 0;
+    }
+}
+
+static void skins_init_paths() {
+    char *xdg_data_home;
+    char *xdg_cache_home;
+
+    xdg_data_home = (getenv("XDG_DATA_HOME") == NULL
+        ? g_build_filename(g_get_home_dir(), ".local", "share", NULL)
+        : g_strdup(getenv("XDG_DATA_HOME")));
+    xdg_cache_home = (getenv("XDG_CACHE_HOME") == NULL
+        ? g_build_filename(g_get_home_dir(), ".cache", NULL)
+        : g_strdup(getenv("XDG_CACHE_HOME")));
+
+    skins_paths[SKINS_PATH_USER_SKIN_DIR] =
+        g_build_filename(xdg_data_home, "audacious", "Skins", NULL);
+    skins_paths[SKINS_PATH_SKIN_THUMB_DIR] =
+        g_build_filename(xdg_cache_home, "audacious", "thumbs", NULL);
+
+    g_free(xdg_data_home);
+    g_free(xdg_cache_home);
+}
+
 void skins_init(void) {
     plugin_is_active = TRUE;
     g_log_set_handler(NULL, G_LOG_LEVEL_WARNING, g_log_default_handler, NULL);
 
+    skins_init_paths();
     skins_cfg_load();
 
     register_aud_stock_icons();
@@ -69,6 +101,7 @@
 void skins_cleanup(void) {
     if (plugin_is_active == TRUE) {
         skins_cfg_save();
+        skins_free_paths();
         ui_main_evlistener_dissociate();
         ui_playlist_evlistener_dissociate();
         skins_cfg_free();