if(SL_TSTFLAG(SL_DISABLED) || (reload && !SL_TSTFLAG(SL_WATCH))) return;
FILE *f=fopen(path,"r");
if(f) {
+ PreLoad();
int curr_mtime=MTime(true);
ListLock(true);
bool doload=false;
bool IsModified(void) const { return SL_TSTFLAG(SL_MODIFIED); }
void ListLock(bool rw) { lock.Lock(rw); }
void ListUnlock(void) { lock.Unlock(); }
+ virtual void PreLoad(void) {}
virtual void PostLoad(void) {}
public:
cStructLoader(const char *Type, const char *Filename, int Flags);
#include <vdr/sources.h>
#include "override.h"
+#include "sc.h"
#include "misc.h"
#include "log-core.h"
:cStructList<cOverride>("overrides","override.conf",SL_MISSINGOK|SL_WATCH|SL_VERBOSE)
{}
+void cOverrides::PreLoad(void)
+{
+ caidTrigger=false;
+}
+
+void cOverrides::PostLoad(void)
+{
+ if(caidTrigger) cSoftCAM::CaidsChanged();
+}
+
cOverride *cOverrides::ParseLine(char *line)
{
cOverride *ov=0;
else if(!strncasecmp(line,"ecmtable",8)) ov=new cOverrideEcmTable;
else if(!strncasecmp(line,"emmtable",8)) ov=new cOverrideEmmTable;
else if(!strncasecmp(line,"tunnel",6)) ov=new cOverrideTunnel;
- else if(!strncasecmp(line,"ignore",6)) ov=new cOverrideIgnore;
+ else if(!strncasecmp(line,"ignore",6)) { ov=new cOverrideIgnore; caidTrigger=true; }
else if(!strncasecmp(line,"ecmprio",7)) ov=new cOverrideEcmPrio;
if(ov && !ov->Parse(p)) { delete ov; ov=0; }
}
// ----------------------------------------------------------------
class cOverrides : public cStructList<cOverride> {
+private:
+ bool caidTrigger;
protected:
cOverride *Find(int type, int caid, int source, int transponder, cOverride *ov=0);
virtual cOverride *ParseLine(char *line);
+ virtual void PreLoad(void);
+ virtual void PostLoad(void);
public:
cOverrides(void);
int GetCat(int source, int transponder, unsigned char *buff, int len);
extern const char *ScVersion;
// SC API version number for loading shared libraries
-#define SCAPIVERS 28
+#define SCAPIVERS 29
#ifndef STATICBUILD
#define SCAPIVERSTAG() int ScLibApiVersion=SCAPIVERS
#else