X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fservice%2Fevent.cpp;h=cfd2ac5f51fa96615aef3440e25e7b0f85d85e76;hp=684c9e5e93418d6aa9a7a6b3b89f434ed4522e83;hb=f94e2c9821eb8784ca03b7122485d4720ec6d6e6;hpb=68271eeaf83872270f13cc01e98960367d7d553f diff --git a/lib/service/event.cpp b/lib/service/event.cpp index 684c9e5..cfd2ac5 100644 --- a/lib/service/event.cpp +++ b/lib/service/event.cpp @@ -1,5 +1,6 @@ #include #include +#include #include #include #include @@ -52,7 +53,7 @@ std::string ISOtbl[MAX_LANG][2] = }; /* search for the presence of language from given EIT event descriptors*/ -bool eServiceEvent::loadLanguage(Event *evt, std::string lang) +bool eServiceEvent::loadLanguage(Event *evt, std::string lang, int tsidonid) { bool retval=0; for (DescriptorConstIterator desc = evt->getDescriptors()->begin(); desc != evt->getDescriptors()->end(); ++desc) @@ -62,10 +63,12 @@ bool eServiceEvent::loadLanguage(Event *evt, std::string lang) case SHORT_EVENT_DESCRIPTOR: { const ShortEventDescriptor *sed = (ShortEventDescriptor*)*desc; - if (lang.empty() || sed->getIso639LanguageCode() == lang) + const std::string &cc = sed->getIso639LanguageCode(); + int table=encodingHandler.getCountryCodeDefaultMapping(cc); + if (lang.empty() || cc == lang) { - m_event_name = convertDVBUTF8(sed->getEventName()); - m_short_description = convertDVBUTF8(sed->getText()); + m_event_name = convertDVBUTF8(sed->getEventName(), table, tsidonid); + m_short_description = convertDVBUTF8(sed->getText(), table, tsidonid); retval=1; } break; @@ -73,9 +76,11 @@ bool eServiceEvent::loadLanguage(Event *evt, std::string lang) case EXTENDED_EVENT_DESCRIPTOR: { const ExtendedEventDescriptor *eed = (ExtendedEventDescriptor*)*desc; - if (lang.empty() || eed->getIso639LanguageCode() == lang) + const std::string &cc = eed->getIso639LanguageCode(); + int table=encodingHandler.getCountryCodeDefaultMapping(cc); + if (lang.empty() || cc == lang) { - m_extended_description += convertDVBUTF8(eed->getText()); + m_extended_description += convertDVBUTF8(eed->getText(), table, tsidonid); retval=1; } #if 0 @@ -99,7 +104,7 @@ bool eServiceEvent::loadLanguage(Event *evt, std::string lang) return retval; } -RESULT eServiceEvent::parseFrom(Event *evt) +RESULT eServiceEvent::parseFrom(Event *evt, int tsidonid) { uint16_t stime_mjd = evt->getStartTimeMjd(); uint32_t stime_bcd = evt->getStartTimeBcd(); @@ -115,11 +120,11 @@ RESULT eServiceEvent::parseFrom(Event *evt) std::string country="de_DE"; // TODO use local data here for (int i=0; i < MAX_LANG; i++) if (country==ISOtbl[i][0]) - if (loadLanguage(evt,ISOtbl[i][1])) + if (loadLanguage(evt, ISOtbl[i][1], tsidonid)) return 0; - if (loadLanguage(evt,"eng")) + if (loadLanguage(evt, "eng", tsidonid)) return 0; - if (loadLanguage(evt,std::string())) + if (loadLanguage(evt, std::string(), tsidonid)) return 0; return 0; }