]> www.vanbest.org Git - sasc-ng.git/commitdiff
sasc: adapt to new CA descr handling
authorleslie <unknown>
Wed, 22 Jul 2009 11:12:48 +0000 (19:12 +0800)
committerleslie <unknown>
Wed, 22 Jul 2009 11:12:48 +0000 (19:12 +0800)
contrib/sasc-ng/dvblb_plugins/plugin_cam.c
contrib/sasc-ng/sc/include/vdr/channels.h
contrib/sasc-ng/sc/misc.cpp
contrib/sasc-ng/sc/sasccam.cpp
contrib/sasc-ng/sc/sasccam.h

index 46e1664bfdb301ad52654c27c41faf319f690491..ac4c033f0556d02abc1a0e18506f5953f278e625 100644 (file)
@@ -87,19 +87,6 @@ extern void update_keys(int, unsigned char, int, unsigned char *, int);
 extern void SetCAMPrint(const char *_plugin_name, unsigned int plugin_id, unsigned int _print_level, unsigned int *_log_level);
 const char *cPlugin::ConfigDirectory(const char *PluginName) {return opt_camdir;}
 
-int GetCaDescriptors(int Source, int Transponder, int ServiceId,
-                     const int *CaSystemIds, int BufSize, uchar *Data,
-                     bool &StreamFlag) {
-  cChannel *ch;
-  for(ch=Channels.First(); ch; ch=Channels.Next(ch)) {
-    if(ch->Sid() == ServiceId) {
-       return ch->GetPMTBuf(Data);
-    }
-  }
-//  printf("Transfering %d bytes\n", pmtlen);
-  return 0;
-}
-
 static int init_sc(void) {
   sc=(cPlugin *)VDRPluginCreator();
 
@@ -157,7 +144,7 @@ void cam_del_pid(struct sc_data *sc_data, struct cam_epid *cam_epid) {
       *(epidptr++) = cam_epid1->epid;
   }
   *epidptr = 0;
-  sc_data->cam->AddPrg(cam_epid->sid,epidlist);
+  sc_data->cam->AddPrg(cam_epid->sid,epidlist,0,0);
   //PrepareScLink(&link, sc_data->dev, OP_DELPID);
   //link.data.pids.pid=cam_epid->epid;
   //link.data.pids.type=cam_epid->type;
@@ -320,7 +307,6 @@ void process_cam(struct msg *msg, unsigned int priority)
   memset(dpid, 0, sizeof(int)*MAXDPIDS);
   ch = new cChannel();
 
-  ch->SetPMTBuf(sidmsg->ca, sidmsg->calen);
   ch->SetId(0, 1, sidmsg->sid, 0);
   //set source type to Satellite.  Use orbit and E/W data
   int source = 0x8000 | (BCD2INT(sidmsg->nit.orbit) & 0x7ff) | ((int)sidmsg->nit.is_east << 19);
@@ -364,7 +350,7 @@ void process_cam(struct msg *msg, unsigned int priority)
     //DoScLinkOp(sc, &link);
   }
   *epidptr = 0;
-  sc_data->cam->AddPrg(sidmsg->sid,epidlist);
+  sc_data->cam->AddPrg(sidmsg->sid,epidlist,sidmsg->ca,sidmsg->calen);
   free_sidmsg(sidmsg);
 }
 
index caa1a83187bddb463267e3c15aff139549f5bdce..a535ed32cf4a18f738fbbd41554ab48f49de0be4 100644 (file)
@@ -217,11 +217,6 @@ public:
   void SetCaDescriptors(int Level);
   void SetLinkChannels(cLinkChannels *LinkChannels);
   void SetRefChannel(cChannel *RefChannel);
-  void SetPMTBuf(const unsigned char *buf, int len);
-  int  GetPMTBuf(unsigned char *buf);
-private:
-  int pmtlen;
-  unsigned char pmtbuf[4096];
   };
 
 class cChannels : public cRwLock, public cConfig<cChannel> {
index b803586ceb1da1f4c8c3e29f335f9f401576bc3e..1c679d2841a9a80589f31a5e4ffd917e2a0e7b39 100644 (file)
@@ -51,18 +51,6 @@ cChannel::cChannel() {
   source=1;
   sid=1;
   groupSep=0;
-  pmtlen = 0;
 }
 cChannel::~cChannel() {
 }
-
-void cChannel::SetPMTBuf(const unsigned char *buf, int len)
-{
-  memcpy(pmtbuf, buf, len);
-  pmtlen = len;
-}
-int cChannel::GetPMTBuf(unsigned char *buf) {
-  memcpy(buf, pmtbuf, pmtlen);
-  return pmtlen;
-}
-
index 4335696e2d0651364d670a71b21fb7ef46ec38c3..df7a94a9be298f5aab48cef752583b343b6516d5 100644 (file)
@@ -37,16 +37,8 @@ public:
   ~cSascDvbDevice() {};
   bool SetCaDescr(ca_descr_t *ca_descr, bool initial);
   bool SetCaPid(ca_pid_t *ca_pid);
-  bool GetPrgCaids(int source, int transponder, int prg, caid_t *c);
   };
 
-bool cSascDvbDevice::GetPrgCaids(int source, int transponder, int prg, caid_t *c)
-{
-  *c++ = 0x0101;
-  *c = 0;
-  return true;
-}
-
 extern void _SetCaDescr(int adapter, ca_descr_t *ca_descr);
 bool cSascDvbDevice::SetCaDescr(ca_descr_t *ca_descr, bool initial)
 {
@@ -79,12 +71,13 @@ void sascCam::Stop()
 {
   cam->Stop();
 }
-void sascCam::AddPrg(int sid, int *epid)
+void sascCam::AddPrg(int sid, int *epid, const unsigned char *pmt, int pmtlen)
 {
   int i = 0;
   if(! epid)
     return;
   cPrg *prg=new cPrg(sid, 1); 
+  if(pmt) prg->caDescr.Set(pmt,pmtlen);
   while(epid[i]) {
     cPrgPid *pid=new cPrgPid(5, epid[i++]);
     prg->pids.Add(pid);
index 7d9fdb1991fe43f503f36cc05d5acab25525abbe..f1ce30ad35a9280c896719488c8ef59472f8804f 100644 (file)
@@ -9,5 +9,5 @@ public:
   sascCam(int devNum);
   void Stop();
   void Tune(cChannel *ch);
-  void AddPrg(int sid, int *epid);
+  void AddPrg(int sid, int *epid, const unsigned char *pmt, int pmtlen);
 };