91
92
gtk_list_store_append(codecStore, &iter);
92
93
gchar *samplerate = g_strdup_printf("%d " KHZ, (gint) (c->sample_rate * 0.001));
93
94
gchar *bitrate = g_strdup_printf("%s " KBPS, c->bitrate);
95
gchar *channels = g_strdup_printf("%d", c->channels);
95
97
gtk_list_store_set(codecStore, &iter,
96
98
COLUMN_CODEC_ACTIVE, c->is_active,
97
99
COLUMN_CODEC_NAME, c->name,
98
100
COLUMN_CODEC_FREQUENCY, samplerate,
99
101
COLUMN_CODEC_BITRATE, bitrate,
102
COLUMN_CODEC_CHANNELS, channels,
101
104
g_free(samplerate);
511
514
G_TYPE_STRING, /* Name */
512
515
G_TYPE_STRING, /* Frequency */
513
516
G_TYPE_STRING, /* Bitrate */
517
G_TYPE_STRING, /* Channels */
514
518
G_TYPE_STRING /* Bandwidth */);
516
520
// Create codec tree view with list store
548
552
treeViewColumn = gtk_tree_view_column_new_with_attributes(_("Bitrate"), renderer, "text", COLUMN_CODEC_BITRATE, NULL);
549
553
gtk_tree_view_append_column(GTK_TREE_VIEW(codecTreeView), treeViewColumn);
556
renderer = gtk_cell_renderer_text_new();
557
treeViewColumn = gtk_tree_view_column_new_with_attributes(_("Channels"), renderer, "text", COLUMN_CODEC_CHANNELS, NULL);
558
gtk_tree_view_append_column(GTK_TREE_VIEW(codecTreeView), treeViewColumn);
551
560
gtk_container_add(GTK_CONTAINER(scrolledWindow), codecTreeView);
553
562
// Create button box
582
591
gtk_box_pack_start(GTK_BOX(alsa_hbox), grid, TRUE, TRUE, 1);
583
592
gtk_widget_show(grid);
585
gchar *message = "<small><i>default</i> plugin always uses internal sound card. Select <i>dmix/dsnoop</i> to use an alternate soundcard.</small>";
594
gchar *message = "<small>Select <i>dmix/dsnoop</i> to use non-default soundcard.</small>";
586
595
GtkWidget *info_bar = gnome_info_bar(message, GTK_MESSAGE_INFO);
587
596
/* Info bar gets a width of 2 cells */
588
597
gtk_grid_attach(GTK_GRID(grid), info_bar, 1, 1, 2, 1);
768
777
gtk_container_add(GTK_CONTAINER(alsa_conf), alsabox);
769
778
gtk_widget_show(alsa_conf);
770
779
gtk_widget_set_sensitive(alsa_conf, TRUE);
771
gtk_action_set_sensitive(volumeToggle_, TRUE);
781
if (gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(volumeToggle_))) {
782
main_window_volume_controls(FALSE);
783
g_settings_set_boolean(client->settings, "show-volume-controls", FALSE);
784
gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(volumeToggle_), FALSE);
772
787
} else if (must_show_alsa_conf() && !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(alsa_button))) {
773
788
dbus_set_audio_manager(PULSEAUDIO_API_STR);
774
789
gtk_container_remove(GTK_CONTAINER(alsa_conf), alsabox);
778
793
gtk_container_add(GTK_CONTAINER(pulse_conf), pulsebox);
779
794
gtk_widget_show(pulse_conf);
780
795
gtk_widget_set_sensitive(pulse_conf, TRUE);
781
gtk_action_set_sensitive(volumeToggle_, TRUE);
783
797
if (gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(volumeToggle_))) {
784
798
main_window_volume_controls(FALSE);
786
800
gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(volumeToggle_), FALSE);
789
gtk_action_set_sensitive(volumeToggle_, FALSE);
791
804
g_warning("Unexpected audio API state");
794
static const gchar *reverse_state(const gchar *state)
796
if (g_strcmp0(state, "enabled") == 0)
803
808
active_noise_suppress(void)
805
gchar *state = dbus_get_noise_suppress_state();
806
dbus_set_noise_suppress_state(reverse_state(state));
810
dbus_set_noise_suppress_state(!dbus_get_noise_suppress_state());
811
active_echo_cancel(void)
813
gchar *state = dbus_get_echo_cancel_state();
814
dbus_set_echo_cancel_state(reverse_state(state));
816
dbus_set_agc_state(!dbus_get_agc_state());
916
928
gtk_box_pack_start(GTK_BOX(audio_vbox), frame, FALSE, FALSE, 0);
918
930
GtkWidget *enableNoiseReduction = gtk_check_button_new_with_mnemonic(_("_Noise Reduction"));
919
gchar *state = dbus_get_noise_suppress_state();
921
if (g_strcmp0(state, "enabled") == 0)
922
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enableNoiseReduction), TRUE);
924
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enableNoiseReduction), FALSE);
932
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enableNoiseReduction), dbus_get_noise_suppress_state());
929
934
g_signal_connect(G_OBJECT(enableNoiseReduction), "clicked", active_noise_suppress, NULL);
930
935
gtk_grid_attach(GTK_GRID(grid), enableNoiseReduction, 0, 1, 1, 1);
932
GtkWidget *enableEchoCancel = gtk_check_button_new_with_mnemonic(_("_Echo Cancellation"));
933
state = dbus_get_echo_cancel_state();
935
if (g_strcmp0(state, "enabled") == 0)
936
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enableEchoCancel), TRUE);
938
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enableEchoCancel), FALSE);
942
g_signal_connect(G_OBJECT(enableEchoCancel), "clicked", active_echo_cancel, NULL);
943
gtk_grid_attach(GTK_GRID(grid), enableEchoCancel, 0, 2, 1, 1);
937
GtkWidget *enableAGC = gtk_check_button_new_with_mnemonic(_("Automatic _Gain Control"));
939
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enableAGC), dbus_get_agc_state());
941
g_signal_connect(G_OBJECT(enableAGC), "clicked", toggle_agc, NULL);
942
gtk_grid_attach(GTK_GRID(grid), enableAGC, 0, 2, 1, 1);
944
gnome_main_section_new_with_grid(_("Tone settings"), &frame, &grid);
945
gtk_box_pack_start(GTK_BOX(audio_vbox), frame, FALSE, FALSE, 0);
947
GtkWidget *muteDtmf = gtk_check_button_new_with_mnemonic(_("_Mute DTMF"));
948
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(muteDtmf), dbus_is_dtmf_muted());
950
g_signal_connect(G_OBJECT(muteDtmf), "toggled", mute_dtmf_toggled, NULL);
951
gtk_grid_attach(GTK_GRID(grid), muteDtmf, 0, 1, 1, 1);
945
953
gtk_widget_show_all(audio_vbox);