Пример #1
0
void
gimmix_config_free (void)
{
	cfg_free_config_file_struct (&conf);
	
	return;
}
Пример #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;
}
Пример #3
0
static void
on_fr_close_clicked (GtkWidget *widget, gpointer data)
{
	gtk_widget_destroy (data);
	
	cfg_free_config_file_struct (&cf);
	if (gimmix_config_exists())
	{	
		gimmix_config_init ();
		if (gimmix_connect())
		{
			gimmix_init ();
		}
		else
		{
			gimmix_connect_error ();
		}
	}
	else
	exit (0);
	return;
}
Пример #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;
}