示例#1
0
static void save_and_close(GtkWidget *w, gpointer data)
{
	char *cmd, *cmd_after, *cmd_end;
	ConfigFile *cfgfile = xmms_cfg_open_default_file();

	cmd = gtk_entry_get_text(GTK_ENTRY(cmd_entry));
	cmd_after = gtk_entry_get_text(GTK_ENTRY(cmd_after_entry));
	cmd_end = gtk_entry_get_text(GTK_ENTRY(cmd_end_entry));

	xmms_cfg_write_string(cfgfile, "song_change", "cmd_line", cmd);
	xmms_cfg_write_string(cfgfile, "song_change", "cmd_line_after", cmd_after);
	xmms_cfg_write_string(cfgfile, "song_change", "cmd_line_end", cmd_end);
	xmms_cfg_write_default_file(cfgfile);
	xmms_cfg_free(cfgfile);

	if (timeout_tag)
	{
		g_free(cmd_line);
		cmd_line = g_strdup(cmd);
		g_free(cmd_line_after);
		cmd_line_after = g_strdup(cmd_after);
		g_free(cmd_line_end);
		cmd_line_end = g_strdup(cmd_end);
	}
	gtk_widget_destroy(configure_win);
}
示例#2
0
static void
configure_win_ok_cb(GtkWidget *w, gpointer data)
{
	ConfigFile *cfgfile;

	strlcpy(audiodev, gtk_entry_get_text(GTK_ENTRY(adevice_entry)),
	    PATH_MAX);

	cfgfile = xmms_cfg_open_default_file();
	xmms_cfg_write_string(cfgfile, "sndio", "audiodev", audiodev);
	xmms_cfg_write_default_file(cfgfile);
	xmms_cfg_free(cfgfile);

	gtk_widget_destroy(configure_win);
}
示例#3
0
文件: joy.c 项目: sedwards/xmms3
/* ---------------------------------------------------------------------- */
void joyapp_save_buttoncmd(void)
{
	ConfigFile *cfile;
	gchar *button;
	int i;
    
	cfile = xmms_cfg_open_default_file();
		
	for (i = 0; i < joy_cfg.num_buttons; i++)
	{
		button = g_strdup_printf("button%d", i+1);
		xmms_cfg_write_int (cfile, "joystick", button, joy_cfg.button_cmd[i]);
		g_free(button);
	}
	
	xmms_cfg_write_default_file(cfile);
	xmms_cfg_free(cfile);
}	
示例#4
0
文件: joy.c 项目: sedwards/xmms3
/* ---------------------------------------------------------------------- */
void joyapp_save_config(void)
{
	ConfigFile *cfile;

	cfile = xmms_cfg_open_default_file();

	xmms_cfg_write_string(cfile, "joystick", "device1", joy_cfg.device_1);
	xmms_cfg_write_string(cfile, "joystick", "device2", joy_cfg.device_2);
	xmms_cfg_write_int(cfile, "joystick", "sensitivity", joy_cfg.sens);
	xmms_cfg_write_int(cfile, "joystick", "up", joy_cfg.up);
	xmms_cfg_write_int(cfile, "joystick", "down", joy_cfg.down);
	xmms_cfg_write_int(cfile, "joystick", "left", joy_cfg.left);
	xmms_cfg_write_int(cfile, "joystick", "right", joy_cfg.right);
	xmms_cfg_write_int(cfile, "joystick", "alt_up", joy_cfg.alt_up);
	xmms_cfg_write_int(cfile, "joystick", "alt_down", joy_cfg.alt_down);
	xmms_cfg_write_int(cfile, "joystick", "alt_left", joy_cfg.alt_left);
	xmms_cfg_write_int(cfile, "joystick", "alt_right", joy_cfg.alt_right);
	xmms_cfg_write_default_file(cfile);
	xmms_cfg_free(cfile);
	
	joyapp_save_buttoncmd();
}
示例#5
0
static void vorbis_configurewin_ok(GtkWidget * widget, gpointer data)
{
	ConfigFile *cfg;
	GtkToggleButton *tb;

	vorbis_cfg.http_buffer_size =
		gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(streaming_size_spin));
	vorbis_cfg.http_prebuffer = 
		gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(streaming_pre_spin));

	vorbis_cfg.use_proxy = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(streaming_proxy_use));
	g_free(vorbis_cfg.proxy_host);
	vorbis_cfg.proxy_host = g_strdup(gtk_entry_get_text(GTK_ENTRY(streaming_proxy_host_entry)));
	vorbis_cfg.proxy_port = atoi(gtk_entry_get_text(GTK_ENTRY(streaming_proxy_port_entry)));

	vorbis_cfg.proxy_use_auth = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(streaming_proxy_auth_use));

	g_free(vorbis_cfg.proxy_user);
	vorbis_cfg.proxy_user = NULL;
	if(strlen(gtk_entry_get_text(GTK_ENTRY(streaming_proxy_auth_user_entry))) > 0)
		vorbis_cfg.proxy_user = g_strdup(gtk_entry_get_text(GTK_ENTRY(streaming_proxy_auth_user_entry)));

	g_free(vorbis_cfg.proxy_pass);
	vorbis_cfg.proxy_pass = NULL;
	if(strlen(gtk_entry_get_text(GTK_ENTRY(streaming_proxy_auth_pass_entry))) > 0)
		vorbis_cfg.proxy_pass = g_strdup(gtk_entry_get_text(GTK_ENTRY(streaming_proxy_auth_pass_entry)));
	
	
	vorbis_cfg.save_http_stream = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(streaming_save_use));
	g_free(vorbis_cfg.save_http_path);
	vorbis_cfg.save_http_path = g_strdup(gtk_entry_get_text(GTK_ENTRY(streaming_save_entry)));
	g_free(vorbis_cfg.tag_format);
        vorbis_cfg.tag_format = g_strdup(gtk_entry_get_text(GTK_ENTRY(title_tag_entry)));	

	tb = GTK_TOGGLE_BUTTON(title_tag_override);
	vorbis_cfg.tag_override = gtk_toggle_button_get_active(tb);
	tb = GTK_TOGGLE_BUTTON(rg_switch);
	vorbis_cfg.use_replaygain = gtk_toggle_button_get_active(tb);
	tb = GTK_TOGGLE_BUTTON(rg_clip_switch);
	vorbis_cfg.use_anticlip = gtk_toggle_button_get_active(tb);
	tb = GTK_TOGGLE_BUTTON(rg_booster_switch);
	vorbis_cfg.use_booster = gtk_toggle_button_get_active(tb);
	tb = GTK_TOGGLE_BUTTON(rg_track_gain);
	if (gtk_toggle_button_get_active(tb))
		vorbis_cfg.replaygain_mode = REPLAYGAIN_MODE_TRACK;
	else
		vorbis_cfg.replaygain_mode = REPLAYGAIN_MODE_ALBUM;

	
	cfg = xmms_cfg_open_default_file();

	xmms_cfg_write_int(cfg, "vorbis", "http_buffer_size",
			   vorbis_cfg.http_buffer_size);
	xmms_cfg_write_int(cfg, "vorbis", "http_prebuffer",
			   vorbis_cfg.http_prebuffer);
	xmms_cfg_write_boolean(cfg, "vorbis", "use_proxy",
			       vorbis_cfg.use_proxy);
	xmms_cfg_write_string(cfg, "vorbis", "proxy_host",
			      vorbis_cfg.proxy_host);
	xmms_cfg_write_boolean(cfg, "vorbis", "save_http_stream",
			       vorbis_cfg.save_http_stream);
	xmms_cfg_write_string(cfg, "vorbis", "save_http_path",
			      vorbis_cfg.save_http_path);
	xmms_cfg_write_boolean(cfg, "vorbis", "tag_override",
			       vorbis_cfg.tag_override);
	xmms_cfg_write_string(cfg, "vorbis", "tag_format",
			      vorbis_cfg.tag_format);
	xmms_cfg_write_int(cfg, "vorbis", "proxy_port",
			   vorbis_cfg.proxy_port);
	xmms_cfg_write_boolean(cfg, "vorbis", "proxy_use_auth",
			       vorbis_cfg.proxy_use_auth);
	if (vorbis_cfg.proxy_user)
		xmms_cfg_write_string(cfg, "vorbis", "proxy_user",
				      vorbis_cfg.proxy_user);
	else
		xmms_cfg_remove_key(cfg, "vorbis", "proxy_user");
	if (vorbis_cfg.proxy_pass)
		xmms_cfg_write_string(cfg, "vorbis", "proxy_pass",
				      vorbis_cfg.proxy_pass);
	else
		xmms_cfg_remove_key(cfg, "vorbis", "proxy_pass");
	xmms_cfg_write_boolean(cfg, "vorbis", "use_anticlip", vorbis_cfg.use_anticlip);
	xmms_cfg_write_boolean(cfg, "vorbis", "use_replaygain", vorbis_cfg.use_replaygain);
	xmms_cfg_write_int(cfg, "vorbis", "replaygain_mode", vorbis_cfg.replaygain_mode);
	xmms_cfg_write_boolean(cfg, "vorbis", "use_booster", vorbis_cfg.use_booster);
	xmms_cfg_write_default_file(cfg);
	xmms_cfg_free(cfg);
	gtk_widget_destroy(vorbis_configurewin);
}
示例#6
0
/*
 * Apply changed from configuration dialog.
 */
static void configure_apply_cb (gpointer data)

{

  ConfigFile *cfgfile;

  show_volume=isactive(vol_on);
  show_balance=isactive(bal_on);
  show_pause=isactive(pause_on);
  show_trackname=isactive(trackname_on);
  show_stop=isactive(stop_on);
  show_repeat=isactive(repeat_on);
  show_shuffle=isactive(shuffle_on);


  if (colour)
    g_free (colour);
  if (font)
    g_free (font);

  colour = g_strdup (gtk_entry_get_text (GTK_ENTRY (colour_entry)));
  font = g_strdup (gtk_entry_get_text (GTK_ENTRY (font_entry)));
  timeout = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (timeout_spin));
  offset = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (offset_spin));
  shadow_offset = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (shadow_spin));
  if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (pos_top)))
    pos = XOSD_top;
  else
    pos = XOSD_bottom;

  if (osd)
    {
      xosd_set_colour (osd, colour);
      if (xosd_set_font (osd, font) == -1) {
	DEBUG("invalid font");
	DEBUG(font);
      }
      xosd_set_timeout (osd, timeout);
      xosd_set_offset (osd, offset);
      xosd_set_shadow_offset (osd, shadow_offset);
      xosd_set_pos (osd, pos);
    }

  cfgfile = xmms_cfg_open_default_file();
  xmms_cfg_write_string(cfgfile, "osd", "colour", colour);
  xmms_cfg_write_string(cfgfile, "osd", "font", font);
  xmms_cfg_write_int(cfgfile, "osd", "timeout", timeout);
  xmms_cfg_write_int(cfgfile, "osd", "offset", offset);
  xmms_cfg_write_int(cfgfile, "osd", "shadow_offset", shadow_offset);
  xmms_cfg_write_int(cfgfile, "osd", "pos", pos);

  xmms_cfg_write_int (cfgfile, "osd", "show_volume", show_volume );
  xmms_cfg_write_int (cfgfile, "osd", "show_balance", show_balance );
  xmms_cfg_write_int (cfgfile, "osd", "show_pause", show_pause );
  xmms_cfg_write_int (cfgfile, "osd", "show_trackname", show_trackname );
  xmms_cfg_write_int (cfgfile, "osd", "show_stop", show_stop );
  xmms_cfg_write_int (cfgfile, "osd", "show_repeat", show_repeat );
  xmms_cfg_write_int (cfgfile, "osd", "show_shuffle", show_shuffle );

  xmms_cfg_write_default_file(cfgfile);
  xmms_cfg_free(cfgfile);
}
示例#7
0
static void cdda_configurewin_ok_cb(GtkWidget * w, gpointer data)
{
	ConfigFile *cfgfile;
	struct driveinfo *drive;
	GList *node;
	int olddrives, ndrives, i;

	olddrives = g_list_length(cdda_cfg.drives);
	for (node = cdda_cfg.drives; node; node = node->next)
	{
		drive = node->data;
		g_free(drive->device);
		g_free(drive->directory);
		g_free(drive);
	}
	g_list_free(cdda_cfg.drives);
	cdda_cfg.drives = NULL;

	for (node = drives; node; node = node->next)
	{
		struct driveconfig *config = node->data;
		char *tmp;

		drive = g_malloc0(sizeof (*drive));
		drive->device = g_strdup(gtk_entry_get_text(GTK_ENTRY(config->device)));

		tmp = gtk_entry_get_text(GTK_ENTRY(config->directory));
		if (strlen(tmp) < 2 || tmp[strlen(tmp) - 1] == '/')
			drive->directory = g_strdup(tmp);
		else
			drive->directory = g_strconcat(tmp, "/", NULL);

		if (GET_TB(config->mixer_oss))
			drive->mixer = CDDA_MIXER_OSS;
		else if (GET_TB(config->mixer_drive))
			drive->mixer = CDDA_MIXER_DRIVE;
		else
			drive->mixer = CDDA_MIXER_NONE;
		if (GET_TB(config->dae))
			drive->dae = CDDA_READ_DAE;
		else
			drive->dae = CDDA_READ_ANALOG;
#ifdef HAVE_OSS
		drive->oss_mixer = SOUND_MIXER_CD;
#endif

		cdda_cfg.drives = g_list_append(cdda_cfg.drives, drive);
	}

	cdda_cfg.title_override = GET_TB(cdi_name_override);
	g_free(cdda_cfg.name_format);
	cdda_cfg.name_format = g_strdup(gtk_entry_get_text(GTK_ENTRY(cdi_name)));

	cdda_cfg.use_cddb = GET_TB(cdi_use_cddb);
	cdda_cddb_set_server(gtk_entry_get_text(GTK_ENTRY(cdi_cddb_server)));

#if 0
	cdda_cfg.use_cdin = GET_TB(cdi_use_cdin);
	if (strcmp(cdda_cfg.cdin_server, gtk_entry_get_text(GTK_ENTRY(cdi_cdin_server))))
	{
		g_free(cdda_cfg.cdin_server);
		cdda_cfg.cdin_server = g_strdup(gtk_entry_get_text(GTK_ENTRY(cdi_cdin_server)));
	}
#endif

	cfgfile = xmms_cfg_open_default_file();

	drive = cdda_cfg.drives->data;
	xmms_cfg_write_string(cfgfile, "CDDA", "device", drive->device);
	xmms_cfg_write_string(cfgfile, "CDDA", "directory", drive->directory);
  	xmms_cfg_write_int(cfgfile, "CDDA", "mixer", drive->mixer);
	xmms_cfg_write_int(cfgfile, "CDDA", "readmode", drive->dae);

/*  	xmms_cfg_write_boolean(cfgfile, "CDDA", "use_oss_mixer", cdda_cfg.use_oss_mixer); */
	
	for (node = cdda_cfg.drives->next, i = 1; node; node = node->next, i++)
	{
		char label[20];
		drive = node->data;

		sprintf(label, "device%d", i);
		xmms_cfg_write_string(cfgfile, "CDDA", label, drive->device);
		
		sprintf(label, "directory%d", i);
		xmms_cfg_write_string(cfgfile, "CDDA", label, drive->directory);

		sprintf(label, "mixer%d", i);
		xmms_cfg_write_int(cfgfile, "CDDA", label, drive->mixer);

		sprintf(label, "readmode%d", i);
		xmms_cfg_write_int(cfgfile, "CDDA", label, drive->dae);
	}

	ndrives = g_list_length(cdda_cfg.drives);

	for (i = ndrives; i < olddrives; i++)
		/* FIXME: Clear old entries */;

	xmms_cfg_write_int(cfgfile, "CDDA", "num_drives", ndrives);

	xmms_cfg_write_boolean(cfgfile, "CDDA", "title_override", cdda_cfg.title_override);
	xmms_cfg_write_string(cfgfile, "CDDA", "name_format", cdda_cfg.name_format);
	xmms_cfg_write_boolean(cfgfile, "CDDA", "use_cddb", cdda_cfg.use_cddb);
	xmms_cfg_write_string(cfgfile, "CDDA", "cddb_server", cdda_cfg.cddb_server);
	xmms_cfg_write_int(cfgfile, "CDDA", "cddb_protocol_level", cdda_cfg.cddb_protocol_level);
	xmms_cfg_write_boolean(cfgfile, "CDDA", "use_cdin", cdda_cfg.use_cdin);
	xmms_cfg_write_string(cfgfile, "CDDA", "cdin_server", cdda_cfg.cdin_server);
	xmms_cfg_write_default_file(cfgfile);
	xmms_cfg_free(cfgfile);
}