#! /bin/sh /usr/share/dpatch/dpatch-run ## opt-39_noepg.dpatch by Torsten Kunkel ## extracted from noepg plugin version 0.0.2 (vdr-1.3.41-plain.patch) ## ## Thomas Günther : ## - solved conflicts with other patches ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: The patch allows to disable normal epg update for specified channels. ## DP: This is useful if you get epg data of the channels from external sources. @DPATCH@ --- vdr-1.3.41/channels.c +++ vdr-1.3.41/channels.c @@ -7,6 +7,7 @@ * $Id: channels.c 1.48 2006/01/14 15:51:02 kls Exp $ */ +#include "config.h" #include "channels.h" #include #include @@ -1030,6 +1031,17 @@ return NULL; } +//TK +bool cChannels::keinEPGScan(tChannelID kanalID) +{ + bool rc=false; + + if (strstr(::Setup.noEPG,kanalID.ToString())!=NULL){ + rc=true; + } + return rc; +} + cString ChannelString(const cChannel *Channel, int Number) { char buffer[256]; --- vdr-1.3.41/channels.h +++ vdr-1.3.41/channels.h @@ -248,6 +248,7 @@ ///< modification has been made, and 2 if the user has made a modification. ///< Calling this function resets the 'modified' flag to 0. cChannel *NewChannel(const cChannel *Transponder, const char *Name, const char *ShortName, const char *Provider, int Nid, int Tid, int Sid, int Rid = 0); + bool keinEPGScan(tChannelID kanalID);//TK }; extern cChannels Channels; --- vdr-1.3.41/config.c +++ vdr-1.3.41/config.c @@ -238,6 +238,7 @@ EPGScanTimeout = 5; EPGBugfixLevel = 3; EPGLinger = 0; + strcpy(noEPG, ""); SVDRPTimeout = 300; ZapTimeout = 3; SortTimers = 1; @@ -398,6 +399,7 @@ else if (!strcasecmp(Name, "EPGScanTimeout")) EPGScanTimeout = atoi(Value); else if (!strcasecmp(Name, "EPGBugfixLevel")) EPGBugfixLevel = atoi(Value); else if (!strcasecmp(Name, "EPGLinger")) EPGLinger = atoi(Value); + else if (!strcasecmp(Name, "noEPG")) strn0cpy(noEPG, Value, 999); else if (!strcasecmp(Name, "SVDRPTimeout")) SVDRPTimeout = atoi(Value); else if (!strcasecmp(Name, "ZapTimeout")) ZapTimeout = atoi(Value); else if (!strcasecmp(Name, "SortTimers")) SortTimers = atoi(Value); @@ -465,6 +467,7 @@ Store("EPGScanTimeout", EPGScanTimeout); Store("EPGBugfixLevel", EPGBugfixLevel); Store("EPGLinger", EPGLinger); + Store("noEPG", noEPG); Store("SVDRPTimeout", SVDRPTimeout); Store("ZapTimeout", ZapTimeout); Store("SortTimers", SortTimers); --- vdr-1.3.41/config.h +++ vdr-1.3.41/config.h @@ -210,6 +210,7 @@ int EPGScanTimeout; int EPGBugfixLevel; int EPGLinger; + char noEPG[999]; int SVDRPTimeout; int ZapTimeout; int SortTimers; --- vdr-1.3.41/eit.c +++ vdr-1.3.41/eit.c @@ -35,6 +35,13 @@ if (!channel) return; // only collect data for known channels + //TK + tChannelID kanalID; + kanalID=channel->GetChannelID(); + if (Channels.keinEPGScan(kanalID)){ + return; + } + cSchedule *pSchedule = (cSchedule *)Schedules->GetSchedule(channel, true); bool Empty = true;