diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 31f868f67..5ad21a3c1 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -312,6 +312,10 @@ epgextended.year_of_production Produktionsjahr epglist.noevents Keine EPG-Information verfügbar. epgviewer.More_Screenings Weitere Termine auf diesem Kanal epgviewer.More_Screenings_short Weitere Termine +epgviewer.age_rating Altersfreigabe +epgviewer.audio Audio +epgviewer.genre Genre +epgviewer.length Spieldauer (Min.) epgviewer.nodetailed Keine ausführlichen Informationen verfügbar epgviewer.notfound Keine Programminformationen (EPG) gefunden eventfinder.head EPG-Suche diff --git a/data/locale/english.locale b/data/locale/english.locale index 9046f2087..3c06a634c 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -312,6 +312,10 @@ epgextended.year_of_production Year of Production epglist.noevents EPG is not available... epgviewer.More_Screenings More Screenings on this Channel epgviewer.More_Screenings_short More Screenings +epgviewer.age_rating Age rating +epgviewer.audio Audio +epgviewer.genre Genre +epgviewer.length Length (min.) epgviewer.nodetailed No detailed informations available epgviewer.notfound No EPG found eventfinder.head Search in EPG diff --git a/src/gui/epgview.cpp b/src/gui/epgview.cpp index dbe65abf1..13199976f 100644 --- a/src/gui/epgview.cpp +++ b/src/gui/epgview.cpp @@ -548,28 +548,55 @@ int CEpgData::show(const t_channel_id channel_id, uint64_t a_id, time_t* a_start else processTextToArray(strEpisode + epgData.info2); + // Add a blank line + processTextToArray(""); + + // 21.07.2005 - rainerk // Show extended information if ( !epgData.itemDescriptions.empty() && !epgData.items.empty()) { char line[256]; std::vector::iterator description; std::vector::iterator item; - processTextToArray(""); // Add a blank line for (description = epgData.itemDescriptions.begin(), item = epgData.items.begin(); description != epgData.itemDescriptions.end(), item != epgData.items.end(); ++description, ++item) { sprintf(line, "%s: %s", (*(description)).c_str(), (*(item)).c_str()); processTextToArray(line); } } + // Show FSK information if (epgData.fsk > 0) { - char _tfsk[11]; - sprintf (_tfsk, "FSK: ab %d", epgData.fsk ); - processTextToArray( _tfsk ); // UTF-8 + char fskInfo[4]; + sprintf(fskInfo, "%d", epgData.fsk); + processTextToArray(std::string(g_Locale->getText(LOCALE_EPGVIEWER_AGE_RATING)) + ": " + fskInfo); // UTF-8 } + // Show length information + char lengthInfo[11]; + sprintf(lengthInfo, "%d", epgData.epg_times.dauer / 60); + processTextToArray(std::string(g_Locale->getText(LOCALE_EPGVIEWER_LENGTH)) + ": " + lengthInfo); // UTF-8 + + // Show audio information + std::string audioInfo = ""; + CSectionsdClient::ComponentTagList tags; + bool hasComponentTags = CEitManager::getInstance()->getComponentTagsUniqueKey( epgData.eventID, tags); + if (hasComponentTags) + { + for (unsigned int i = 0; i < tags.size(); i++) + if (tags[i].streamContent == 2) + audioInfo += tags[i].component + ", "; + + if (!audioInfo.empty()) + { + audioInfo.erase(audioInfo.size()-2); + processTextToArray(std::string(g_Locale->getText(LOCALE_EPGVIEWER_AUDIO)) + ": " + ZapitTools::Latin1_to_UTF8(audioInfo)); // UTF-8 + } + } + + // Show genre information if (epgData.contentClassification.length()> 0) - processTextToArray(GetGenre(epgData.contentClassification[0])); // UTF-8 + processTextToArray(std::string(g_Locale->getText(LOCALE_EPGVIEWER_GENRE)) + ": " + GetGenre(epgData.contentClassification[0])); // UTF-8 // processTextToArray( epgData.userClassification.c_str() ); @@ -619,11 +646,10 @@ int CEpgData::show(const t_channel_id channel_id, uint64_t a_id, time_t* a_start showTimerEventBar (true); //show Content&Component for Dolby & 16:9 - CSectionsdClient::ComponentTagList tags; int dummy_h,dummy_w; frameBuffer->getIconSize(NEUTRINO_ICON_16_9_GREY, &dummy_w, &dummy_h); if (dummy_h == 16 && dummy_w == 26){ // show only standard icon size - if (CEitManager::getInstance()->getComponentTagsUniqueKey( epgData.eventID, tags)) + if (hasComponentTags) { for (unsigned int i=0; i< tags.size(); i++) { diff --git a/src/system/locals.h b/src/system/locals.h index 5ef52ea1e..75b97d407 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -339,6 +339,10 @@ typedef enum LOCALE_EPGLIST_NOEVENTS, LOCALE_EPGVIEWER_MORE_SCREENINGS, LOCALE_EPGVIEWER_MORE_SCREENINGS_SHORT, + LOCALE_EPGVIEWER_AGE_RATING, + LOCALE_EPGVIEWER_AUDIO, + LOCALE_EPGVIEWER_GENRE, + LOCALE_EPGVIEWER_LENGTH, LOCALE_EPGVIEWER_NODETAILED, LOCALE_EPGVIEWER_NOTFOUND, LOCALE_EVENTFINDER_HEAD, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index fe8eedd57..e0238f57c 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -339,6 +339,10 @@ const char * locale_real_names[] = "epglist.noevents", "epgviewer.More_Screenings", "epgviewer.More_Screenings_short", + "epgviewer.age_rating", + "epgviewer.audio", + "epgviewer.genre", + "epgviewer.length", "epgviewer.nodetailed", "epgviewer.notfound", "eventfinder.head",