~ubuntu-branches/ubuntu/precise/gnomeradio/precise-updates

« back to all changes in this revision

Viewing changes to src/prefs.c

  • Committer: Bazaar Package Importer
  • Author(s): Francesco Namuri
  • Date: 2008-05-12 00:36:27 UTC
  • mfrom: (2.1.5 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080512003627-m4r405wwqc2e3xgv
Tags: 1.7-6
* debian/changelog: sync with the one from ubuntu.
* debian/patches/prefs.c.patch: fixed. In 1.7-6 I've uploaded a wrong
  version of the patch, now it's the right one that Cesare Tirabassi
  has included in the ubuntu's package. (Closes: #468796, #462891)

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
 */
16
16
 
17
17
#include <gconf/gconf-client.h>
 
18
#include <profiles/audio-profile-choose.h>
18
19
#include <string.h>
19
20
#include "config.h"
20
21
#include "prefs.h"
 
22
#include "trayicon.h"
21
23
#include "gui.h"
22
24
#include "rec_tech.h"
23
25
 
47
49
        gconf_client_set_string(client, "/apps/gnomeradio/mixer", settings.mixer, NULL);
48
50
        gconf_client_set_string(client, "/apps/gnomeradio/mixer-device", settings.mixer_dev, NULL);
49
51
        gconf_client_set_bool(client, "/apps/gnomeradio/mute-on-exit", settings.mute_on_exit, NULL);
50
 
        //gconf_client_set_float(client, "/apps/gnomeradio/volume", volume->value, NULL);
 
52
        /*gconf_client_set_float(client, "/apps/gnomeradio/volume", volume->value, NULL);*/
51
53
        gconf_client_set_float(client, "/apps/gnomeradio/last-freq", adj->value/STEPS, NULL);
52
54
 
53
55
        /* Store recording settings */
54
 
        gconf_client_set_string(client, "/apps/gnomeradio/recording/audiodevice", rec_settings.audiodevice, NULL);
55
 
        gconf_client_set_string(client, "/apps/gnomeradio/recording/destination", rec_settings.destination, NULL);
 
56
/*      gconf_client_set_string(client, "/apps/gnomeradio/recording/audiodevice", rec_settings.audiodevice, NULL);
56
57
        gconf_client_set_bool(client, "/apps/gnomeradio/recording/record-as-mp3", rec_settings.mp3, NULL);
57
58
        gconf_client_set_string(client, "/apps/gnomeradio/recording/sample-rate", rec_settings.rate, NULL);
58
59
        gconf_client_set_string(client, "/apps/gnomeradio/recording/sample-format", rec_settings.sample, NULL);
59
60
        gconf_client_set_bool(client, "/apps/gnomeradio/recording/record-in-stereo", rec_settings.stereo, NULL);
60
61
        gconf_client_set_string(client, "/apps/gnomeradio/recording/encoder", rec_settings.encoder, NULL);
61
62
        gconf_client_set_string(client, "/apps/gnomeradio/recording/bitrate", rec_settings.bitrate, NULL);
 
63
*/
 
64
 
 
65
        gconf_client_set_string(client, "/apps/gnomeradio/recording/destination", rec_settings.destination, NULL);
 
66
        gconf_client_set_string(client, "/apps/gnomeradio/recording/profile", rec_settings.profile, NULL);
62
67
 
63
68
        /* Store the presets */
64
69
        count = g_list_length(settings.presets);
74
79
                g_free(buffer);
75
80
        }       
76
81
        gconf_client_set_int(client, "/apps/gnomeradio/presets/last", mom_ps, NULL);
77
 
        g_print("Storing Settings in GConf database\n");
 
82
        /*g_print("Storing Settings in GConf database\n");*/
78
83
        
79
84
        return TRUE;
80
85
}                       
107
112
        if (!settings.mixer_dev)
108
113
                settings.mixer_dev = g_strdup("/dev/mixer");
109
114
        settings.mute_on_exit = gconf_client_get_bool(client, "/apps/gnomeradio/mute-on-exit", NULL);
110
 
        //volume->value = gconf_client_get_float(client, "/apps/gnomeradio/volume", NULL);
 
115
        /*volume->value = gconf_client_get_float(client, "/apps/gnomeradio/volume", NULL);*/
111
116
        freq = gconf_client_get_float(client, "/apps/gnomeradio/last-freq", NULL);
112
117
        if ((freq < FREQ_MIN) || (freq > FREQ_MAX))
113
118
                adj->value = FREQ_MIN * STEPS;
115
120
                adj->value = freq * STEPS;
116
121
        
117
122
        /* Load recording settings */
118
 
        rec_settings.audiodevice = gconf_client_get_string(client, "/apps/gnomeradio/recording/audiodevice", NULL);
 
123
/*      rec_settings.audiodevice = gconf_client_get_string(client, "/apps/gnomeradio/recording/audiodevice", NULL);
119
124
        if (!rec_settings.audiodevice)
120
125
                rec_settings.audiodevice = g_strdup("/dev/audio");
121
 
        rec_settings.destination = gconf_client_get_string(client, "/apps/gnomeradio/recording/destination", NULL);
122
 
        if (!rec_settings.destination)
123
 
                rec_settings.destination = g_strdup(g_get_home_dir());
124
126
        rec_settings.mp3 = gconf_client_get_bool(client, "/apps/gnomeradio/recording/record-as-mp3", NULL);
125
127
        rec_settings.rate = gconf_client_get_string(client, "/apps/gnomeradio/recording/sample-rate", NULL);
126
128
        if (!rec_settings.rate)
134
136
                rec_settings.encoder = g_strdup("oggenc");
135
137
        rec_settings.bitrate = gconf_client_get_string(client, "/apps/gnomeradio/recording/bitrate", NULL);
136
138
        if (!rec_settings.bitrate)
137
 
                rec_settings.bitrate = g_strdup("192");
 
139
                rec_settings.bitrate = g_strdup("192");*/
 
140
 
 
141
        rec_settings.destination = gconf_client_get_string(client, "/apps/gnomeradio/recording/destination", NULL);
 
142
        if (!rec_settings.destination)
 
143
                rec_settings.destination = g_strdup(g_get_home_dir());
 
144
        rec_settings.profile = gconf_client_get_string(client, "/apps/gnomeradio/recording/profile", NULL);
 
145
        if (!rec_settings.profile)
 
146
                rec_settings.profile = g_strdup("cdlossy");
138
147
        
139
148
        /* Load the presets */
140
149
        count = gconf_client_get_int(client, "/apps/gnomeradio/presets/presets", NULL);
141
150
        for (i=0;i<count;i++)
142
151
        {
143
 
                char *tmp;
144
152
                ps = malloc(sizeof(preset));
145
153
                buffer = g_strdup_printf("/apps/gnomeradio/presets/%d/name", i);
146
 
                tmp = gconf_client_get_string(client, buffer, NULL); 
147
 
                if (!tmp)
148
 
                        tmp = "unnamed";
149
 
                ps->title = g_strdup(tmp);
 
154
                ps->title = gconf_client_get_string(client, buffer, NULL); 
150
155
                g_free(buffer);
 
156
                if (!ps->title)
 
157
                        ps->title = g_strdup(_("unnamed"));
151
158
                buffer = g_strdup_printf("/apps/gnomeradio/presets/%d/freqency", i);
152
159
                freq = gconf_client_get_float(client, buffer, NULL); 
153
160
                if ((freq < FREQ_MIN) || (freq > FREQ_MAX))
178
185
        if (settings.device) g_free(settings.device);
179
186
        settings.device = g_strdup(text);
180
187
        
181
 
        start_radio(TRUE);
 
188
        start_radio(TRUE, data);
182
189
        
183
190
        return FALSE;
184
191
}
206
213
        if ((tmp = strstr(settings.mixer, " (")))
207
214
                tmp[0] = '\0';
208
215
        
209
 
        start_mixer(TRUE);
 
216
        start_mixer(TRUE, data);
210
217
        
211
218
        return FALSE;
212
219
}
213
220
 
214
 
static gboolean bitrate_combo_change_cb(GtkComboBox *combo, gpointer data)
 
221
/*static gboolean bitrate_combo_change_cb(GtkComboBox *combo, gpointer data)
215
222
{
216
223
        GList *bitrates;
217
224
        gint active;
229
236
        rec_settings.bitrate = g_strdup(bitrate);
230
237
        
231
238
        return FALSE;
232
 
}
 
239
}*/
233
240
 
234
 
static gboolean encoder_combo_change_cb(GtkComboBox *combo, gpointer bitrate_combo)
 
241
/*static gboolean encoder_combo_change_cb(GtkComboBox *combo, gpointer bitrate_combo)
235
242
{
236
243
        GList *encoders;
237
244
        gint active;
254
261
        gtk_widget_set_sensitive(bitrate_combo, rec_settings.mp3);
255
262
        
256
263
        return FALSE;
 
264
}*/
 
265
 
 
266
static gboolean profile_combo_change_cb(GtkComboBox *combo, gpointer userdata)
 
267
{
 
268
        GMAudioProfile* profile = gm_audio_profile_choose_get_active(GTK_WIDGET(combo));
 
269
 
 
270
        g_assert(rec_settings.profile);
 
271
        g_free(rec_settings.profile);
 
272
        rec_settings.profile = g_strdup(gm_audio_profile_get_id(profile));
 
273
 
 
274
        return FALSE;
257
275
}
258
276
 
259
277
static void add_button_clicked_cb(GtkWidget *widget, gpointer data)
263
281
        GtkTreeIter iter = {0};
264
282
        GtkAdjustment* v_scb;
265
283
        GtkTreePath *path = NULL;
 
284
        GList* menuitems;
 
285
        GtkWidget *menuitem;
266
286
        
267
287
        ps = malloc(sizeof(preset));
268
 
        ps->title = g_strdup(_("unamed"));
 
288
        ps->title = g_strdup(_("unnamed"));
269
289
        ps->freq = rint(adj->value) / STEPS;
270
290
        settings.presets = g_list_append(settings.presets, (gpointer) ps);
271
291
        buffer = g_strdup_printf("%.2f", ps->freq);
282
302
        gtk_combo_box_append_text(GTK_COMBO_BOX(preset_combo), ps->title);
283
303
        mom_ps = g_list_length(settings.presets) - 1;
284
304
        preset_combo_set_item(mom_ps);
285
 
        
 
305
 
 
306
        menuitems = GTK_MENU_SHELL(tray_menu)->children;
 
307
        menuitem = gtk_menu_item_new_with_label(ps->title); 
 
308
                
 
309
        gtk_menu_shell_insert(GTK_MENU_SHELL(tray_menu), menuitem, mom_ps);             
 
310
        g_signal_connect(G_OBJECT(menuitem), "activate", (GCallback)preset_menuitem_activate_cb, (gpointer)mom_ps);
 
311
        gtk_widget_show(menuitem);
 
312
 
286
313
        buffer = g_strdup_printf("%d", g_list_length(settings.presets) - 1);
287
314
        path = gtk_tree_path_new_from_string(buffer);
288
315
        g_free(buffer);
298
325
        GtkTreeIter iter;
299
326
        preset *ps;
300
327
        int *row;
 
328
        GList* menuitems;
 
329
        GtkWidget *menuitem;
301
330
        
302
331
        gtk_tree_view_get_cursor(GTK_TREE_VIEW(list_view), &path, &focus_column);
303
332
        
320
349
        if (--mom_ps < 0) mom_ps = 0;
321
350
        if (!g_list_length(settings.presets)) mom_ps = -1;
322
351
        preset_combo_set_item(mom_ps);
 
352
 
 
353
        menuitems = GTK_MENU_SHELL(tray_menu)->children;
 
354
        g_assert(*row < g_list_length(menuitems));
 
355
        menuitem = g_list_nth_data(menuitems, *row);
 
356
        gtk_widget_destroy(menuitem);
323
357
        
324
358
        gtk_tree_path_prev(path);
325
359
        gtk_tree_view_set_cursor(GTK_TREE_VIEW(list_view), path, NULL, FALSE);
361
395
        GtkTreeIter iter;
362
396
        preset *ps;
363
397
        int *row;
 
398
        GList* menuitems;
 
399
        GtkWidget *menuitem;
364
400
        
365
401
        path = gtk_tree_path_new_from_string(path_str);
366
402
 
377
413
        gtk_combo_box_insert_text(GTK_COMBO_BOX(preset_combo), *row + 1, ps->title);
378
414
        preset_combo_set_item(mom_ps);
379
415
        
 
416
        menuitems = GTK_MENU_SHELL(tray_menu)->children;
 
417
        g_assert(mom_ps < g_list_length(menuitems));
 
418
        menuitem = g_list_nth_data(menuitems, mom_ps);
 
419
        gtk_widget_destroy(menuitem);
 
420
        menuitem = gtk_menu_item_new_with_label(ps->title); 
 
421
                
 
422
        gtk_menu_shell_insert(GTK_MENU_SHELL(tray_menu), menuitem, *row);               
 
423
        g_signal_connect(G_OBJECT(menuitem), "activate", (GCallback)preset_menuitem_activate_cb, (gpointer)mom_ps);
 
424
        gtk_widget_show(menuitem);
 
425
        
380
426
        gtk_tree_model_get_iter(GTK_TREE_MODEL(list_store), &iter, path);
381
427
        gtk_list_store_set(GTK_LIST_STORE(list_store), &iter, 0, new_val, -1);
382
428
        gtk_tree_path_free(path);       
445
491
        g_list_free(list);
446
492
}
447
493
 
448
 
GtkWidget* prefs_window(void)
 
494
GtkWidget* prefs_window(GtkWidget *app)
449
495
{
450
496
        GtkWidget *dialog;
451
497
        GtkWidget *box, *sbox, *pbox, *rbox;
452
498
        GtkWidget *settings_box, *presets_box, *record_box;
453
499
        GtkWidget *settings_label, *presets_label, *record_label;
454
500
        GtkWidget *s_indent_label, *p_indent_label, *r_indent_label;
455
 
        GtkWidget *encoder_label, *bitrate_label, *destination_label;
 
501
        GtkWidget *destination_label;
456
502
        GtkWidget *destination_button;
457
 
        GtkWidget *encoder_combo, *bitrate_combo;
458
 
        GtkWidget *mixer_eb, *encoder_eb, *bitrate_eb;
 
503
        GtkWidget *profile_combo;
 
504
        GtkWidget *mixer_eb, *profile_eb;
459
505
        GtkWidget *preset_box;
460
506
        GtkWidget *settings_table, *record_table;
461
507
        GtkWidget *device_label, *mixer_label;
464
510
        GtkWidget *scrolled_window;
465
511
        GtkCellRenderer *cellrenderer;
466
512
        GtkTreeViewColumn *list_column;
467
 
        GList *mixer_devs, *encoders, *bitrates, *ptr;
 
513
        GList *mixer_devs, *profiles, *ptr;
468
514
        gint i, active;
469
515
        char *settings_hdr, *presets_hdr, *record_hdr;
470
516
        preset* ps;
471
517
        
472
 
        dialog = gtk_dialog_new_with_buttons(_("Gnomeradio Settings"), NULL, 
 
518
        dialog = gtk_dialog_new_with_buttons(_("Gnomeradio Settings"), GTK_WINDOW(app), 
473
519
                        GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_NO_SEPARATOR,
474
520
                        GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, 
475
521
                        GTK_STOCK_HELP, GTK_RESPONSE_HELP,
552
598
 
553
599
        gtk_table_attach_defaults(GTK_TABLE(settings_table), mute_on_exit_cb, 0, 2, 2, 3);
554
600
 
555
 
        g_signal_connect(GTK_OBJECT(device_entry), "hide", GTK_SIGNAL_FUNC(device_entry_activate_cb), NULL);
 
601
        g_signal_connect(GTK_OBJECT(device_entry), "hide", GTK_SIGNAL_FUNC(device_entry_activate_cb), app);
556
602
        g_signal_connect(GTK_OBJECT(device_entry), "activate", GTK_SIGNAL_FUNC(device_entry_activate_cb), NULL);
557
 
        g_signal_connect(GTK_OBJECT(mixer_combo), "changed", GTK_SIGNAL_FUNC(mixer_combo_change_cb), NULL);
 
603
        g_signal_connect(GTK_OBJECT(mixer_combo), "changed", GTK_SIGNAL_FUNC(mixer_combo_change_cb), app);
558
604
        g_signal_connect(GTK_OBJECT(mute_on_exit_cb), "toggled", GTK_SIGNAL_FUNC(mute_on_exit_toggled_cb), NULL);
559
605
 
560
606
        gtk_tooltips_set_tip(tooltips, device_entry, _("Specify the radio-device (in most cases /dev/radio)"), NULL);
569
615
        p_indent_label = gtk_label_new("    ");
570
616
        gtk_box_pack_start(GTK_BOX(pbox), p_indent_label, FALSE, FALSE, 0);
571
617
 
572
 
        preset_box = gtk_hbox_new(FALSE, 10);
 
618
        preset_box = gtk_vbox_new(FALSE, 10);
573
619
        gtk_box_pack_start(GTK_BOX(pbox), preset_box, TRUE, TRUE, 0);
574
620
 
575
621
        scrolled_window = gtk_scrolled_window_new(NULL, NULL);
577
623
        list_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(list_store));
578
624
        gtk_container_add(GTK_CONTAINER(scrolled_window), list_view);
579
625
        gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled_window), GTK_SHADOW_IN);
580
 
        gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
581
 
        gtk_widget_set_size_request(list_view, 200, 100);
 
626
        gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
 
627
        gtk_widget_set_size_request(list_view, 200, 150);
582
628
        gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(list_view), FALSE);
583
629
        
584
630
        selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(list_view));
590
636
        cellrenderer->mode = GTK_CELL_RENDERER_MODE_EDITABLE;
591
637
        GTK_CELL_RENDERER_TEXT(cellrenderer)->editable = TRUE;
592
638
        list_column = gtk_tree_view_column_new_with_attributes(NULL, cellrenderer, "text", 0, NULL);
593
 
        gtk_tree_view_column_set_min_width(list_column, 130);
594
 
        gtk_tree_view_column_set_max_width(list_column, 130);
 
639
        gtk_tree_view_column_set_min_width(list_column, 150);
595
640
        gtk_tree_view_append_column(GTK_TREE_VIEW(list_view), list_column);
596
641
        g_signal_connect(GTK_OBJECT(cellrenderer), "edited", GTK_SIGNAL_FUNC(name_cell_edited_cb), NULL);
597
642
 
603
648
        gtk_tree_view_append_column(GTK_TREE_VIEW(list_view), list_column);
604
649
        g_signal_connect(GTK_OBJECT(cellrenderer), "edited", GTK_SIGNAL_FUNC(freq_cell_edited_cb), NULL);
605
650
 
606
 
        button_box = gtk_vbox_new(FALSE, 15);
 
651
        button_box = gtk_hbox_new(FALSE, 12);
607
652
 
608
653
        add_button = gtk_button_new_from_stock(GTK_STOCK_ADD);
609
654
        del_button = gtk_button_new_from_stock(GTK_STOCK_DELETE);
610
655
        
611
 
        gtk_box_pack_start(GTK_BOX(button_box), add_button, FALSE, FALSE, 0);
612
 
        gtk_box_pack_start(GTK_BOX(button_box), del_button, FALSE, FALSE, 0);
 
656
        gtk_box_pack_end(GTK_BOX(button_box), del_button, FALSE, FALSE, 0);
 
657
        gtk_box_pack_end(GTK_BOX(button_box), add_button, FALSE, FALSE, 0);
613
658
        
614
659
        gtk_box_pack_start(GTK_BOX(preset_box), scrolled_window, TRUE, TRUE, 0);
615
660
        gtk_box_pack_start(GTK_BOX(preset_box), button_box, TRUE, TRUE, 0);
639
684
        r_indent_label = gtk_label_new("    ");
640
685
        gtk_box_pack_start(GTK_BOX(rbox), r_indent_label, FALSE, FALSE, 0);
641
686
 
642
 
        bitrates = g_list_append(NULL, g_strdup("32"));
643
 
        bitrates = g_list_append(bitrates, g_strdup("40"));
644
 
        bitrates = g_list_append(bitrates, g_strdup("48"));
645
 
        bitrates = g_list_append(bitrates, g_strdup("56"));
646
 
        bitrates = g_list_append(bitrates, g_strdup("64"));
647
 
        bitrates = g_list_append(bitrates, g_strdup("80"));
648
 
        bitrates = g_list_append(bitrates, g_strdup("96"));
649
 
        bitrates = g_list_append(bitrates, g_strdup("112"));
650
 
        bitrates = g_list_append(bitrates, g_strdup("128"));
651
 
        bitrates = g_list_append(bitrates, g_strdup("160"));
652
 
        bitrates = g_list_append(bitrates, g_strdup("192"));
653
 
        bitrates = g_list_append(bitrates, g_strdup("224"));
654
 
        bitrates = g_list_append(bitrates, g_strdup("256"));
655
 
        bitrates = g_list_append(bitrates, g_strdup("320"));
656
 
 
657
 
        record_table = gtk_table_new(3, 2, FALSE);
 
687
        record_table = gtk_table_new(2, 2, FALSE);
658
688
        gtk_table_set_col_spacings(GTK_TABLE(record_table), 15);
659
689
        gtk_table_set_row_spacings(GTK_TABLE(record_table), 5);
660
690
        
661
 
        encoder_label = gtk_label_new(_("Encoder:"));
662
 
        bitrate_label = gtk_label_new(_("Bitrate:"));
663
691
        destination_label = gtk_label_new(_("Destination directory:"));
664
 
        gtk_misc_set_alignment(GTK_MISC(encoder_label), 0.0f, 0.5f); 
665
 
        gtk_misc_set_alignment(GTK_MISC(bitrate_label), 0.0f, 0.5f);
666
692
        gtk_misc_set_alignment(GTK_MISC(destination_label), 0.0f, 0.5f);
667
693
 
668
694
        destination_button = gtk_button_new();
669
695
        gtk_button_set_label(GTK_BUTTON(destination_button), rec_settings.destination);
670
696
        
671
 
        encoder_eb = gtk_event_box_new();
672
 
        encoder_combo = gtk_combo_box_new_text();
673
 
        gtk_container_add(GTK_CONTAINER(encoder_eb), encoder_combo);
674
 
        encoders = get_installed_encoders();
675
 
        if (!encoders) rec_settings.mp3 = FALSE;
676
 
        ptr = encoders = g_list_prepend(encoders, (gpointer)g_strdup(_("Wave file")));
677
 
        for (i = 0, active = 0; ptr; ptr = g_list_next(ptr)) {
678
 
                gtk_combo_box_append_text(GTK_COMBO_BOX(encoder_combo), ptr->data);
679
 
                if (g_str_equal(ptr->data, rec_settings.encoder)) active = i;
680
 
                ++i;
681
 
        }
682
 
        
683
 
        if (!rec_settings.mp3) active = 0;
684
 
        gtk_combo_box_set_active(GTK_COMBO_BOX(encoder_combo), active);
685
 
        if (encoders) g_object_set_data_full(G_OBJECT(encoder_combo), "encoders", encoders, (GDestroyNotify)free_string_list);
686
 
        
687
 
        bitrate_eb = gtk_event_box_new();
688
 
        bitrate_combo = gtk_combo_box_new_text();
689
 
        gtk_container_add(GTK_CONTAINER(bitrate_eb), bitrate_combo);
690
 
        ptr = bitrates;
691
 
        for (i = 0, active = 0; ptr; ptr = g_list_next(ptr)) {
692
 
                gchar *buffer = g_strdup_printf(_("%s kb/s"), (gchar*)ptr->data);
693
 
                gtk_combo_box_append_text(GTK_COMBO_BOX(bitrate_combo), buffer);
694
 
                g_free(buffer);
695
 
                if (!strncmp(ptr->data, rec_settings.bitrate, strlen(rec_settings.bitrate))) active = i;
696
 
                ++i;
697
 
        }
698
 
        gtk_combo_box_set_active(GTK_COMBO_BOX(bitrate_combo), active);
699
 
        g_object_set_data_full(G_OBJECT(bitrate_combo), "bitrates", bitrates, (GDestroyNotify)free_string_list);
700
 
 
701
 
        gtk_widget_set_sensitive(bitrate_combo, rec_settings.mp3);
 
697
        profile_eb = gtk_event_box_new();
 
698
        profile_combo = gm_audio_profile_choose_new();
 
699
        gtk_container_add(GTK_CONTAINER(profile_eb), profile_combo);
 
700
        gm_audio_profile_choose_set_active(profile_combo, rec_settings.profile);
702
701
 
703
702
        gtk_table_attach_defaults(GTK_TABLE(record_table), destination_label, 0, 1, 0, 1);
704
703
        gtk_table_attach_defaults(GTK_TABLE(record_table), destination_button, 1, 2, 0, 1);
705
 
        gtk_table_attach_defaults(GTK_TABLE(record_table), encoder_label, 0, 1, 1, 2);
706
 
        gtk_table_attach_defaults(GTK_TABLE(record_table), encoder_eb, 1, 2, 1, 2);
707
 
        gtk_table_attach_defaults(GTK_TABLE(record_table), bitrate_label, 0, 1, 2, 3);
708
 
        gtk_table_attach_defaults(GTK_TABLE(record_table), bitrate_eb, 1, 2, 2, 3);
 
704
        gtk_table_attach_defaults(GTK_TABLE(record_table), profile_eb, 0, 2, 1, 2);
709
705
 
710
706
        g_signal_connect(GTK_OBJECT(destination_button), "clicked", GTK_SIGNAL_FUNC(destination_button_clicked_cb), NULL);
711
 
        g_signal_connect(GTK_OBJECT(encoder_combo), "changed", GTK_SIGNAL_FUNC(encoder_combo_change_cb), (gpointer)bitrate_combo);
712
 
        g_signal_connect(GTK_OBJECT(bitrate_combo), "changed", GTK_SIGNAL_FUNC(bitrate_combo_change_cb), NULL);
 
707
        g_signal_connect(GTK_OBJECT(profile_combo), "changed", GTK_SIGNAL_FUNC(profile_combo_change_cb), NULL);
713
708
 
714
 
        gtk_tooltips_set_tip(tooltips, encoder_eb, _("Choose the mp3-/ogg-encoder that should be used, or to record as a uncompressed wave file"), NULL);
715
 
        gtk_tooltips_set_tip(tooltips, bitrate_eb, _("Choose the bitrate in which the mp3/ogg will be encoded"), NULL);
 
709
        gtk_tooltips_set_tip(tooltips, profile_eb, _("Choose the Media Profile that should be used to record."), NULL);
716
710
        
717
711
        gtk_box_pack_start(GTK_BOX(rbox), record_table, TRUE, TRUE, 0);
718
712