data->m_PrevVersion = -1;
data->m_PrivatePid = msg.pid;
data->m_PrivateService = msg.service;
- updateMap::iterator It = channelLastUpdated.find( channel->getChannelID() );
+ int onid = chid.original_network_id.get();
+ onid |= 0x80000000; // we use highest bit as private epg indicator
+ chid.original_network_id = onid;
+ updateMap::iterator It = channelLastUpdated.find( chid );
int update = ( It != channelLastUpdated.end() ? ( UPDATE_INTERVAL - ( (eDVBLocalTimeHandler::getInstance()->nowTime()-It->second) * 1000 ) ) : ZAP_DELAY );
if (update < ZAP_DELAY)
update = ZAP_DELAY;
// check all events
for (timeMap::iterator evit(evmap.begin()); evit != evmap.end() && maxcount; ++evit)
{
- if (evit->second->getEventID() == eventid)
+ int evid = evit->second->getEventID();
+ if ( evid == eventid)
continue;
__u8 *data = evit->second->EITdata;
int tmp = evit->second->ByteSize-12;
ePtr<eServiceEvent> ptr;
if (needServiceEvent)
{
- lookupEventId(ref, evit->first, ptr);
+ lookupEventId(ref, evid, ptr);
if (!ptr)
eDebug("event not found !!!!!!!!!!!");
}
{
switch( (tsid << 16) | sid )
{
+ case 0x01030b: sid = 0x1b; tsid = 4; break; // Premiere Win
case 0x0300f0: sid = 0xe0; tsid = 2; break;
case 0x0300f1: sid = 0xe1; tsid = 2; break;
case 0x0300f5: sid = 0xdc; break;
if ( seenPrivateSections.size() == (unsigned int)(data[7] + 1) )
{
eDebug("[EPGC] private finished");
+ eDVBChannelID chid = channel->getChannelID();
+ int tmp = chid.original_network_id.get();
+ tmp |= 0x80000000; // we use highest bit as private epg indicator
+ chid.original_network_id = tmp;
+ cache->channelLastUpdated[chid] = eDVBLocalTimeHandler::getInstance()->nowTime();
m_PrevVersion = (data[5] & 0x3E) >> 1;
startPrivateReader();
}
}
}
abort:
- isRunning &= ~eEPGCache::MHW;
+ isRunning &= ~MHW;
m_MHWConn2=0;
if ( m_MHWReader2 )
m_MHWReader2->stop();