Example #1
0
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;
}
Example #2
0
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;
}
Example #3
0
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;
}
Example #4
0
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;
}