+static gboolean
+mustBurn(signal_user_data_t *ud, GValue *settings)
+{
+ return FALSE;
+}
+
+gboolean
+ghb_soft_in_subtitle_list(GValue *subtitle_list)
+{
+ gint count, ii;
+ GValue *settings;
+
+ count = ghb_array_len(subtitle_list);
+ for (ii = 0; ii < count; ii++)
+ {
+ settings = ghb_array_get_nth(subtitle_list, ii);
+ if (!ghb_settings_get_boolean(settings, "SubtitleBurned"))
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+void
+ghb_subtitle_exclusive_burn(signal_user_data_t *ud, gint index)
+{
+ GValue *subtitle_list;
+ GValue *settings;
+ gint ii, count;
+ GtkTreeView *tv;
+ GtkTreeModel *tm;
+ GtkTreeIter ti;
+ gboolean burned;
+
+ g_debug("ghb_subtitle_exclusive_burn");
+ subtitle_list = ghb_settings_get_value(ud->settings, "subtitle_list");
+ count = ghb_array_len(subtitle_list);
+ for (ii = 0; ii < count; ii++)
+ {
+ settings = ghb_array_get_nth(subtitle_list, ii);
+ burned = ghb_settings_get_boolean(settings, "SubtitleBurned");
+
+ tv = GTK_TREE_VIEW(GHB_WIDGET(ud->builder, "subtitle_list"));
+ g_return_if_fail(tv != NULL);
+ tm = gtk_tree_view_get_model(tv);
+ gtk_tree_model_iter_nth_child(tm, &ti, NULL, ii);
+ if (burned && ii != index && !mustBurn(ud, settings))
+ {
+ ghb_settings_set_boolean(settings, "SubtitleBurned", FALSE);
+ gtk_list_store_set(GTK_LIST_STORE(tm), &ti, 2, FALSE, -1);
+ }
+ }
+}
+
+void
+ghb_subtitle_exclusive_default(signal_user_data_t *ud, gint index)
+{
+ GValue *subtitle_list;
+ GValue *settings;
+ gint ii, count;
+ GtkTreeView *tv;
+ GtkTreeModel *tm;
+ GtkTreeIter ti;
+ gboolean def;
+
+ g_debug("ghb_subtitle_exclusive_default");
+ subtitle_list = ghb_settings_get_value(ud->settings, "subtitle_list");
+ count = ghb_array_len(subtitle_list);
+ for (ii = 0; ii < count; ii++)
+ {
+ settings = ghb_array_get_nth(subtitle_list, ii);
+ def = ghb_settings_get_boolean(settings, "SubtitleDefaultTrack");
+
+ tv = GTK_TREE_VIEW(GHB_WIDGET(ud->builder, "subtitle_list"));
+ g_return_if_fail(tv != NULL);
+ tm = gtk_tree_view_get_model(tv);
+ gtk_tree_model_iter_nth_child(tm, &ti, NULL, ii);
+ if (def && ii != index)
+ {
+
+ ghb_settings_set_boolean(settings, "SubtitleDefaultTrack", FALSE);
+ gtk_list_store_set(GTK_LIST_STORE(tm), &ti, 3, FALSE, -1);
+ }
+ }
+}
+