diff --git a/src/zapit/src/bouquets.cpp b/src/zapit/src/bouquets.cpp index 65198216e..4cc76f958 100644 --- a/src/zapit/src/bouquets.cpp +++ b/src/zapit/src/bouquets.cpp @@ -542,10 +542,10 @@ void CBouquetManager::loadBouquets(bool ignoreBouquetFile) renumServices(); CServiceManager::getInstance()->SetCIFilter(); if(!EpgIDMapping.empty()){ - EpgIDMapping.clear(); + EpgIDMapping.clear(); } if(!EpgXMLMapping.empty()){ - EpgXMLMapping.clear(); + EpgXMLMapping.clear(); } TIMER_STOP("[zapit] bouquet loading took"); } @@ -933,6 +933,7 @@ void CBouquetManager::loadWebchannels(int mode) const char *desc = xmlGetAttribute(l1, "description"); const char *genre = xmlGetAttribute(l1, "genre"); const char *epgid = xmlGetAttribute(l1, "epgid"); + const char *epgmap = xmlGetAttribute(l1, "epgmap"); const char *script = xmlGetAttribute(l1, "script"); t_channel_id epg_id = 0; if (epgid) @@ -947,7 +948,7 @@ void CBouquetManager::loadWebchannels(int mode) } } else - epg_id = strtoull(epgid, NULL, 16); + epg_id = strtoull(epgid, NULL, 16); } CZapitBouquet* gbouquet = pbouquet; @@ -970,12 +971,20 @@ void CBouquetManager::loadWebchannels(int mode) t_channel_id new_epgid = reMapEpgID(chid); if(new_epgid) channel->setEPGid(new_epgid); - std::string new_epgxml = reMapEpgXML(chid); - if(!new_epgxml.empty()) { - char buf[100]; - snprintf(buf, sizeof(buf), "%llx", chid & 0xFFFFFFFFFFFFULL); + char buf[100]; + snprintf(buf, sizeof(buf), "%llx", chid & 0xFFFFFFFFFFFFULL); + if (epgmap) + { + std::string new_epgxml(epgmap); channel->setEPGmap("#" + new_epgxml + "=" + buf); } + else + { + std::string new_epgxml = reMapEpgXML(chid); + if(!new_epgxml.empty()) { + channel->setEPGmap("#" + new_epgxml + "=" + buf); + } + } channel->flags = CZapitChannel::UPDATED; if (gbouquet) gbouquet->addService(channel);