void
ags_audio_preferences_apply(AgsApplicable *applicable)
{
  AgsPreferences *preferences;
  AgsAudioPreferences *audio_preferences;
  AgsApplicationContext *application_context;
  AgsConfig *config;
  GList *card_id, *card_name;
  char *device;
  gchar *str;
  int card_num;
  guint channels, channels_min, channels_max;
  guint rate, rate_min, rate_max;
  guint buffer_size, buffer_size_min, buffer_size_max;

  audio_preferences = AGS_AUDIO_PREFERENCES(applicable);

  preferences = (AgsPreferences *) gtk_widget_get_ancestor(GTK_WIDGET(audio_preferences),
							   AGS_TYPE_PREFERENCES);

  application_context = AGS_WINDOW(preferences->parent)->application_context;

  config = application_context->config;
  
  /* samplerate */
  str = g_strdup_printf("%u\0",
			(guint) gtk_spin_button_get_value(audio_preferences->samplerate));
  ags_config_set_value(config,
		       AGS_CONFIG_SOUNDCARD,
		       "samplerate\0",
		       str);
  g_free(str);

  /* buffer size */
  str = g_strdup_printf("%u\0",
			(guint) gtk_spin_button_get_value(audio_preferences->buffer_size));
  ags_config_set_value(config,
		       AGS_CONFIG_SOUNDCARD,
		       "buffer-size\0",
		       str);
  g_free(str);

  /* dsp channels */
  str = g_strdup_printf("%u\0",
			(guint) gtk_spin_button_get_value(audio_preferences->audio_channels));
  ags_config_set_value(config,
		       AGS_CONFIG_SOUNDCARD,
		       "dsp-channels\0",
		       str);
  g_free(str);

  /* card */
  ags_config_set_value(config,
		       AGS_CONFIG_SOUNDCARD,
		       "alsa-handle\0",
		       gtk_combo_box_text_get_active_text(audio_preferences->card));
}
Exemplo n.º 2
0
void
ags_config_real_load_defaults(AgsConfig *config)
{
  ags_config_set_value(config, AGS_CONFIG_GENERIC, "autosave-thread\0", "false\0");

  ags_config_set_value(config, AGS_CONFIG_THREAD, "model\0", "multi-threaded\0");
  ags_config_set_value(config, AGS_CONFIG_THREAD, "lock-global\0", "ags-thread\0");
  ags_config_set_value(config, AGS_CONFIG_THREAD, "lock-parent\0", "ags-recycling-thread\0");

  ags_config_set_value(config, AGS_CONFIG_SOUNDCARD, "samplerate\0", "44100\0");
  ags_config_set_value(config, AGS_CONFIG_SOUNDCARD, "buffer-size\0", "940\0");
  ags_config_set_value(config, AGS_CONFIG_SOUNDCARD, "pcm-channels\0", "2\0");
  ags_config_set_value(config, AGS_CONFIG_SOUNDCARD, "dsp-channels\0", "2\0");
  ags_config_set_value(config, AGS_CONFIG_SOUNDCARD, "alsa-handle\0", "hw:0,0\0");

  ags_config_set_value(config, AGS_CONFIG_RECALL, "auto-sense\0", "true\0");
}
void
ags_generic_preferences_apply(AgsApplicable *applicable)
{
  AgsGenericPreferences *generic_preferences; 

  AgsConfig *config;
 
  generic_preferences = AGS_GENERIC_PREFERENCES(applicable);

  config = ags_config_get_instance();

  ags_config_set_value(config,
		       AGS_CONFIG_GENERIC,
		       "disable-feature",
		       "experimental");

  if(gtk_toggle_button_get_active((GtkToggleButton *) generic_preferences->autosave_thread)){
    ags_config_set_value(config,
			 AGS_CONFIG_GENERIC,
			 "autosave-thread",
			 "true");
  }else{
    ags_config_set_value(config,
			 AGS_CONFIG_GENERIC,
			 "autosave-thread",
			 "false");
  }

  ags_config_set_value(config,
		       AGS_CONFIG_GENERIC,
		       "segmentation",
		       gtk_combo_box_text_get_active_text(generic_preferences->segmentation));

  ags_config_set_value(config,
		       AGS_CONFIG_GENERIC,
		       "engine-mode",
		       gtk_combo_box_text_get_active_text(generic_preferences->engine_mode));

  ags_config_set_value(config,
		       AGS_CONFIG_GENERIC,
		       "rt-safe",
		       (gtk_toggle_button_get_active((GtkToggleButton *) generic_preferences->rt_safe) ? "true": "false"));
}
void
ags_osc_server_preferences_apply(AgsApplicable *applicable)
{
  AgsOscServerPreferences *osc_server_preferences;

  AgsConfig *config;

  gchar *str;
  
  osc_server_preferences = AGS_OSC_SERVER_PREFERENCES(applicable);
  
  config = ags_config_get_instance();

  /* auto-start */
  if(gtk_toggle_button_get_active((GtkToggleButton *) osc_server_preferences->auto_start)){
    ags_config_set_value(config,
			 AGS_CONFIG_OSC_SERVER,
			 "auto-start",
			 "true");
  }else{
    ags_config_set_value(config,
			 AGS_CONFIG_OSC_SERVER,
			 "auto-start",
			 "false");
  }

  /* any address */
  if(gtk_toggle_button_get_active((GtkToggleButton *) osc_server_preferences->any_address)){
    ags_config_set_value(config,
			 AGS_CONFIG_OSC_SERVER,
			 "any-address",
			 "true");
  }else{
    ags_config_set_value(config,
			 AGS_CONFIG_OSC_SERVER,
			 "any-address",
			 "false");
  }

  /* IPv4 */
  if(gtk_toggle_button_get_active((GtkToggleButton *) osc_server_preferences->enable_ip4)){
    ags_config_set_value(config,
			 AGS_CONFIG_OSC_SERVER,
			 "enable-ip4",
			 "true");
  }else{
    ags_config_set_value(config,
			 AGS_CONFIG_OSC_SERVER,
			 "enable-ip4",
			 "false");
  }

  str = gtk_entry_get_text(osc_server_preferences->ip4_address);

  if(str == NULL){
    str = AGS_OSC_SERVER_DEFAULT_INET4_ADDRESS;
  }
  
  ags_config_set_value(config,
		       AGS_CONFIG_OSC_SERVER,
		       "ip4-address",
		       str);
  
  /* IPv6 */
  if(gtk_toggle_button_get_active((GtkToggleButton *) osc_server_preferences->enable_ip6)){
    ags_config_set_value(config,
			 AGS_CONFIG_OSC_SERVER,
			 "enable-ip6",
			 "true");
  }else{
    ags_config_set_value(config,
			 AGS_CONFIG_OSC_SERVER,
			 "enable-ip6",
			 "false");
  }

  str = gtk_entry_get_text(osc_server_preferences->ip6_address);

  if(str == NULL){
    str = AGS_OSC_SERVER_DEFAULT_INET6_ADDRESS;
  }
    
  ags_config_set_value(config,
		       AGS_CONFIG_OSC_SERVER,
		       "ip6-address",
		       str);

  /* port */
  str = gtk_entry_get_text(osc_server_preferences->port);

  if(str == NULL){
    str = g_strdup_printf("%d",
			  AGS_OSC_SERVER_DEFAULT_SERVER_PORT);
  }
  
  ags_config_set_value(config,
		       AGS_CONFIG_OSC_SERVER,
		       "server-port",
		       str);
}
Exemplo n.º 5
0
/**
 * ags_config_load_from_file:
 * @config: the #AgsConfig
 * @filename: the configuration file
 *
 * Load configuration from @filename.
 *
 * Since: 0.4
 */
void
ags_config_load_from_file(AgsConfig *config, gchar *filename)
{
  GFile *file;

  file = g_file_new_for_path(filename);

  g_message("loading preferences for: %s\0", filename);

  if(!g_file_query_exists(file,
			  NULL)){
    ags_config_load_defaults(config);
  }else{
    GKeyFile *key_file;
    gchar **groups, **groups_start;
    gchar **keys, **keys_start;
    gchar *value;

    GError *error;

    error = NULL;
    
    key_file = g_key_file_new();
    g_key_file_load_from_file(key_file,
			      filename,
			      G_KEY_FILE_NONE,
			      &error);


    groups =
      groups_start = g_key_file_get_groups(key_file,
					   NULL);

    while(*groups != NULL){
      keys =
	keys_start = g_key_file_get_keys(key_file,
					 *groups,
					 NULL,
					 NULL);

      while(*keys != NULL){
	value = g_key_file_get_value(key_file,
				     *groups,
				     *keys,
				     NULL);

	ags_config_set_value(config,
		       *groups,
		       *keys,
		       value);
	
	keys++;
      }

      g_strfreev(keys_start);

      groups++;
    }

    g_strfreev(groups_start);
    g_key_file_unref(key_file);
  }

  g_object_unref(file);
}