bool gimmix_config_init (void) { char *rcfile; cfg_init_config_file_struct (&conf); cfg_add_key (&conf, "mpd_hostname", "localhost"); cfg_add_key (&conf, "mpd_port", "6600"); cfg_add_key (&conf, "mpd_password", ""); cfg_add_key (&conf, "proxy_enable", "false"); cfg_add_key (&conf, "proxy_host", ""); cfg_add_key (&conf, "proxy_port", "8080"); cfg_add_key (&conf, "music_directory", ""); cfg_add_key (&conf, "enable_systray", "true"); cfg_add_key (&conf, "enable_notification", "true"); cfg_add_key (&conf, "play_on_add", "false"); cfg_add_key (&conf, "stop_on_exit", "false"); cfg_add_key (&conf, "window_xpos", "200"); cfg_add_key (&conf, "window_ypos", "300"); cfg_add_key (&conf, "window_width", "335"); cfg_add_key (&conf, "window_height", "65"); cfg_add_key (&conf, "full_view_mode", "false"); cfg_add_key (&conf, "enable_search", "true"); cfg_add_key (&conf, "pl_column_title_show", "true"); cfg_add_key (&conf, "pl_column_artist_show", "false"); cfg_add_key (&conf, "pl_column_album_show", "false"); cfg_add_key (&conf, "pl_column_length_show", "true"); #ifdef HAVE_COVER_PLUGIN cfg_add_key (&conf, "coverart_enable", "true"); /* set United States as the default cover location */ cfg_add_key (&conf, "coverart_location", "us"); #else cfg_add_key (&conf, "coverart_enable", "false"); #endif cfg_add_key (&conf, "update_on_startup", "false"); rcfile = cfg_get_path_to_config_file (CONFIG_FILE); if (cfg_read_config_file (&conf, rcfile) != 0) { g_free (rcfile); return false; } else { g_free (rcfile); return true; } return false; }
static void gimmix_covers_plugin_cover_db_save (void) { char *rcfile = NULL; rcfile = cfg_get_path_to_config_file (COVERS_DBF); cfg_write_config_file (&cover_db, rcfile); cfg_read_config_file (&cover_db, rcfile); cfg_free_config_file_struct (&cover_db); gimmix_covers_plugin_cover_db_init (); g_free (rcfile); return; }
static void gimmix_covers_plugin_cover_db_init (void) { char *rcfile = NULL; cfg_init_config_file_struct (&cover_db); rcfile = cfg_get_path_to_config_file (COVERS_DBF); if (cfg_read_config_file(&cover_db,rcfile)) { g_error ("cover db init failed\n"); } g_free (rcfile); return; }
static int skin_config_load(Skin *skin, char *skin_name) { int result = 1; ConfigFile skinconf; char skin_file[256]; memset(skin, 0, sizeof(Skin)); skin->version = 1; skin->buffer = NULL; skin->title_scroller_offset_x1 = -1; skin->title_scroller_offset_x2 = -1; skin->title_scroller_offset_y = -1; skin->symbols_width = 0; skin->symbols_height = 0; skin->symbol_play_offset_x = -1; skin->symbol_play_offset_y = -1; skin->symbol_pause_offset_x = -1; skin->symbol_pause_offset_y = -1; skin->symbol_stereo_offset_x = -1; skin->symbol_stereo_offset_y = -1; skin->volume_offset_x = -1; skin->volume_offset_y = -1; skin->bitrate_offset_x = -1; skin->bitrate_offset_y = -1; skin->frequency_offset_x = -1; skin->frequency_offset_y = -1; skin->time_offset_x = -1; skin->time_offset_y = -1; skin->display_symbols = NULL; skin->arrow_up = NULL; skin->arrow_down = NULL; snprintf(skin_file, 255, "%s/themes/%s/theme.conf", gmu_core_get_base_dir(), skin_name); cfg_init_config_file_struct(&skinconf); if (cfg_read_config_file(&skinconf, skin_file) != 0) { printf("skin: Could not read skin config \"%s\".\n", skin_file); result = 0; } else { char *val; val = cfg_get_key_value(skinconf, "FormatVersion"); if (val) skin->version = atoi(val); strncpy(skin->name, skin_name, 127); switch (skin->version) { case 2: /* New theme format with support for a resizable window */ printf("skin: Modern theme file format found.\n"); skin_init_widget(skin_name, &skinconf, "Display", &(skin->display)); skin_init_widget(skin_name, &skinconf, "ListView", &(skin->lv)); skin_init_widget(skin_name, &skinconf, "Header", &(skin->header)); skin_init_widget(skin_name, &skinconf, "Footer", &(skin->footer)); val = cfg_get_key_value(skinconf, "Display.TitleScrollerOffsetX1"); if (val) skin->title_scroller_offset_x1 = atoi(val); val = cfg_get_key_value(skinconf, "Display.TitleScrollerOffsetX2"); if (val) skin->title_scroller_offset_x2 = atoi(val); val = cfg_get_key_value(skinconf, "Display.TitleScrollerOffsetY"); if (val) skin->title_scroller_offset_y = atoi(val); val = cfg_get_key_value(skinconf, "Display.BitrateOffsetX"); if (val) skin->bitrate_offset_x = atoi(val); val = cfg_get_key_value(skinconf, "Display.BitrateOffsetY"); if (val) skin->bitrate_offset_y = atoi(val); val = cfg_get_key_value(skinconf, "Display.TimeOffsetX"); if (val) skin->time_offset_x = atoi(val); val = cfg_get_key_value(skinconf, "Display.TimeOffsetY"); if (val) skin->time_offset_y = atoi(val); val = cfg_get_key_value(skinconf, "Display.FrequencyOffsetX"); if (val) skin->frequency_offset_x = atoi(val); val = cfg_get_key_value(skinconf, "Display.FrequencyOffsetY"); if (val) skin->frequency_offset_y = atoi(val); val = cfg_get_key_value(skinconf, "Display.SymbolsWidth"); if (val) skin->symbols_width = atoi(val); val = cfg_get_key_value(skinconf, "Display.SymbolsHeight"); if (val) skin->symbols_height = atoi(val); val = cfg_get_key_value(skinconf, "Display.Symbol.Play.OffsetX"); if (val) skin->symbol_play_offset_x = atoi(val); val = cfg_get_key_value(skinconf, "Display.Symbol.Play.OffsetY"); if (val) skin->symbol_play_offset_y = atoi(val); val = cfg_get_key_value(skinconf, "Display.Symbol.Pause.OffsetX"); if (val) skin->symbol_pause_offset_x = atoi(val); val = cfg_get_key_value(skinconf, "Display.Symbol.Pause.OffsetY"); if (val) skin->symbol_pause_offset_y = atoi(val); val = cfg_get_key_value(skinconf, "Display.Symbol.Stereo.OffsetX"); if (val) skin->symbol_stereo_offset_x = atoi(val); val = cfg_get_key_value(skinconf, "Display.Symbol.Stereo.OffsetY"); if (val) skin->symbol_stereo_offset_y = atoi(val); /* fonts */ val = cfg_get_key_value(skinconf, "Display.Font"); if (val) strncpy(skin->font_display_name, val, 127); val = cfg_get_key_value(skinconf, "Display.FontCharWidth"); if (val) skin->font_display_char_width = atoi(val); val = cfg_get_key_value(skinconf, "Display.FontCharHeight"); if (val) skin->font_display_char_height = atoi(val); val = cfg_get_key_value(skinconf, "Font1"); if (val) strncpy(skin->font1_name, val, 127); val = cfg_get_key_value(skinconf, "Font1CharWidth"); if (val) skin->font1_char_width = atoi(val); val = cfg_get_key_value(skinconf, "Font1CharHeight"); if (val) skin->font1_char_height = atoi(val); val = cfg_get_key_value(skinconf, "Font2"); if (val) strncpy(skin->font2_name, val, 127); val = cfg_get_key_value(skinconf, "Font2CharWidth"); if (val) skin->font2_char_width = atoi(val); val = cfg_get_key_value(skinconf, "Font2CharHeight"); if (val) skin->font2_char_height = atoi(val); result = 1; /* load images (symbols, arrows) */ { char tmp[256]; SDL_Surface *tmp_sf; val = cfg_get_key_value(skinconf, "Display.Symbols"); if (val) { snprintf(tmp, 255, "%s/themes/%s/%s", gmu_core_get_base_dir(), skin->name, val); if ((tmp_sf = IMG_Load(tmp))) { skin->display_symbols = SDL_DisplayFormatAlpha(tmp_sf); SDL_FreeSurface(tmp_sf); } } val = cfg_get_key_value(skinconf, "Icon.ArrowUp"); if (val) { snprintf(tmp, 255, "%s/themes/%s/%s", gmu_core_get_base_dir(), skin->name, val); if ((tmp_sf = IMG_Load(tmp))) { skin->arrow_up = SDL_DisplayFormatAlpha(tmp_sf); SDL_FreeSurface(tmp_sf); } } val = cfg_get_key_value(skinconf, "Icon.ArrowDown"); if (val) { snprintf(tmp, 255, "%s/themes/%s/%s", gmu_core_get_base_dir(), skin->name, val); if ((tmp_sf = IMG_Load(tmp))) { skin->arrow_down = SDL_DisplayFormatAlpha(tmp_sf); SDL_FreeSurface(tmp_sf); } } } /* fonts */ { int a, b, c; char tmp[256]; printf("skin: Loading fonts...\n"); snprintf(tmp, 255, "%s/themes/%s/%s", gmu_core_get_base_dir(), skin->name, skin->font_display_name); printf("skin: Loading %s\n", tmp); a = lcd_init(&skin->font_display, tmp, skin->font_display_char_width, skin->font_display_char_height); snprintf(tmp, 255, "%s/themes/%s/%s", gmu_core_get_base_dir(), skin->name, skin->font1_name); printf("skin: Loading %s\n", tmp); b = lcd_init(&skin->font1, tmp, skin->font1_char_width, skin->font1_char_height); snprintf(tmp, 255, "%s/themes/%s/%s", gmu_core_get_base_dir(), skin->name, skin->font2_name); printf("skin: Loading %s\n", tmp); c = lcd_init(&skin->font2, tmp, skin->font2_char_width, skin->font2_char_height); if (a && b && c) printf("skin: Skin data loaded successfully.\n"); else result = 0; } break; default: printf("skin: Invalid file format version: %d.\n", skin->version); skin->version = 0; break; } } cfg_free_config_file_struct(&skinconf); return result; }