bouquets: allow epgmapping directly from webtv xml file

Origin commit data
------------------
Branch: ni/coolstream
Commit: 94cf45db20
Author: vanhofen <vanhofen@gmx.de>
Date: 2021-09-12 (Sun, 12 Sep 2021)

Origin message was:
------------------
- bouquets: allow epgmapping directly from webtv xml file

------------------
No further description and justification available within origin commit message!

------------------
This commit was generated by Migit
This commit is contained in:
vanhofen
2021-09-12 21:23:40 +02:00
parent 4c310a2174
commit 4818da7499

View File

@@ -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);