-void
-ghb_subtitle_exclusive_burn(signal_user_data_t *ud, gint track)
-{
- GValue *subtitle_list;
- GValue *settings;
- gint ii, count, tt;
- 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);
- tt = ghb_settings_combo_int(settings, "SubtitleTrack");
- 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 && tt != track)
- {
-
- ghb_settings_set_boolean(settings, "SubtitleBurned", FALSE);
- burned = FALSE;
- gtk_list_store_set(GTK_LIST_STORE(tm), &ti, 3, FALSE, -1);
- }
- if (!burned && mustBurn(ud, tt))
- {
- ghb_settings_set_boolean(settings, "SubtitleEnabled", FALSE);
- gtk_list_store_set(GTK_LIST_STORE(tm), &ti, 0, FALSE, -1);
- }
- }
-}
-
-void
-ghb_subtitle_exclusive_default(signal_user_data_t *ud, gint track)
-{
- GValue *subtitle_list;
- GValue *settings;
- gint ii, count, tt;
- 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);
- tt = ghb_settings_combo_int(settings, "SubtitleTrack");
- 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 && tt != track)
- {
-
- ghb_settings_set_boolean(settings, "SubtitleDefaultTrack", FALSE);
- def = FALSE;
- gtk_list_store_set(GTK_LIST_STORE(tm), &ti, 4, FALSE, -1);
- }
- }
-}
-
-G_MODULE_EXPORT void
-subtitle_enable_toggled_cb(
- GtkCellRendererToggle *cell,
- gchar *path,
- signal_user_data_t *ud)
-{
- GtkTreeView *tv;
- GtkTreeModel *tm;
- GtkTreeIter ti;
- gboolean active;
- gint row;
- GtkTreePath *tp;
- gint *indices;
- GValue *subtitle_list, *settings;
- gint track;
-
- g_debug("forced toggled");
- tp = gtk_tree_path_new_from_string (path);
- tv = GTK_TREE_VIEW(GHB_WIDGET(ud->builder, "subtitle_list"));
- g_return_if_fail(tv != NULL);
- tm = gtk_tree_view_get_model(tv);
- g_return_if_fail(tm != NULL);
- gtk_tree_model_get_iter(tm, &ti, tp);
- gtk_tree_model_get(tm, &ti, 0, &active, -1);
- active ^= 1;
-
- // Get the row number
- indices = gtk_tree_path_get_indices (tp);
- row = indices[0];
- gtk_tree_path_free(tp);
- subtitle_list = ghb_settings_get_value(ud->settings, "subtitle_list");
-
- if (row < 0 || row >= ghb_array_len(subtitle_list))
- return;
-
- settings = ghb_array_get_nth(subtitle_list, row);
- track = ghb_settings_combo_int(settings, "SubtitleTrack");
-
- if (active && mustBurn(ud, track))
- {
- ghb_settings_set_boolean(settings, "SubtitleBurned", TRUE);
- gtk_list_store_set(GTK_LIST_STORE(tm), &ti, 3, TRUE, -1);
- ghb_subtitle_exclusive_burn(ud, track);
- }
-
- ghb_settings_set_boolean(settings, "SubtitleEnabled", active);
- gtk_list_store_set(GTK_LIST_STORE(tm), &ti, 0, active, -1);
-}
-