MCPcopy Create free account
hub / github.com/HandBrake/HandBrake / audio_def_lang_list_init

Function audio_def_lang_list_init

gtk/src/audiohandler.c:2486–2538  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2484}
2485
2486static void
2487audio_def_lang_list_init(signal_user_data_t *ud)
2488{
2489 GhbValue * lang_list;
2490 GtkTreeView * tv;
2491 GtkTreeModel * avail;
2492 GtkTreeStore * selected;
2493 int ii, count;
2494
2495 tv = GTK_TREE_VIEW(ghb_builder_widget("audio_avail_lang"));
2496 avail = gtk_tree_view_get_model(tv);
2497 tv = GTK_TREE_VIEW(ghb_builder_widget("audio_selected_lang"));
2498 selected = GTK_TREE_STORE(gtk_tree_view_get_model(tv));
2499
2500 // Clear selected languages.
2501 audio_def_selected_lang_list_clear(ud);
2502
2503 lang_list = ghb_dict_get_value(ud->settings, "AudioLanguageList");
2504 if (lang_list == NULL)
2505 {
2506 lang_list = ghb_array_new();
2507 ghb_dict_set(ud->settings, "AudioLanguageList", lang_list);
2508 }
2509
2510 count = ghb_array_len(lang_list);
2511 for (ii = 0; ii < count; )
2512 {
2513 GhbValue * lang_val = ghb_array_get(lang_list, ii);
2514 int idx = ghb_lookup_lang(lang_val);
2515 GtkTreeIter iter;
2516
2517 if (ghb_find_lang_row(avail, &iter, idx))
2518 {
2519 gchar * lang;
2520 gint index;
2521 GtkTreeIter pos;
2522
2523 gtk_tree_model_get(avail, &iter, 0, &lang, 1, &index, -1);
2524 gtk_tree_store_append(selected, &pos, NULL);
2525 gtk_tree_store_set(selected, &pos, 0, lang, 1, index, -1);
2526 g_free(lang);
2527 gtk_tree_store_remove(GTK_TREE_STORE(avail), &iter);
2528 ii++;
2529 }
2530 else
2531 {
2532 // Error in list. Probably duplicate languages. Remove
2533 // this item from the list.
2534 ghb_array_remove(lang_list, ii);
2535 count--;
2536 }
2537 }
2538}
2539
2540void ghb_audio_defaults_to_ui(signal_user_data_t *ud)
2541{

Callers 1

ghb_audio_defaults_to_uiFunction · 0.85

Calls 5

ghb_builder_widgetFunction · 0.85
ghb_dict_get_valueFunction · 0.85
ghb_lookup_langFunction · 0.85
ghb_find_lang_rowFunction · 0.85

Tested by

no test coverage detected