From 8976ebcec5ca1ac03c54209b7cc12e9d14915c6b Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 4 Jan 2004 12:30:00 +0100 Subject: Implemented automatic PID switching and channel detection --- eit.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'eit.c') diff --git a/eit.c b/eit.c index f1071826..45a4d800 100644 --- a/eit.c +++ b/eit.c @@ -8,7 +8,7 @@ * Robert Schneider and Rolf Hakenes . * Adapted to 'libsi' for VDR 1.3.0 by Marcel Wiesweg . * - * $Id: eit.c 1.83 2003/12/25 12:48:47 kls Exp $ + * $Id: eit.c 1.84 2004/01/02 22:27:29 kls Exp $ */ #include "eit.h" @@ -29,12 +29,10 @@ cEIT::cEIT(cSchedules *Schedules, int Source, u_char Tid, const u_char *Data) if (!CheckCRCAndParse()) return; - //XXX TODO use complete channel ID - cChannel *channel = Channels.GetByServiceID(Source, getServiceId()); + tChannelID channelID(Source, getOriginalNetworkId(), getTransportStreamId(), getServiceId()); + cChannel *channel = Channels.GetByChannelID(channelID, true); if (!channel) return; // only collect data for known channels - tChannelID channelID = channel->GetChannelID(); - channelID.ClrRid(); cEvent *rEvent = NULL; @@ -82,7 +80,7 @@ cEIT::cEIT(cSchedules *Schedules, int Source, u_char Tid, const u_char *Data) // Unfortunately some stations (like, e.g. "Premiere") broadcast their EPG data on several transponders (like // the actual Premiere transponder and the Sat.1/Pro7 transponder), but use different version numbers on // each of them :-( So if one DVB card is tuned to the Premiere transponder, while an other one is tuned - // to the Sat.1/Pro7 transponder, events will keep toggling because ot the bogus version numbers. + // to the Sat.1/Pro7 transponder, events will keep toggling because of the bogus version numbers. if (Tid == pEvent->TableID() && pEvent->Version() == getVersionNumber()) continue; } -- cgit v1.2.3