- port over some not yet landed fixes for german SKY TV epg (THX Gaucho316!)

git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-experimental@394 e54a6e83-5905-42d5-8d5c-058d10e6a962
This commit is contained in:
striper
2010-02-20 18:22:55 +00:00
parent 91dda4e903
commit 3fe1c9a19d

View File

@@ -772,8 +772,12 @@ static void addEvent(const SIevent &evt, const unsigned table_id, const time_t z
MySIeventsOrderUniqueKey::iterator si = mySIeventsOrderUniqueKey.find(evt.uniqueKey());
bool already_exists = (si != mySIeventsOrderUniqueKey.end());
if (already_exists) {
/* Check size of some descriptors of the new event before comparing
them with the old ones, because the same event can be complete
on one German Sky channel and incomplete on another one. So we
make sure to keep the complete event, if applicable. */
if ((already_exists) && (evt.components.size() > 0)) {
if (si->second->components.size() != evt.components.size())
already_exists = false;
else {
@@ -791,7 +795,9 @@ static void addEvent(const SIevent &evt, const unsigned table_id, const time_t z
c2++;
}
}
}
if ((already_exists) && (evt.linkage_descs.size() > 0)) {
if (si->second->linkage_descs.size() != evt.linkage_descs.size())
already_exists = false;
else {
@@ -809,7 +815,9 @@ static void addEvent(const SIevent &evt, const unsigned table_id, const time_t z
}
}
}
}
if ((already_exists) && (evt.linkage_descs.size() > 0)) {
if (si->second->ratings.size() != evt.ratings.size())
already_exists = false;
else {
@@ -825,7 +833,9 @@ static void addEvent(const SIevent &evt, const unsigned table_id, const time_t z
p2++;
}
}
}
if (already_exists) {
if (si->second->times.size() != evt.times.size())
already_exists = false;
else {
@@ -866,10 +876,7 @@ static void addEvent(const SIevent &evt, const unsigned table_id, const time_t z
}
SIeventPtr e(eptr);
// If new extended event descriptor is empty use old one, if applicable
if ((e->getExtendedText().length() == 0) && (si != mySIeventsOrderUniqueKey.end()) &&
(SIlanguage::getMode() == CSectionsdClient::LANGUAGE_MODE_OFF))
e->setExtendedText("OFF",si->second->getExtendedText());
//Strip ExtendedDescription if too far in the future
if ((e->times.begin()->startzeit > zeit + secondsExtendedTextCache) &&
(SIlanguage::getMode() == CSectionsdClient::LANGUAGE_MODE_OFF) && (zeit != 0))