summaryrefslogtreecommitdiffstats
path: root/gtk/src
diff options
context:
space:
mode:
authorjstebbins <[email protected]>2009-09-30 17:34:41 +0000
committerjstebbins <[email protected]>2009-09-30 17:34:41 +0000
commitdc7dff70e32fd9fde5cd819e7e65574a75ed16f8 (patch)
tree2113eaf335d3583f7ecbbcf11dcd7026d4aa26e7 /gtk/src
parent6dbae64adc847cee2923393393cc17eb982cd847 (diff)
LinGui: fix mbtree/b-pyramid dependency issue
make sure b-pyramid gets set to insensitive when mbtree is enabled git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2858 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'gtk/src')
-rw-r--r--gtk/src/audiohandler.c12
-rw-r--r--gtk/src/callbacks.c68
-rw-r--r--gtk/src/callbacks.h3
-rw-r--r--gtk/src/preview.c6
-rw-r--r--gtk/src/subtitlehandler.c8
-rw-r--r--gtk/src/widgetdeps.c1
-rw-r--r--gtk/src/x264handler.c44
7 files changed, 94 insertions, 48 deletions
diff --git a/gtk/src/audiohandler.c b/gtk/src/audiohandler.c
index 17699915f..ea13c9060 100644
--- a/gtk/src/audiohandler.c
+++ b/gtk/src/audiohandler.c
@@ -347,7 +347,7 @@ audio_codec_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
}
ghb_adjust_audio_rate_combos(ud);
ghb_grey_combo_options (ud->builder);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
prev_acodec = acodec_code;
asettings = get_selected_asettings(ud);
if (asettings != NULL)
@@ -366,7 +366,7 @@ audio_track_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
g_debug("audio_track_changed_cb ()");
ghb_adjust_audio_rate_combos(ud);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
ghb_grey_combo_options(ud->builder);
asettings = get_selected_asettings(ud);
if (asettings != NULL)
@@ -388,7 +388,7 @@ audio_mix_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
g_debug("audio_mix_changed_cb ()");
ghb_adjust_audio_rate_combos(ud);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
asettings = get_selected_asettings(ud);
if (asettings != NULL)
{
@@ -404,7 +404,7 @@ audio_widget_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
GValue *asettings;
g_debug("audio_widget_changed_cb ()");
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
asettings = get_selected_asettings(ud);
if (asettings != NULL)
{
@@ -430,7 +430,7 @@ drc_widget_changed_cb(GtkWidget *widget, gdouble val, signal_user_data_t *ud)
drc = g_strdup_printf("%.1f", val);
gtk_label_set_text(label, drc);
g_free(drc);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
asettings = get_selected_asettings(ud);
if (asettings != NULL)
{
@@ -450,7 +450,7 @@ subtitle_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
const gchar *name = gtk_widget_get_name(widget);
g_debug("subtitle_changed_cb () %s", name);
ghb_widget_to_setting(ud->settings, widget);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
ghb_live_reset(ud);
}
diff --git a/gtk/src/callbacks.c b/gtk/src/callbacks.c
index ca9ac86a4..27c879380 100644
--- a/gtk/src/callbacks.c
+++ b/gtk/src/callbacks.c
@@ -114,8 +114,7 @@ dep_check(signal_user_data_t *ud, const gchar *name, gboolean *out_hide)
widget_name = ghb_value_string(ghb_array_get_nth(data, 0));
widget = GHB_WIDGET(ud->builder, widget_name);
dep_object = gtk_builder_get_object(ud->builder, name);
- g_free(widget_name);
- if (!GTK_WIDGET_SENSITIVE(widget))
+ if (widget != NULL && !GTK_WIDGET_SENSITIVE(widget))
continue;
if (dep_object == NULL)
{
@@ -138,7 +137,7 @@ dep_check(signal_user_data_t *ud, const gchar *name, gboolean *out_hide)
if (widget)
value = ghb_widget_string(widget);
else
- value = ghb_settings_get_string(ud->settings, name);
+ value = ghb_settings_get_string(ud->settings, widget_name);
while (values && values[jj])
{
if (values[jj][0] == '>')
@@ -177,12 +176,16 @@ dep_check(signal_user_data_t *ud, const gchar *name, gboolean *out_hide)
g_strfreev (values);
g_free(value);
}
+ g_free(widget_name);
}
return result;
}
void
-ghb_check_dependency(signal_user_data_t *ud, GtkWidget *widget)
+ghb_check_dependency(
+ signal_user_data_t *ud,
+ GtkWidget *widget,
+ const char *alt_name)
{
GObject *dep_object;
const gchar *name;
@@ -191,11 +194,16 @@ ghb_check_dependency(signal_user_data_t *ud, GtkWidget *widget)
gchar *dep_name;
GType type;
- type = GTK_WIDGET_TYPE(widget);
- if (type == GTK_TYPE_COMBO_BOX || type == GTK_TYPE_COMBO_BOX_ENTRY)
- if (gtk_combo_box_get_active(GTK_COMBO_BOX(widget)) < 0) return;
+ if (widget != NULL)
+ {
+ type = GTK_WIDGET_TYPE(widget);
+ if (type == GTK_TYPE_COMBO_BOX || type == GTK_TYPE_COMBO_BOX_ENTRY)
+ if (gtk_combo_box_get_active(GTK_COMBO_BOX(widget)) < 0) return;
+ name = gtk_widget_get_name(widget);
+ }
+ else
+ name = alt_name;
- name = gtk_widget_get_name(widget);
g_debug("ghb_check_dependency () %s", name);
if (dep_map == NULL) return;
@@ -1266,7 +1274,7 @@ container_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
g_debug("container_changed_cb ()");
ghb_widget_to_setting(ud->settings, widget);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
update_acodec_combo(ud);
ghb_update_destination_extension(ud);
ghb_clear_presets_selection(ud);
@@ -1406,7 +1414,7 @@ title_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
g_debug("title_changed_cb ()");
ghb_widget_to_setting(ud->settings, widget);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
titleindex = ghb_settings_combo_int(ud->settings, "title");
ghb_update_ui_combo_box (ud, "AudioTrack", titleindex, FALSE);
@@ -1448,7 +1456,7 @@ G_MODULE_EXPORT void
setting_widget_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
ghb_widget_to_setting(ud->settings, widget);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
ghb_clear_presets_selection(ud);
ghb_live_reset(ud);
}
@@ -1457,7 +1465,7 @@ G_MODULE_EXPORT void
chapter_markers_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
ghb_widget_to_setting(ud->settings, widget);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
ghb_clear_presets_selection(ud);
ghb_live_reset(ud);
ghb_update_destination_extension(ud);
@@ -1467,7 +1475,7 @@ G_MODULE_EXPORT void
vquality_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
ghb_widget_to_setting(ud->settings, widget);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
ghb_clear_presets_selection(ud);
ghb_live_reset(ud);
@@ -1491,7 +1499,7 @@ G_MODULE_EXPORT void
http_opt_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
ghb_widget_to_setting(ud->settings, widget);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
ghb_clear_presets_selection(ud);
ghb_live_reset(ud);
// AC3 is not allowed when Web optimized
@@ -1506,7 +1514,7 @@ vcodec_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
gint digits;
ghb_widget_to_setting(ud->settings, widget);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
ghb_clear_presets_selection(ud);
ghb_live_reset(ud);
ghb_vquality_range(ud, &vqmin, &vqmax, &step, &page, &digits, &inverted);
@@ -1523,7 +1531,7 @@ target_size_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
const gchar *name = gtk_widget_get_name(widget);
g_debug("target_size_changed_cb () %s", name);
ghb_widget_to_setting(ud->settings, widget);
- ghb_check_dependency(ud, 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"))
@@ -1547,7 +1555,7 @@ start_chapter_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
end = ghb_settings_get_int(ud->settings, "end_chapter");
if (start > end)
ghb_ui_update(ud, "end_chapter", ghb_int_value(start));
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
if (ghb_settings_get_boolean(ud->settings, "chapters_in_destination"))
{
set_destination(ud);
@@ -1577,7 +1585,7 @@ end_chapter_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
end = ghb_settings_get_int(ud->settings, "end_chapter");
if (start > end)
ghb_ui_update(ud, "start_chapter", ghb_int_value(end));
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
if (ghb_settings_get_boolean(ud->settings, "chapters_in_destination"))
{
set_destination(ud);
@@ -1600,7 +1608,7 @@ scale_width_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
g_debug("scale_width_changed_cb ()");
ghb_widget_to_setting(ud->settings, widget);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
ghb_clear_presets_selection(ud);
if (GTK_WIDGET_SENSITIVE(widget))
ghb_set_scale (ud, GHB_PIC_KEEP_WIDTH);
@@ -1620,7 +1628,7 @@ scale_height_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
g_debug("scale_height_changed_cb ()");
ghb_widget_to_setting(ud->settings, widget);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
ghb_clear_presets_selection(ud);
if (GTK_WIDGET_SENSITIVE(widget))
ghb_set_scale (ud, GHB_PIC_KEEP_HEIGHT);
@@ -1643,7 +1651,7 @@ crop_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
g_debug("crop_changed_cb ()");
ghb_widget_to_setting(ud->settings, widget);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
ghb_clear_presets_selection(ud);
if (GTK_WIDGET_SENSITIVE(widget))
ghb_set_scale (ud, 0);
@@ -1681,7 +1689,7 @@ display_width_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
g_debug("display_width_changed_cb ()");
ghb_widget_to_setting(ud->settings, widget);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
ghb_clear_presets_selection(ud);
ghb_live_reset(ud);
if (GTK_WIDGET_SENSITIVE(widget))
@@ -1695,7 +1703,7 @@ display_height_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
g_debug("display_height_changed_cb ()");
ghb_widget_to_setting(ud->settings, widget);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
ghb_clear_presets_selection(ud);
ghb_live_reset(ud);
if (GTK_WIDGET_SENSITIVE(widget))
@@ -1709,7 +1717,7 @@ par_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
g_debug("par_changed_cb ()");
ghb_widget_to_setting(ud->settings, widget);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
ghb_clear_presets_selection(ud);
ghb_live_reset(ud);
if (GTK_WIDGET_SENSITIVE(widget))
@@ -1723,7 +1731,7 @@ scale_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
g_debug("scale_changed_cb ()");
ghb_widget_to_setting(ud->settings, widget);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
ghb_clear_presets_selection(ud);
ghb_live_reset(ud);
if (GTK_WIDGET_SENSITIVE(widget))
@@ -1765,7 +1773,7 @@ show_crop_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
g_debug("show_crop_changed_cb ()");
ghb_widget_to_setting(ud->settings, widget);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
ghb_live_reset(ud);
if (GTK_WIDGET_SENSITIVE(widget))
ghb_set_scale (ud, 0);
@@ -3281,7 +3289,7 @@ pref_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
g_debug("pref_changed_cb");
ghb_widget_to_setting (ud->settings, widget);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
const gchar *name = gtk_widget_get_name(widget);
ghb_pref_save(ud->settings, name);
}
@@ -3291,7 +3299,7 @@ use_m4v_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
g_debug("use_m4v_changed_cb");
ghb_widget_to_setting (ud->settings, widget);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
const gchar *name = gtk_widget_get_name(widget);
ghb_pref_save(ud->settings, name);
ghb_update_destination_extension(ud);
@@ -3302,7 +3310,7 @@ show_status_cb(GtkWidget *widget, signal_user_data_t *ud)
{
g_debug("show_status_cb");
ghb_widget_to_setting (ud->settings, widget);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
const gchar *name = gtk_widget_get_name(widget);
ghb_pref_save(ud->settings, name);
@@ -3318,7 +3326,7 @@ vqual_granularity_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
g_debug("vqual_granularity_changed_cb");
ghb_widget_to_setting (ud->settings, widget);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
const gchar *name = gtk_widget_get_name(widget);
ghb_pref_save(ud->settings, name);
diff --git a/gtk/src/callbacks.h b/gtk/src/callbacks.h
index 2ba51517c..a124ab59f 100644
--- a/gtk/src/callbacks.h
+++ b/gtk/src/callbacks.h
@@ -51,7 +51,8 @@ void ghb_init_dep_map(void);
void ghb_cancel_encode(signal_user_data_t *ud, const gchar *extra_msg);
gboolean ghb_cancel_encode2(signal_user_data_t *ud, const gchar *extra_msg);
GValue* ghb_start_next_job(signal_user_data_t *ud, gboolean find_first);
-void ghb_check_dependency(signal_user_data_t *ud, GtkWidget *widget);
+void ghb_check_dependency(
+ signal_user_data_t *ud, GtkWidget *widget, const gchar *alt_name);
void ghb_do_scan( signal_user_data_t *ud, const gchar *filename,
gint titlenum, gboolean force);
void ghb_log(gchar *log, ...);
diff --git a/gtk/src/preview.c b/gtk/src/preview.c
index 8748fae38..ee522f7a8 100644
--- a/gtk/src/preview.c
+++ b/gtk/src/preview.c
@@ -850,7 +850,7 @@ preview_button_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
GTK_TOGGLE_BUTTON(xwidget)));
}
ghb_widget_to_setting (ud->settings, xwidget);
- ghb_check_dependency(ud, xwidget);
+ ghb_check_dependency(ud, xwidget, NULL);
const gchar *name = gtk_widget_get_name(xwidget);
ghb_pref_save(ud->settings, name);
}
@@ -914,7 +914,7 @@ fullscreen_clicked_cb(GtkWidget *toggle, signal_user_data_t *ud)
g_debug("fullscreen_clicked_cb()");
ghb_widget_to_setting (ud->settings, toggle);
- ghb_check_dependency(ud, toggle);
+ ghb_check_dependency(ud, toggle, NULL);
const gchar *name = gtk_widget_get_name(toggle);
ghb_pref_save(ud->settings, name);
@@ -1051,7 +1051,7 @@ preview_duration_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
g_debug("preview_duration_changed_cb ()");
ghb_live_reset(ud);
ghb_widget_to_setting (ud->settings, widget);
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
const gchar *name = gtk_widget_get_name(widget);
ghb_pref_save(ud->settings, name);
}
diff --git a/gtk/src/subtitlehandler.c b/gtk/src/subtitlehandler.c
index b781cfb79..c5fc0b83b 100644
--- a/gtk/src/subtitlehandler.c
+++ b/gtk/src/subtitlehandler.c
@@ -777,7 +777,7 @@ subtitle_track_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
GValue *settings;
g_debug("subtitle_track_changed_cb ()");
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
ghb_widget_to_setting(ud->settings, widget);
settings = ghb_selected_subtitle_settings(ud);
if (settings != NULL)
@@ -805,7 +805,7 @@ srt_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
GValue *settings;
g_debug("srt_changed_cb ()");
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
ghb_widget_to_setting(ud->settings, widget);
settings = ghb_selected_subtitle_settings(ud);
if (settings != NULL)
@@ -823,7 +823,7 @@ srt_file_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
GValue *settings;
g_debug("srt_changed_cb ()");
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
ghb_widget_to_setting(ud->settings, widget);
settings = ghb_selected_subtitle_settings(ud);
if (settings != NULL)
@@ -857,7 +857,7 @@ srt_lang_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
GValue *settings;
g_debug("srt_lang_changed_cb ()");
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
ghb_widget_to_setting(ud->settings, widget);
settings = ghb_selected_subtitle_settings(ud);
if (settings != NULL)
diff --git a/gtk/src/widgetdeps.c b/gtk/src/widgetdeps.c
index 4747f69de..929ddb2c0 100644
--- a/gtk/src/widgetdeps.c
+++ b/gtk/src/widgetdeps.c
@@ -72,6 +72,7 @@ static dependency_t dep_map[] =
{"x264_subme", "x264_psy_trell", "<6", TRUE, FALSE},
{"x264_cabac", "x264_psy_trell", "TRUE", FALSE, FALSE},
{"x264_trellis", "x264_psy_trell", "0", TRUE, FALSE},
+ {"x264_mbtree", "x264_bpyramid", "TRUE", TRUE, FALSE},
{"ChapterMarkers", "chapters_list", "TRUE", FALSE, FALSE},
{"use_source_name", "chapters_in_destination", "TRUE", FALSE, FALSE},
{"use_source_name", "title_no_in_destination", "TRUE", FALSE, FALSE},
diff --git a/gtk/src/x264handler.c b/gtk/src/x264handler.c
index 0080927a6..a46641203 100644
--- a/gtk/src/x264handler.c
+++ b/gtk/src/x264handler.c
@@ -37,7 +37,7 @@ x264_widget_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
x264_opt_update(ud, widget);
ignore_options_update = FALSE;
}
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
ghb_clear_presets_selection(ud);
}
@@ -53,7 +53,7 @@ x264_me_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
x264_opt_update(ud, widget);
ignore_options_update = FALSE;
}
- ghb_check_dependency(ud, widget);
+ ghb_check_dependency(ud, widget, NULL);
ghb_clear_presets_selection(ud);
widget = GHB_WIDGET(ud->builder, "x264_merange");
me = ghb_settings_combo_int(ud->settings, "x264_me");
@@ -121,6 +121,8 @@ x264_focus_out_cb(GtkWidget *widget, GdkEventFocus *event,
enum
{
X264_OPT_NONE,
+ X264_OPT_BOOL_NONE,
+ X264_OPT_INT_NONE,
X264_OPT_DEBLOCK,
X264_OPT_PSY,
X264_OPT_INT,
@@ -184,7 +186,7 @@ struct x264_opt_map_s x264_opt_map[] =
{x264_me_syns, "x264_me", "hex", X264_OPT_COMBO},
{x264_merange_syns, "x264_merange", "16", X264_OPT_INT},
{x264_subme_syns, "x264_subme", "7", X264_OPT_COMBO},
- {x264_aqmode_syns, "x264_aqmode", "1", X264_OPT_NONE},
+ {x264_aqmode_syns, "x264_aqmode", "1", X264_OPT_INT_NONE},
{x264_analyse_syns, "x264_analyse", "some", X264_OPT_COMBO},
{x264_8x8dct_syns, "x264_8x8dct", "1", X264_OPT_BOOL},
{x264_deblock_syns, "x264_deblock_alpha", "0,0", X264_OPT_DEBLOCK},
@@ -195,7 +197,7 @@ struct x264_opt_map_s x264_opt_map[] =
{x264_cabac_syns, "x264_cabac", "1", X264_OPT_BOOL},
{x264_psy_syns, "x264_psy_rd", "1,0", X264_OPT_PSY},
{x264_psy_syns, "x264_psy_trell", "1,0", X264_OPT_PSY},
- {x264_mbtree_syns, "x264_mbtree", "1", X264_OPT_NONE},
+ {x264_mbtree_syns, "x264_mbtree", "1", X264_OPT_BOOL_NONE},
};
#define X264_OPT_MAP_SIZE (sizeof(x264_opt_map)/sizeof(struct x264_opt_map_s))
@@ -223,6 +225,17 @@ x264_update_int(signal_user_data_t *ud, const gchar *name, const gchar *val)
ghb_ui_update(ud, name, ghb_int64_value(ival));
}
+static void
+x264_update_int_setting(signal_user_data_t *ud, const gchar *name, const gchar *val)
+{
+ gint ival;
+
+ if (val == NULL) return;
+ ival = g_strtod (val, NULL);
+ ghb_settings_set_value(ud->settings, name, ghb_int64_value(ival));
+ ghb_check_dependency(ud, NULL, name);
+}
+
static gchar *true_str[] =
{
"true",
@@ -253,6 +266,17 @@ x264_update_bool(signal_user_data_t *ud, const gchar *name, const gchar *val)
}
static void
+x264_update_bool_setting(signal_user_data_t *ud, const gchar *name, const gchar *val)
+{
+ if (val == NULL)
+ ghb_settings_set_value(ud->settings, name, ghb_boolean_value(1));
+ else
+ ghb_settings_set_value(ud->settings, name, ghb_boolean_value(str_is_true(val)));
+
+ ghb_check_dependency(ud, NULL, name);
+}
+
+static void
x264_update_combo(signal_user_data_t *ud, const gchar *name, const gchar *val)
{
GtkTreeModel *store;
@@ -422,6 +446,12 @@ ghb_x264_parse_options(signal_user_data_t *ud, const gchar *options)
x264_opt_map[jj+1].found = TRUE;
x264_update_psy(ud, val);
break;
+ case X264_OPT_BOOL_NONE:
+ x264_update_bool_setting(ud, x264_opt_map[jj].name, val);
+ break;
+ case X264_OPT_INT_NONE:
+ x264_update_int_setting(ud, x264_opt_map[jj].name, val);
+ break;
}
break;
}
@@ -451,6 +481,12 @@ ghb_x264_parse_options(signal_user_data_t *ud, const gchar *options)
case X264_OPT_PSY:
x264_update_psy(ud, val);
break;
+ case X264_OPT_BOOL_NONE:
+ x264_update_bool_setting(ud, x264_opt_map[jj].name, val);
+ break;
+ case X264_OPT_INT_NONE:
+ x264_update_int_setting(ud, x264_opt_map[jj].name, val);
+ break;
}
x264_opt_map[jj].found = TRUE;
g_free(val);