OSDN Git Service

LinGui: remove the big jump in the drc slider when going from 1.0->Off
authorjstebbins <jstebbins@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Wed, 10 Jun 2009 16:26:45 +0000 (16:26 +0000)
committerjstebbins <jstebbins@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Wed, 10 Jun 2009 16:26:45 +0000 (16:26 +0000)
git-svn-id: svn://localhost/HandBrake/trunk@2510 b64f7644-9d1e-0410-96f1-a4d463321fa5

gtk/src/audiohandler.c
gtk/src/ghb.ui
gtk/src/hb-backend.c
gtk/src/presets.c
gtk/src/queuehandler.c

index 0e15b19..176f7d9 100644 (file)
@@ -231,8 +231,8 @@ audio_list_refresh_selected(signal_user_data_t *ud)
        if (gtk_tree_selection_get_selected(selection, &store, &iter))
        {
                const gchar *track, *codec, *br, *sr, *mix;
-               gchar *drc, *s_track, *s_codec, *s_br, *s_sr, *s_mix;
-               gdouble s_drc;
+               gchar *s_drc, *s_track, *s_codec, *s_br, *s_sr, *s_mix;
+               gdouble drc;
                // Get the row number
                treepath = gtk_tree_model_get_path (store, &iter);
                indices = gtk_tree_path_get_indices (treepath);
@@ -256,11 +256,11 @@ audio_list_refresh_selected(signal_user_data_t *ud)
                s_br = ghb_settings_get_string(asettings, "AudioBitrate");
                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");
+               drc = ghb_settings_get_double(asettings, "AudioTrackDRCSlider");
+               if (drc < 1.0)
+                       s_drc = g_strdup("Off");
                else
-                       drc = g_strdup_printf("%.1f", s_drc);
+                       s_drc = g_strdup_printf("%.1f", drc);
 
                gtk_list_store_set(GTK_LIST_STORE(store), &iter, 
                        // These are displayed in list
@@ -269,16 +269,16 @@ audio_list_refresh_selected(signal_user_data_t *ud)
                        2, br,
                        3, sr,
                        4, mix,
-                       5, drc,
+                       5, s_drc,
                        // These are used to set combo values when a list item is selected
                        6, s_track,
                        7, s_codec,
                        8, s_br,
                        9, s_sr,
                        10, s_mix,
-                       11, s_drc,
+                       11, drc,
                        -1);
-               g_free(drc);
+               g_free(s_drc);
                g_free(s_track);
                g_free(s_codec);
                g_free(s_br);
@@ -314,7 +314,6 @@ audio_codec_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
                mix_code = ghb_lookup_combo_int("AudioMixdown", ghb_string_value("dpl2"));
                mix_code = ghb_get_best_mix( titleindex, track, acodec_code, mix_code);
                ghb_ui_update(ud, "AudioMixdown", ghb_int64_value(mix_code));
-               ghb_ui_update(ud, "AudioTrackDRCSlider", ghb_double_value(1.0));
        }
        ghb_adjust_audio_rate_combos(ud);
        ghb_grey_combo_options (ud->builder);
@@ -406,12 +405,6 @@ drc_widget_changed_cb(GtkWidget *widget, gdouble val, signal_user_data_t *ud)
        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)
@@ -473,8 +466,8 @@ add_to_audio_list(signal_user_data_t *ud, GValue *settings)
        GtkListStore *store;
        GtkTreeSelection *selection;
        const gchar *track, *codec, *br, *sr, *mix;
-       gchar *drc, *s_track, *s_codec, *s_br, *s_sr, *s_mix;
-       gdouble s_drc;
+       gchar *s_drc, *s_track, *s_codec, *s_br, *s_sr, *s_mix;
+       gdouble drc;
        
        g_debug("add_to_audio_list ()");
        treeview = GTK_TREE_VIEW(GHB_WIDGET(ud->builder, "audio_list"));
@@ -492,11 +485,12 @@ add_to_audio_list(signal_user_data_t *ud, GValue *settings)
        s_br = ghb_settings_get_string(settings, "AudioBitrate");
        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");
+       drc = ghb_settings_get_double(settings, "AudioTrackDRCSlider");
+       if (drc < 1.0)
+               s_drc = g_strdup("Off");
        else
-               drc = g_strdup_printf("%.1f", s_drc);
+               s_drc = g_strdup_printf("%.1f", drc);
+
 
        gtk_list_store_append(store, &iter);
        gtk_list_store_set(store, &iter, 
@@ -506,17 +500,17 @@ add_to_audio_list(signal_user_data_t *ud, GValue *settings)
                2, br,
                3, sr,
                4, mix,
-               5, drc,
+               5, s_drc,
                // These are used to set combo box values when a list item is selected
                6, s_track,
                7, s_codec,
                8, s_br,
                9, s_sr,
                10, s_mix,
-               11, s_drc,
+               11, drc,
                -1);
        gtk_tree_selection_select_iter(selection, &iter);
-       g_free(drc);
+       g_free(s_drc);
        g_free(s_track);
        g_free(s_codec);
        g_free(s_br);
index c8d32af..b29717e 100644 (file)
   </object>
   <object class="GtkAdjustment" id="adjustment28">
     <property name="upper">4</property>
-    <property name="lower">0</property>
+    <property name="lower">0.9</property>
     <property name="page_increment">1</property>
-    <property name="step_increment">0.2</property>
+    <property name="step_increment">0.1</property>
     <property name="page_size">0</property>
-    <property name="value">2.6</property>
+    <property name="value">0.0</property>
   </object>
   <object class="GtkAdjustment" id="preview_progress_adj">
     <property name="upper">100</property>
index 9540d4a..f3168c1 100644 (file)
@@ -3923,6 +3923,9 @@ add_job(hb_handle_t *h, GValue *js, gint unique_id, gint titleindex)
                }
         audio.out.dynamic_range_compression = 
                        ghb_settings_get_double(asettings, "AudioTrackDRCSlider");
+        if (audio.out.dynamic_range_compression < 1.0)
+               audio.out.dynamic_range_compression = 0.0;
+
                // It would be better if this were done in libhb for us, but its not yet.
                if (audio.out.codec == HB_ACODEC_AC3 || audio.out.codec == HB_ACODEC_DCA)
                {
index ad2af5c..6c490de 100644 (file)
@@ -2219,6 +2219,7 @@ import_value_xlat(GValue *dict)
        if (gval)
                ghb_dict_insert(dict, g_strdup(key), gval);
 
+
        GValue *sdeflist;
        GValue *sdefaults;
        GValue *slist;
@@ -2324,6 +2325,18 @@ import_value_xlat(GValue *dict)
                        gval = import_value_xlat2(adefaults, mix_xlat, key, mac_val);
                        if (gval)
                                ghb_dict_insert(adict, g_strdup(key), gval);
+
+                       mac_val = ghb_dict_lookup(adict, "AudioTrackDRCSlider");
+                       if (mac_val != NULL)
+                       {
+                               gdouble drc;
+                               drc = ghb_value_double(mac_val);
+                               if (drc < 1.0 && drc > 0.0)
+                               {
+                                       ghb_dict_insert(adict, g_strdup("AudioTrackDRCSlider"), 
+                                                                       ghb_double_value_new(0.0));
+                               }
+                       }
                }
        }
 }
@@ -2530,6 +2543,26 @@ export_xlat_preset(GValue *dict)
                ghb_dict_insert(dict, g_strdup("VideoQualityType"), 
                                                ghb_int_value_new(2));
        }
+
+       GValue *alist, *adict;
+       gint count, ii;
+
+       alist = ghb_dict_lookup(dict, "AudioList");
+       count = ghb_array_len(alist);
+       for (ii = 0; ii < count; ii++)
+       {
+               gdouble drc;
+
+               adict = ghb_array_get_nth(alist, ii);
+               drc = ghb_value_double(
+                               preset_dict_get_value(adict, "AudioTrackDRCSlider"));
+               if (drc < 1.0 && drc > 0.0)
+               {
+                       ghb_dict_insert(adict, g_strdup("AudioTrackDRCSlider"), 
+                                                       ghb_double_value_new(0.0));
+               }
+       }
+
        ghb_dict_insert(dict, g_strdup("PicturePARWidth"), 
                                                ghb_int_value_new(par_width));
        ghb_dict_insert(dict, g_strdup("PicturePARHeight"), 
index 41a207f..d4bb5ce 100644 (file)
@@ -465,7 +465,7 @@ audio_list_refresh(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)
+                       if (s_drc < 1.0)
                                drc = g_strdup("Off");
                        else
                                drc = g_strdup_printf("%.1f", s_drc);