]> www.vanbest.org Git - sasc-ng.git/commitdiff
trigger caid scan on ignore change
authorleslie <unknown>
Tue, 29 Dec 2009 18:03:21 +0000 (19:03 +0100)
committerleslie <unknown>
Tue, 29 Dec 2009 18:03:21 +0000 (19:03 +0100)
data.c
data.h
override.c
override.h
version.h

diff --git a/data.c b/data.c
index a24d86b9c5880d4ac7d9089dc130948886efd3dc..588b013f913eb43fc0513712d568866646012725 100644 (file)
--- a/data.c
+++ b/data.c
@@ -304,6 +304,7 @@ void cStructLoader::Load(bool reload)
   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;
diff --git a/data.h b/data.h
index e11b83010fc795795a853fcc451310da1298fa76..c93c9d2f0620cf02489f12e2fb4f3f62f2390c62 100644 (file)
--- a/data.h
+++ b/data.h
@@ -132,6 +132,7 @@ protected:
   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);
index 314035b54a3581f3826e13c21e1ae7924f77f419..d4e87436e1fa2270581c45f5a56824afaf7f3c02 100644 (file)
@@ -24,6 +24,7 @@
 #include <vdr/sources.h>
 
 #include "override.h"
+#include "sc.h"
 #include "misc.h"
 #include "log-core.h"
 
@@ -555,6 +556,16 @@ cOverrides::cOverrides(void)
 :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;
@@ -567,7 +578,7 @@ cOverride *cOverrides::ParseLine(char *line)
     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; }
     }
index 316f9cb12c337142d6cfa44ad3f4d07d938c757e..484d20c4edf5726ecf17f6e91c0e26749f29438d 100644 (file)
@@ -83,9 +83,13 @@ public:
 // ----------------------------------------------------------------
 
 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);
index 92969739b5606892aadeee46f315191c00b4d6ed..b650687d5a2e17cca052f1814a503783be2e50c8 100644 (file)
--- a/version.h
+++ b/version.h
@@ -25,7 +25,7 @@
 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