All pastes #837662 Raw Edit

Unnamed

public text v1 · immutable
#837662 ·published 2007-12-29 21:02 UTC
rendered paste body
#! /bin/sh /usr/share/dpatch/dpatch-run
## 04_external-au-params.dpatch
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: No description.

@DPATCH@
diff -urNad vdr-plugin-sc-0.8.6~/data.c vdr-plugin-sc-0.8.6/data.c
--- vdr-plugin-sc-0.8.6~/data.c	2007-12-29 19:41:45.000000000 +0100
+++ vdr-plugin-sc-0.8.6/data.c	2007-12-29 21:10:43.000000000 +0100
@@ -660,7 +660,7 @@
       PRINTF(L_CORE_AUEXTERN,"triggered from findkey (type=%X id=%X keynr=%X)",Type,Id,Keynr);
       lastType=Type; lastId=Id; lastKeynr=Keynr;
       }
-    ExternalUpdate();
+    ExternalUpdate(Type,Id,Keynr);
     }
   return key;
 }
@@ -745,12 +745,15 @@
   if(trigger.TimedOut()) {
     trigger.Set(EXT_AU_INT);
     if(externalAU) PRINTF(L_CORE_AUEXTERN,"triggered from housekeeping");
-    ExternalUpdate();
+    ExternalUpdate(0,0,0);
     }
 }
 
-void cPlainKeys::ExternalUpdate(void)
+void cPlainKeys::ExternalUpdate(int Type, int Id, int Keynr)
 {
+  _type = Type;
+  _id = Id;
+  _keynr = Keynr;
   if(externalAU && ScSetup.AutoUpdate>0) {
     if(last.TimedOut()) {
       Lock();
@@ -784,7 +787,8 @@
   PRINTF(L_CORE_AUEXTERN,"starting...");
   cTimeMs start;
   cPipe pipe;
-  if(pipe.Open(externalAU,"r")) {
+  cString cmd = cString::sprintf("%s %c %04X %02X",externalAU, _type, _id, _keynr);
+  if(pipe.Open(*cmd,"r")) {
     char buff[1024];
     while(fgets(buff,sizeof(buff),pipe)) {
       char *line=skipspace(stripspace(buff));
diff -urNad vdr-plugin-sc-0.8.6~/data.h vdr-plugin-sc-0.8.6/data.h
--- vdr-plugin-sc-0.8.6~/data.h	2007-12-29 19:41:45.000000000 +0100
+++ vdr-plugin-sc-0.8.6/data.h	2007-12-29 20:58:29.000000000 +0100
@@ -248,11 +248,14 @@
   static cPlainKeyType *first;
   cPlainKey *mark;
   cTimeMs trigger, last;
+  int _type;
+  int _id;
+  int _keynr;
   //
   static void Register(cPlainKeyType *pkt, bool Super);
   cPlainKey *NewFromType(int type);
   void AddNewKey(cPlainKey *nk, int mode, bool log);
-  void ExternalUpdate(void);
+  void ExternalUpdate(int Type=0, int Id=0, int Keynr=0);
 protected:
   virtual void Action(void);
 public: