From 6f57d11c3c28a79e72dcced9146d8ececb1ac1da Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Mon, 18 Feb 2019 18:03:16 +0100 Subject: main: Re-add support for track with no language This was what get_label_for_type() did, make sure not to lose that support. --- src/totem-menu.c | 37 +++++++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 10 deletions(-) (limited to 'src/totem-menu.c') diff --git a/src/totem-menu.c b/src/totem-menu.c index 4570659e7..9cb4f7c43 100644 --- a/src/totem-menu.c +++ b/src/totem-menu.c @@ -394,15 +394,32 @@ hash_table_num_instances (GHashTable *ht, } static const char * -get_language_name_no_und (const char *lang) -{ - if (g_str_equal (lang, "und")) - return gst_tag_get_language_name ("eng"); - return gst_tag_get_language_name (lang); +get_language_name_no_und (const char *lang, + BvwTrackType track_type) +{ + const char *ret; + + ret = gst_tag_get_language_name (lang); + if (ret != NULL) + return ret; + + switch (track_type) { + case BVW_TRACK_TYPE_AUDIO: + return _("Audio Track"); + break; + case BVW_TRACK_TYPE_SUBTITLE: + return _("Subtitle"); + break; + case BVW_TRACK_TYPE_VIDEO: + g_assert_not_reached (); + } + + return NULL; } GList * -bvw_lang_info_to_menu_labels (GList *langs) +bvw_lang_info_to_menu_labels (GList *langs, + BvwTrackType track_type) { GList *l, *ret; GHashTable *lang_table, *lang_codec_table, *printed_table; @@ -452,16 +469,16 @@ bvw_lang_info_to_menu_labels (GList *langs) GINT_TO_POINTER (num)); str = g_strdup_printf ("%s #%d", - get_language_name_no_und (info->language), + get_language_name_no_und (info->language, track_type), num); } else { str = g_strdup_printf ("%s — %s", - get_language_name_no_und (info->language), + get_language_name_no_und (info->language, track_type), info->codec); } g_free (id); } else { - str = g_strdup (get_language_name_no_und (info->language)); + str = g_strdup (get_language_name_no_und (info->language, track_type)); } ret = g_list_prepend (ret, str); @@ -517,7 +534,7 @@ create_lang_actions (GMenu *menu, /* Translators: an entry in the "Languages" menu, used to choose the audio language of a DVD */ add_lang_action (menu, action, C_("Language", "Auto"), -1); - ui_list = bvw_lang_info_to_menu_labels (list); + ui_list = bvw_lang_info_to_menu_labels (list, is_lang ? BVW_TRACK_TYPE_AUDIO : BVW_TRACK_TYPE_SUBTITLE); for (l = ui_list, i = 0; l != NULL; l = l->next, i++) add_lang_action (menu, action, l->data, i); -- cgit v1.2.1