OSDN Git Service

LinGui: remove target file size option
[handbrake-jp/handbrake-jp-git.git] / gtk / src / callbacks.c
index 91f4f1f..9355e80 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
 /*
  * callbacks.c
- * Copyright (C) John Stebbins 2008 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2011 <stebbins@stebbins>
  * 
  * callbacks.c is free software.
  * 
@@ -535,19 +535,12 @@ get_extension(signal_user_data_t *ud)
 {
        int container;
        const gchar *extension = "error";
-       GValue *audio_list;
-       GValue *subtitle_list;
 
        container = ghb_settings_combo_int(ud->settings, "FileFormat");
        if (container == HB_MUX_MP4)
        {
                extension = "mp4";
-               audio_list = ghb_settings_get_value(ud->settings, "audio_list");
-               subtitle_list = ghb_settings_get_value(ud->settings, "subtitle_list");
-               if (ghb_ac3_in_audio_list(audio_list) ||
-                       ghb_soft_in_subtitle_list(subtitle_list) ||
-                       ghb_settings_get_boolean(ud->settings, "ChapterMarkers") ||
-                       ghb_settings_get_boolean(ud->settings, "UseM4v"))
+               if (ghb_settings_get_boolean(ud->settings, "UseM4v"))
                {
                        extension = "m4v";
                }
@@ -1498,11 +1491,6 @@ title_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
        ghb_adjust_audio_rate_combos(ud);
        ghb_set_pref_audio(titleindex, ud);
        ghb_set_pref_subtitle(titleindex, ud);
-       if (ghb_settings_get_boolean(ud->settings, "vquality_type_target"))
-       {
-               gint bitrate = ghb_calculate_target_bitrate (ud->settings, titleindex);
-               ghb_ui_update(ud, "VideoAvgBitrate", ghb_int64_value(bitrate));
-       }
 
        // Unfortunately, there is no way to query how many frames were
        // actually generated during the scan.
@@ -1524,15 +1512,15 @@ title_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
 
        gint end;
        widget = GHB_WIDGET (ud->builder, "ChapterMarkers");
-       gtk_widget_set_sensitive(widget, TRUE);
        end = ghb_settings_get_int(ud->settings, "end_point");
        if (1 == end)
        {
-               ud->dont_clear_presets = TRUE;
-               ghb_ui_update(ud, "ChapterMarkers", ghb_boolean_value(FALSE));
-               ud->dont_clear_presets = FALSE;
                gtk_widget_set_sensitive(widget, FALSE);
        }
+       else
+       {
+               gtk_widget_set_sensitive(widget, TRUE);
+       }
 }
 
 G_MODULE_EXPORT void
@@ -1584,6 +1572,28 @@ ptop_widget_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
 }
 
 G_MODULE_EXPORT void
+framerate_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
+{
+       ghb_widget_to_setting(ud->settings, widget);
+
+       if (ghb_settings_combo_int(ud->settings, "VideoFramerate") != 0)
+       {
+               if (!ghb_settings_get_boolean(ud->settings, "VideoFrameratePFR"))
+        {
+                   ghb_ui_update(ud, "VideoFramerateCFR", ghb_boolean_value(TRUE));
+        }
+       }
+       if (ghb_settings_combo_int(ud->settings, "VideoFramerate") == 0 &&
+               ghb_settings_get_boolean(ud->settings, "VideoFrameratePFR"))
+       {
+               ghb_ui_update(ud, "VideoFramerateVFR", ghb_boolean_value(TRUE));
+       }
+       ghb_check_dependency(ud, widget, NULL);
+       ghb_clear_presets_selection(ud);
+       ghb_live_reset(ud);
+}
+
+G_MODULE_EXPORT void
 setting_widget_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
 {
        ghb_widget_to_setting(ud->settings, widget);
@@ -1657,24 +1667,6 @@ vcodec_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
 }
 
 G_MODULE_EXPORT void
-target_size_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
-{
-       const gchar *name = ghb_get_setting_key(widget);
-       g_debug("target_size_changed_cb () %s", name);
-       ghb_widget_to_setting(ud->settings, widget);
-       ghb_check_dependency(ud, widget, NULL);
-       ghb_clear_presets_selection(ud);
-       ghb_live_reset(ud);
-       if (ghb_settings_get_boolean(ud->settings, "vquality_type_target"))
-       {
-               gint titleindex;
-               titleindex = ghb_settings_combo_int(ud->settings, "title");
-               gint bitrate = ghb_calculate_target_bitrate (ud->settings, titleindex);
-               ghb_ui_update(ud, "VideoAvgBitrate", ghb_int64_value(bitrate));
-       }
-}
-
-G_MODULE_EXPORT void
 start_point_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
 {
        gint start, end;
@@ -1694,16 +1686,16 @@ start_point_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
                        set_destination(ud);
                }
                widget = GHB_WIDGET (ud->builder, "ChapterMarkers");
-               gtk_widget_set_sensitive(widget, TRUE);
                // End may have been changed above, get it again
                end = ghb_settings_get_int(ud->settings, "end_point");
                if (start == end)
                {
-                       ud->dont_clear_presets = TRUE;
-                       ghb_ui_update(ud, "ChapterMarkers", ghb_boolean_value(FALSE));
-                       ud->dont_clear_presets = FALSE;
                        gtk_widget_set_sensitive(widget, FALSE);
                }
+               else
+               {
+                       gtk_widget_set_sensitive(widget, TRUE);
+               }
                update_title_duration(ud);
        }
        else if (ghb_settings_combo_int(ud->settings, "PtoPType") == 1)
@@ -1746,16 +1738,16 @@ end_point_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
                        set_destination(ud);
                }
                widget = GHB_WIDGET (ud->builder, "ChapterMarkers");
-               gtk_widget_set_sensitive(widget, TRUE);
                // Start may have been changed above, get it again
                start = ghb_settings_get_int(ud->settings, "start_point");
                if (start == end)
                {
-                       ud->dont_clear_presets = TRUE;
-                       ghb_ui_update(ud, "ChapterMarkers", ghb_boolean_value(FALSE));
-                       ud->dont_clear_presets = FALSE;
                        gtk_widget_set_sensitive(widget, FALSE);
                }
+               else
+               {
+                       gtk_widget_set_sensitive(widget, TRUE);
+               }
                update_title_duration(ud);
        }
        else if (ghb_settings_combo_int(ud->settings, "PtoPType") == 1)
@@ -2159,7 +2151,7 @@ ghb_cancel_encode(signal_user_data_t *ud, const gchar *extra_msg)
                                                   NULL);
        response = gtk_dialog_run(GTK_DIALOG(dialog));
        gtk_widget_destroy (dialog);
-       switch (response)
+       switch ((int)response)
        {
                case 1:
                        ghb_stop_queue();
@@ -2197,7 +2189,7 @@ ghb_cancel_encode2(signal_user_data_t *ud, const gchar *extra_msg)
                                                   NULL);
        response = gtk_dialog_run(GTK_DIALOG(dialog));
        gtk_widget_destroy (dialog);
-       switch (response)
+       switch ((int)response)
        {
                case 1:
                        ghb_stop_queue();
@@ -4612,7 +4604,14 @@ format_vquality_cb(GtkScale *scale, gdouble val, signal_user_data_t *ud)
        {
                case HB_VCODEC_X264:
                {
-                       return g_strdup_printf("RF: %.4g", val);
+                       if (val == 0.0)
+                       {
+                               return g_strdup_printf("RF: %.4g (Warning: lossless)", val);
+                       }
+                       else
+                       {
+                               return g_strdup_printf("RF: %.4g", val);
+                       }
                } break;
 
                case HB_VCODEC_FFMPEG: