--- eitscan.c 2004-04-16 15:33:34.000000000 +0200 +++ eitscan.c 2004-06-10 15:36:26.000000000 +0200 @@ -121,6 +121,21 @@ lastActivity = time(NULL); } +#include "plugin.h" +#define SC_NAME "sc" +#define SC_MAGIC { 0,'S','C',0xc4,0x5e,0xa1 } +#define OP_PROVIDES 0 +#define OP_IGNORE 1 + +struct ScLink { + char magic[6]; + short op; + const cDevice *dev; + unsigned short *caids; + const cChannel *channel; + int num; + }; + void cEITScanner::Process(void) { if (Setup.EPGScanTimeout && Channels.MaxNumber() > 1) { @@ -152,6 +167,16 @@ Skins.Message(mtInfo, "Starting EPG scan"); } currentDevice = Device;//XXX see also dvbdevice.c!!! + + if(Channel->Ca()>=0x100) { + cPlugin *p = cPluginManager::GetPlugin(SC_NAME); + if(p) { // ignore this channel in SC (ugly hack!) + struct ScLink link = { SC_MAGIC,0,Device,0,Channel,0 }; + link.op=OP_IGNORE; + p->SetupParse((const char *)&link,""); + } + } + Device->SwitchChannel(Channel, false); currentDevice = NULL; scanList->Del(ScanData);