X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=gtk%2Fsrc%2Faudiohandler.c;h=0e15b196212abdc4e89bd0759555f43dbfe78762;hb=b92530c2c538c4539102798e068e8b988ae4a84a;hp=1bfdcf2c5b19ddee4f074f21e6f2d143005920a8;hpb=8751ff185218052195414eae0e4cbc61a094f72b;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/gtk/src/audiohandler.c b/gtk/src/audiohandler.c index 1bfdcf2c..0e15b196 100644 --- a/gtk/src/audiohandler.c +++ b/gtk/src/audiohandler.c @@ -63,6 +63,7 @@ ghb_adjust_audio_rate_combos(signal_user_data_t *ud) ghb_ui_update(ud, "AudioSamplerate", ghb_int64_value(0)); ghb_ui_update(ud, "AudioMixdown", ghb_int64_value(0)); } + ghb_ui_update(ud, "AudioTrackDRCSlider", ghb_double_value(0)); } else if (acodec == HB_ACODEC_FAAC && mix != HB_AMIXDOWN_6CH) { @@ -135,7 +136,8 @@ ghb_set_pref_audio(gint titleindex, signal_user_data_t *ud) if (ghb_get_audio_info (&ainfo, titleindex, track) && ghb_audio_is_passthru (acodec_code)) { - if (ainfo.codec != acodec_code) + // HB_ACODEC_* are bit fields. Treat acodec_code as mask + if (!(ainfo.codec & acodec_code)) { acodec_code = ghb_get_default_acodec(); // If there's more audio to process, or we've already @@ -146,6 +148,10 @@ ghb_set_pref_audio(gint titleindex, signal_user_data_t *ud) acodec_code = 0; } } + else + { + acodec_code &= ainfo.codec; + } } if (titleindex >= 0 && track < 0) acodec_code = 0; @@ -244,7 +250,6 @@ audio_list_refresh_selected(signal_user_data_t *ud) br = ghb_settings_combo_option(asettings, "AudioBitrate"); sr = ghb_settings_combo_option(asettings, "AudioSamplerate"); mix = ghb_settings_combo_option(asettings, "AudioMixdown"); - drc = ghb_settings_get_string(asettings, "AudioTrackDRCSlider"); s_track = ghb_settings_get_string(asettings, "AudioTrack"); s_codec = ghb_settings_get_string(asettings, "AudioEncoder"); @@ -252,6 +257,10 @@ audio_list_refresh_selected(signal_user_data_t *ud) s_sr = ghb_settings_get_string(asettings, "AudioSamplerate"); s_mix = ghb_settings_get_string(asettings, "AudioMixdown"); s_drc = ghb_settings_get_double(asettings, "AudioTrackDRCSlider"); + if (s_drc < 0.1) + drc = g_strdup("Off"); + else + drc = g_strdup_printf("%.1f", s_drc); gtk_list_store_set(GTK_LIST_STORE(store), &iter, // These are displayed in list @@ -260,8 +269,8 @@ audio_list_refresh_selected(signal_user_data_t *ud) 2, br, 3, sr, 4, mix, - // These are used to set combo values when a list item is selected 5, drc, + // These are used to set combo values when a list item is selected 6, s_track, 7, s_codec, 8, s_br, @@ -278,7 +287,7 @@ audio_list_refresh_selected(signal_user_data_t *ud) } } -void +G_MODULE_EXPORT void audio_codec_changed_cb(GtkWidget *widget, signal_user_data_t *ud) { static gint prev_acodec = 0; @@ -334,7 +343,7 @@ audio_codec_changed_cb(GtkWidget *widget, signal_user_data_t *ud) ghb_live_reset(ud); } -void +G_MODULE_EXPORT void audio_track_changed_cb(GtkWidget *widget, signal_user_data_t *ud) { GValue *asettings; @@ -356,12 +365,12 @@ audio_track_changed_cb(GtkWidget *widget, signal_user_data_t *ud) ghb_live_reset(ud); } -void +G_MODULE_EXPORT void audio_mix_changed_cb(GtkWidget *widget, signal_user_data_t *ud) { GValue *asettings; - g_debug("audio_widget_changed_cb ()"); + g_debug("audio_mix_changed_cb ()"); ghb_adjust_audio_rate_combos(ud); ghb_check_dependency(ud, widget); asettings = get_selected_asettings(ud); @@ -373,7 +382,7 @@ audio_mix_changed_cb(GtkWidget *widget, signal_user_data_t *ud) ghb_live_reset(ud); } -void +G_MODULE_EXPORT void audio_widget_changed_cb(GtkWidget *widget, signal_user_data_t *ud) { GValue *asettings; @@ -389,11 +398,43 @@ audio_widget_changed_cb(GtkWidget *widget, signal_user_data_t *ud) ghb_live_reset(ud); } +G_MODULE_EXPORT void +drc_widget_changed_cb(GtkWidget *widget, gdouble val, signal_user_data_t *ud) +{ + GValue *asettings; + GtkLabel *label; + gchar *drc; + + g_debug("drc_widget_changed_cb ()"); + if (val > 0.8 && val < 1.0) + gtk_scale_button_set_value(GTK_SCALE_BUTTON(widget), 1.0); + if (val <= 0.8 && val > 0.5) + gtk_scale_button_set_value(GTK_SCALE_BUTTON(widget), 0.0); + else if (val > 0.0 && val <= 0.5) + gtk_scale_button_set_value(GTK_SCALE_BUTTON(widget), 1.0); + + label = GTK_LABEL(GHB_WIDGET(ud->builder, "drc_label")); + if (val < 1.0) + drc = g_strdup_printf("Off"); + else + drc = g_strdup_printf("%.1f", val); + gtk_label_set_text(label, drc); + g_free(drc); + ghb_check_dependency(ud, widget); + asettings = get_selected_asettings(ud); + if (asettings != NULL) + { + ghb_widget_to_setting(asettings, widget); + audio_list_refresh_selected(ud); + } + ghb_live_reset(ud); +} + // subtitles differ from other settings in that // the selection is updated automaitcally when the title // changes. I don't want the preset selection changed as // would happen for regular settings. -void +G_MODULE_EXPORT void subtitle_changed_cb(GtkWidget *widget, signal_user_data_t *ud) { const gchar *name = gtk_widget_get_name(widget); @@ -445,7 +486,6 @@ add_to_audio_list(signal_user_data_t *ud, GValue *settings) br = ghb_settings_combo_option(settings, "AudioBitrate"); sr = ghb_settings_combo_option(settings, "AudioSamplerate"); mix = ghb_settings_combo_option(settings, "AudioMixdown"); - drc = ghb_settings_get_string(settings, "AudioTrackDRCSlider"); s_track = ghb_settings_get_string(settings, "AudioTrack"); s_codec = ghb_settings_get_string(settings, "AudioEncoder"); @@ -453,6 +493,10 @@ add_to_audio_list(signal_user_data_t *ud, GValue *settings) s_sr = ghb_settings_get_string(settings, "AudioSamplerate"); s_mix = ghb_settings_get_string(settings, "AudioMixdown"); s_drc = ghb_settings_get_double(settings, "AudioTrackDRCSlider"); + if (s_drc < 0.1) + drc = g_strdup("Off"); + else + drc = g_strdup_printf("%.1f", s_drc); gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, @@ -462,8 +506,8 @@ add_to_audio_list(signal_user_data_t *ud, GValue *settings) 2, br, 3, sr, 4, mix, - // These are used to set combo box values when a list item is selected 5, drc, + // These are used to set combo box values when a list item is selected 6, s_track, 7, s_codec, 8, s_br, @@ -480,7 +524,7 @@ add_to_audio_list(signal_user_data_t *ud, GValue *settings) g_free(s_mix); } -void +G_MODULE_EXPORT void audio_list_selection_changed_cb(GtkTreeSelection *selection, signal_user_data_t *ud) { GtkTreeModel *store; @@ -517,7 +561,7 @@ audio_list_selection_changed_cb(GtkTreeSelection *selection, signal_user_data_t } } -void +G_MODULE_EXPORT void audio_add_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud) { // Add the current audio settings to the list. @@ -554,13 +598,13 @@ audio_add_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud) ghb_array_append(audio_list, asettings); add_to_audio_list(ud, asettings); count = ghb_array_len(audio_list); - if (count >= 8) + if (count >= 99) { gtk_widget_set_sensitive(xwidget, FALSE); } } -void +G_MODULE_EXPORT void audio_remove_clicked_cb(GtkWidget *widget, signal_user_data_t *ud) { GtkTreeView *treeview;