diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2005-11-26 19:01:11 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2005-11-26 19:01:11 +0000 |
| commit | f94e2c9821eb8784ca03b7122485d4720ec6d6e6 (patch) | |
| tree | 6da2323d2220093ea1c3756dbddb8e02fded2969 /lib/dvb | |
| parent | 68271eeaf83872270f13cc01e98960367d7d553f (diff) | |
| download | enigma2-f94e2c9821eb8784ca03b7122485d4720ec6d6e6.tar.gz enigma2-f94e2c9821eb8784ca03b7122485d4720ec6d6e6.zip | |
add ability to select default encoding for dvb texts in many ways.. ( take a look in data/encodings.conf )
Diffstat (limited to 'lib/dvb')
| -rw-r--r-- | lib/dvb/eit.cpp | 5 | ||||
| -rw-r--r-- | lib/dvb/epgcache.cpp | 10 | ||||
| -rw-r--r-- | lib/dvb/epgcache.h | 1 |
3 files changed, 11 insertions, 5 deletions
diff --git a/lib/dvb/eit.cpp b/lib/dvb/eit.cpp index b78b2279..cc2c29b2 100644 --- a/lib/dvb/eit.cpp +++ b/lib/dvb/eit.cpp @@ -14,10 +14,11 @@ void eDVBServiceEITHandler::EITready(int error) for (std::vector<EventInformationSection*>::const_iterator i = ptr->getSections().begin(); i != ptr->getSections().end(); ++i) { - for (EventConstIterator ev = (*i)->getEvents()->begin(); ev != (*i)->getEvents()->end(); ++ev) + const EventInformationSection *eit = *i; + for (EventConstIterator ev = eit->getEvents()->begin(); ev != eit->getEvents()->end(); ++ev) { ePtr<eServiceEvent> evt = new eServiceEvent(); - evt->parseFrom(*ev); + evt->parseFrom(*ev,(eit->getTransportStreamId()<<16)|eit->getOriginalNetworkId()); if (!a) m_event_now = evt; else diff --git a/lib/dvb/epgcache.cpp b/lib/dvb/epgcache.cpp index 587d680c..6dea73bc 100644 --- a/lib/dvb/epgcache.cpp +++ b/lib/dvb/epgcache.cpp @@ -1066,7 +1066,8 @@ RESULT eEPGCache::lookupEventTime(const eServiceReference &service, time_t t, eP { Event ev((uint8_t*)data->get()); result = new eServiceEvent(); - ret = result->parseFrom(&ev); + const eServiceReferenceDVB &ref = (const eServiceReferenceDVB&)service; + ret = result->parseFrom(&ev, (ref.getTransportStreamID().get()<<16)|ref.getOriginalNetworkID().get()); } return ret; } @@ -1123,7 +1124,8 @@ RESULT eEPGCache::lookupEventId(const eServiceReference &service, int event_id, { Event ev((uint8_t*)data->get()); result = new eServiceEvent(); - ret = result->parseFrom(&ev); + const eServiceReferenceDVB &ref = (const eServiceReferenceDVB&)service; + ret = result->parseFrom(&ev, (ref.getTransportStreamID().get()<<16)|ref.getOriginalNetworkID().get()); } return ret; } @@ -1147,6 +1149,8 @@ RESULT eEPGCache::startTimeQuery(const eServiceReference &service, time_t begin, } else m_timemap_cursor = It->second.second.begin(); + const eServiceReferenceDVB &ref = (const eServiceReferenceDVB&)service; + currentQueryTsidOnid = (ref.getTransportStreamID().get()<<16) | ref.getOriginalNetworkID().get(); return 0; } return -1; @@ -1188,7 +1192,7 @@ RESULT eEPGCache::getNextTimeEntry(ePtr<eServiceEvent> &result) { Event ev((uint8_t*)m_timemap_cursor++->second->get()); result = new eServiceEvent(); - return result->parseFrom(&ev); + return result->parseFrom(&ev, currentQueryTsidOnid); } return -1; } diff --git a/lib/dvb/epgcache.h b/lib/dvb/epgcache.h index 3c2b612b..fe461d9d 100644 --- a/lib/dvb/epgcache.h +++ b/lib/dvb/epgcache.h @@ -221,6 +221,7 @@ private: void DVBChannelRunning(iDVBChannel *); timeMap::iterator m_timemap_cursor, m_timemap_end; + int currentQueryTsidOnid; // needed for getNextTimeEntry.. only valid until next startTimeQuery call #endif // SWIG public: static eEPGCache *getInstance() { return instance; } |
