Lines 27-32
Link Here
|
27 |
static GtkWidget *streaming_proxy_hbox, *streaming_proxy_auth_hbox, *streaming_save_dirbrowser; |
27 |
static GtkWidget *streaming_proxy_hbox, *streaming_proxy_auth_hbox, *streaming_save_dirbrowser; |
28 |
static GtkWidget *streaming_save_hbox, *title_id3_box, *title_tag_desc; |
28 |
static GtkWidget *streaming_save_hbox, *title_id3_box, *title_tag_desc; |
29 |
static GtkWidget *title_override, *title_id3_entry, *title_id3v2_disable; |
29 |
static GtkWidget *title_override, *title_id3_entry, *title_id3v2_disable; |
|
|
30 |
static GtkWidget *volume_rva2_enable, *volume_boost_enable, *volume_dither_enable; |
31 |
static GtkWidget *volume_gain_label, *volume_clip_frame; |
32 |
static GtkWidget *volume_limiter_enable, *volume_reducegain_enable; |
33 |
static gchar volume_gaintext[24]; |
30 |
|
34 |
|
31 |
MPG123Config mpg123_cfg; |
35 |
MPG123Config mpg123_cfg; |
32 |
|
36 |
|
Lines 105-110
Link Here
|
105 |
mpg123_cfg.disable_id3v2 = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(title_id3v2_disable)); |
109 |
mpg123_cfg.disable_id3v2 = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(title_id3v2_disable)); |
106 |
g_free(mpg123_cfg.id3_format); |
110 |
g_free(mpg123_cfg.id3_format); |
107 |
mpg123_cfg.id3_format = g_strdup(gtk_entry_get_text(GTK_ENTRY(title_id3_entry))); |
111 |
mpg123_cfg.id3_format = g_strdup(gtk_entry_get_text(GTK_ENTRY(title_id3_entry))); |
|
|
112 |
mpg123_cfg.use_rva2 = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(volume_rva2_enable)); |
113 |
mpg123_cfg.use_boost = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(volume_boost_enable)); |
114 |
mpg123_cfg.enable_dither = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(volume_dither_enable)); |
115 |
if (GTK_TOGGLE_BUTTON(volume_limiter_enable)->active) |
116 |
mpg123_cfg.anticlip_mode = 0; |
117 |
else if (GTK_TOGGLE_BUTTON(volume_reducegain_enable)->active) |
118 |
mpg123_cfg.anticlip_mode = 1; |
119 |
mpg123_voladjust_update(NULL); |
108 |
|
120 |
|
109 |
filename = g_strconcat(g_get_home_dir(), "/.xmms/config", NULL); |
121 |
filename = g_strconcat(g_get_home_dir(), "/.xmms/config", NULL); |
110 |
cfg = xmms_cfg_open_file(filename); |
122 |
cfg = xmms_cfg_open_file(filename); |
Lines 135-140
Link Here
|
135 |
xmms_cfg_write_boolean(cfg, "MPG123", "disable_id3v2", mpg123_cfg.disable_id3v2); |
147 |
xmms_cfg_write_boolean(cfg, "MPG123", "disable_id3v2", mpg123_cfg.disable_id3v2); |
136 |
xmms_cfg_write_string(cfg, "MPG123", "id3_format", mpg123_cfg.id3_format); |
148 |
xmms_cfg_write_string(cfg, "MPG123", "id3_format", mpg123_cfg.id3_format); |
137 |
xmms_cfg_write_int(cfg, "MPG123", "detect_by", mpg123_cfg.detect_by); |
149 |
xmms_cfg_write_int(cfg, "MPG123", "detect_by", mpg123_cfg.detect_by); |
|
|
150 |
xmms_cfg_write_boolean(cfg, "MPG123", "use_rva2", mpg123_cfg.use_rva2); |
151 |
xmms_cfg_write_boolean(cfg, "MPG123", "use_boost", mpg123_cfg.use_boost); |
152 |
xmms_cfg_write_boolean(cfg, "MPG123", "enable_dither", mpg123_cfg.enable_dither); |
153 |
xmms_cfg_write_int(cfg, "MPG123", "anticlip_mode", mpg123_cfg.anticlip_mode); |
138 |
#ifdef USE_SIMD |
154 |
#ifdef USE_SIMD |
139 |
xmms_cfg_write_int(cfg, "MPG123", "default_synth", mpg123_cfg.default_synth); |
155 |
xmms_cfg_write_int(cfg, "MPG123", "default_synth", mpg123_cfg.default_synth); |
140 |
#endif |
156 |
#endif |
Lines 212-217
Link Here
|
212 |
gtk_widget_set_sensitive(title_tag_desc, override); |
228 |
gtk_widget_set_sensitive(title_tag_desc, override); |
213 |
} |
229 |
} |
214 |
|
230 |
|
|
|
231 |
static void volume_rva2_cb(GtkWidget * w, gpointer data) |
232 |
{ |
233 |
gboolean rva2_on; |
234 |
rva2_on = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(volume_rva2_enable)); |
235 |
gtk_widget_set_sensitive(volume_boost_enable, rva2_on); |
236 |
gtk_widget_set_sensitive(volume_dither_enable, rva2_on); |
237 |
gtk_widget_set_sensitive(volume_clip_frame, rva2_on); |
238 |
gtk_widget_set_sensitive(volume_gain_label, rva2_on); |
239 |
} |
240 |
|
215 |
static void configure_destroy(GtkWidget * w, gpointer data) |
241 |
static void configure_destroy(GtkWidget * w, gpointer data) |
216 |
{ |
242 |
{ |
217 |
if (streaming_save_dirbrowser) |
243 |
if (streaming_save_dirbrowser) |
Lines 230-235
Link Here
|
230 |
GtkWidget *streaming_save_label, *streaming_save_browse; |
256 |
GtkWidget *streaming_save_label, *streaming_save_browse; |
231 |
GtkWidget *streaming_cast_frame, *streaming_cast_vbox; |
257 |
GtkWidget *streaming_cast_frame, *streaming_cast_vbox; |
232 |
GtkWidget *title_frame, *title_id3_vbox, *title_id3_label; |
258 |
GtkWidget *title_frame, *title_id3_vbox, *title_id3_label; |
|
|
259 |
GtkWidget *volume_frame, *volume_vbox, *volume_clip_vbox; |
233 |
GtkWidget *bbox, *ok, *cancel; |
260 |
GtkWidget *bbox, *ok, *cancel; |
234 |
|
261 |
|
235 |
char *temp; |
262 |
char *temp; |
Lines 578-583
Link Here
|
578 |
gtk_box_pack_start(GTK_BOX(title_id3_vbox), title_tag_desc, FALSE, FALSE, 0); |
605 |
gtk_box_pack_start(GTK_BOX(title_id3_vbox), title_tag_desc, FALSE, FALSE, 0); |
579 |
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), title_frame, gtk_label_new(_("Title"))); |
606 |
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), title_frame, gtk_label_new(_("Title"))); |
580 |
|
607 |
|
|
|
608 |
/* |
609 |
* Volume adjustment config |
610 |
*/ |
611 |
volume_frame = gtk_frame_new(_("Volume Adjustment:")); |
612 |
gtk_container_border_width(GTK_CONTAINER(volume_frame), 5); |
613 |
|
614 |
volume_vbox = gtk_vbox_new(FALSE, 10); |
615 |
gtk_container_border_width(GTK_CONTAINER(volume_vbox), 5); |
616 |
gtk_container_add(GTK_CONTAINER(volume_frame), volume_vbox); |
617 |
|
618 |
volume_rva2_enable = gtk_check_button_new_with_label(_("Enable ID3 relative volume adjust")); |
619 |
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(volume_rva2_enable), |
620 |
mpg123_cfg.use_rva2); |
621 |
gtk_signal_connect(GTK_OBJECT(volume_rva2_enable), "clicked", volume_rva2_cb, NULL); |
622 |
gtk_box_pack_start(GTK_BOX(volume_vbox), volume_rva2_enable, FALSE, FALSE, 0); |
623 |
|
624 |
volume_boost_enable = gtk_check_button_new_with_label(_("Enable 6dB boost")); |
625 |
gtk_widget_set_sensitive(volume_boost_enable, mpg123_cfg.use_rva2); |
626 |
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(volume_boost_enable), |
627 |
mpg123_cfg.use_boost); |
628 |
gtk_box_pack_start(GTK_BOX(volume_vbox), volume_boost_enable, FALSE, FALSE, 0); |
629 |
|
630 |
volume_dither_enable = gtk_check_button_new_with_label(_("Enable dithering")); |
631 |
gtk_widget_set_sensitive(volume_dither_enable, mpg123_cfg.use_rva2); |
632 |
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(volume_dither_enable), |
633 |
mpg123_cfg.enable_dither); |
634 |
gtk_box_pack_start(GTK_BOX(volume_vbox), volume_dither_enable, FALSE, FALSE, 0); |
635 |
|
636 |
volume_clip_frame = gtk_frame_new(_("Clipping Prevention:")); |
637 |
gtk_widget_set_sensitive(volume_clip_frame, mpg123_cfg.use_rva2); |
638 |
gtk_container_border_width(GTK_CONTAINER(volume_clip_frame), 5); |
639 |
|
640 |
volume_clip_vbox = gtk_vbox_new(FALSE, 10); |
641 |
gtk_container_border_width(GTK_CONTAINER(volume_clip_vbox), 5); |
642 |
gtk_container_add(GTK_CONTAINER(volume_clip_frame), volume_clip_vbox); |
643 |
|
644 |
volume_limiter_enable = gtk_radio_button_new_with_label(NULL, _("Use limiter")); |
645 |
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(volume_limiter_enable), |
646 |
mpg123_cfg.anticlip_mode == 0); |
647 |
gtk_box_pack_start(GTK_BOX(volume_clip_vbox), volume_limiter_enable, FALSE, FALSE, 0); |
648 |
|
649 |
volume_reducegain_enable = gtk_radio_button_new_with_label(gtk_radio_button_group(GTK_RADIO_BUTTON(volume_limiter_enable)), _("Reduce gain")); |
650 |
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(volume_reducegain_enable), |
651 |
mpg123_cfg.anticlip_mode == 1); |
652 |
gtk_box_pack_start(GTK_BOX(volume_clip_vbox), volume_reducegain_enable, FALSE, FALSE, 0); |
653 |
|
654 |
gtk_box_pack_start(GTK_BOX(volume_vbox), volume_clip_frame, FALSE, FALSE, 0); |
655 |
|
656 |
if (fabs(mpg123_current_gain) < 0.0001) |
657 |
strcpy(volume_gaintext, _("Current gain: none")); |
658 |
else |
659 |
g_snprintf(volume_gaintext, 24, _("Current gain: %0.2fdB"), |
660 |
mpg123_current_gain); |
661 |
volume_gain_label = gtk_label_new(volume_gaintext); |
662 |
gtk_widget_set_sensitive(volume_gain_label, mpg123_cfg.use_rva2); |
663 |
gtk_box_pack_end(GTK_BOX(volume_vbox), volume_gain_label, FALSE, FALSE, 0); |
664 |
|
665 |
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), volume_frame, gtk_label_new(_("Volume"))); |
666 |
|
667 |
|
668 |
|
581 |
bbox = gtk_hbutton_box_new(); |
669 |
bbox = gtk_hbutton_box_new(); |
582 |
gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END); |
670 |
gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END); |
583 |
gtk_button_box_set_spacing(GTK_BUTTON_BOX(bbox), 5); |
671 |
gtk_button_box_set_spacing(GTK_BUTTON_BOX(bbox), 5); |