OSDN Git Service

LinGui: change psy_trellis increments to 0.05
authorjstebbins <jstebbins@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Fri, 18 Jun 2010 17:31:46 +0000 (17:31 +0000)
committerjstebbins <jstebbins@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Fri, 18 Jun 2010 17:31:46 +0000 (17:31 +0000)
git-svn-id: svn://localhost/HandBrake/trunk@3387 b64f7644-9d1e-0410-96f1-a4d463321fa5

gtk/src/ghb.ui
gtk/src/x264handler.c

index db1590f..a711189 100644 (file)
     <property name="page_size">0</property>
     <property name="value">20.25</property>
   </object>
-  <object class="GtkAdjustment" id="adjustment6">
-    <property name="upper">4</property>
-    <property name="lower">0</property>
-    <property name="page_increment">1</property>
-    <property name="step_increment">0.2</property>
-    <property name="page_size">0</property>
-    <property name="value">2.6</property>
-  </object>
-  <object class="GtkAdjustment" id="adjustment7">
-    <property name="upper">4</property>
-    <property name="lower">1</property>
-    <property name="page_increment">0.20000000000000001</property>
-    <property name="step_increment">0.20000000000000001</property>
-    <property name="page_size">0</property>
-    <property name="value">2.3999999999999999</property>
-  </object>
   <object class="GtkAdjustment" id="adjustment8">
     <property name="upper">16</property>
     <property name="lower">1</property>
     <property name="upper">1</property>
     <property name="lower">0</property>
     <property name="page_increment">0.5</property>
-    <property name="step_increment">0.1</property>
+    <property name="step_increment">0.05</property>
     <property name="page_size">0</property>
     <property name="value">0</property>
   </object>
     <property name="page_size">0</property>
     <property name="value">0</property>
   </object>
-  <object class="GtkAdjustment" id="adjustment32">
-    <property name="upper">99999</property>
-    <property name="lower">0</property>
-    <property name="page_increment">60</property>
-    <property name="step_increment">1</property>
-    <property name="page_size">0</property>
-    <property name="value">99999</property>
-  </object>
-  <object class="GtkAdjustment" id="adjustment33">
-    <property name="upper">99999</property>
-    <property name="lower">1</property>
-    <property name="page_increment">60</property>
-    <property name="step_increment">1</property>
-    <property name="page_size">0</property>
-    <property name="value">0</property>
-  </object>
   <object class="GtkAdjustment" id="adjustment34">
     <property name="upper">1</property>
     <property name="lower">0</property>
@@ -3246,6 +3214,7 @@ Optimal mode gets slower as the maximum number of B-Frames increases, but makes
                                                 <property name="restrict_to_fill_level">False</property>
                                                 <property name="value_pos">GTK_POS_RIGHT</property>
                                                 <signal handler="x264_widget_changed_cb" name="value_changed"/>
+                                                <signal name="format_value" handler="x264_format_slider_cb"/>
                                               </object>
                                               <packing>
                                                 <property name="left_attach">1</property>
@@ -3276,6 +3245,7 @@ Optimal mode gets slower as the maximum number of B-Frames increases, but makes
                                                 <property name="restrict_to_fill_level">False</property>
                                                 <property name="value_pos">GTK_POS_RIGHT</property>
                                                 <signal handler="x264_widget_changed_cb" name="value_changed"/>
+                                                <signal name="format_value" handler="x264_format_slider_cb"/>
                                               </object>
                                               <packing>
                                                 <property name="top_attach">1</property>
@@ -3305,9 +3275,11 @@ Optimal mode gets slower as the maximum number of B-Frames increases, but makes
                                                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                                                 <property name="tooltip-text" translatable="yes">Psychovisual trellis is an experimental algorithm to further improve sharpness and detail retention beyond what Psychovisual RD does.  Recommended values are around 0.2, though higher values may help for very grainy video or lower bitrate encodes.  Not recommended for cel animation and other sharp-edged graphics.</property>
                                                 <property name="adjustment">adjustment23</property>
+                                                <property name="digits">2</property>
                                                 <property name="restrict_to_fill_level">False</property>
                                                 <property name="value_pos">GTK_POS_RIGHT</property>
-                                                <signal handler="x264_widget_changed_cb" name="value_changed"/>
+                                                <signal handler="x264_slider_changed_cb" name="value_changed"/>
+                                                <signal name="format_value" handler="x264_format_slider_cb"/>
                                               </object>
                                               <packing>
                                                 <property name="top_attach">2</property>
index 2368801..11be36e 100644 (file)
@@ -42,6 +42,38 @@ x264_widget_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
 }
 
 G_MODULE_EXPORT void
+x264_slider_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
+{
+       ghb_widget_to_setting(ud->settings, widget);
+
+       // Lock slider values to multiples of step_increment
+       GtkAdjustment * adj = gtk_range_get_adjustment(GTK_RANGE(widget));
+       gdouble step = gtk_adjustment_get_step_increment(adj);
+       gdouble val = gtk_range_get_value(GTK_RANGE(widget));
+       gdouble new_val = ((int)((val + step / 2) / step)) * step;
+       gdouble diff = val - new_val;
+       if ( diff > 0.0001 || diff < -0.0001 )
+       {
+               gtk_range_set_value(GTK_RANGE(widget), new_val);
+       }
+       else if (!ignore_options_update)
+       {
+               ignore_options_update = TRUE;
+               x264_opt_update(ud, widget);
+               ignore_options_update = FALSE;
+       }
+       ghb_check_dependency(ud, widget, NULL);
+       ghb_clear_presets_selection(ud);
+}
+
+G_MODULE_EXPORT gchar*
+x264_format_slider_cb(GtkScale *scale, gdouble val, signal_user_data_t *ud)
+{
+       return g_strdup_printf("%-6.6g", val);
+}
+
+
+G_MODULE_EXPORT void
 x264_me_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
 {
        gint me;