SASC-NG
DVBSoftCAM

cEcmInfo Class Reference

#include <data.h>

Inheritance diagram for cEcmInfo:

List of all members.

Public Member Functions

 cEcmInfo (void)
 cEcmInfo (const cEcmInfo *e)
 cEcmInfo (const char *Name, int Pid, int CaId, int ProvId)
 ~cEcmInfo ()
virtual cString ToString (bool hide=false)
bool Compare (const cEcmInfo *e)
void SetDvb (int DvbAdapter, int DvbFrontend)
void SetSource (int GrPrgId, int Source, int Transponder)
void SetName (const char *Name)
void SetDataIdx (int idx)
const unsigned char * Data (void) const
bool AddCaDescr (const cEcmInfo *e)
bool AddCaDescr (const unsigned char *descr, int len)
const unsigned char * GetCaDescr (int *l) const
void SetRewriter (void)
void Fail (bool st)
bool Failed (void) const
void SetCached (void)
bool Cached (void) const

Public Attributes

char * name
int ecm_pid
int ecm_table
int caId
int provId
int emmCaId
int prgId
int grPrgId
int source
int transponder
cRewriter * rewriter
int rewriterId
int dvbAdapter
int dvbFrontend

Protected Member Functions

void ClearCaDescr (void)

Protected Attributes

int caDescrLen
int dataIdx
unsigned char * caDescr

Detailed Description

Definition at line 223 of file data.h.


Constructor & Destructor Documentation

cEcmInfo::cEcmInfo ( void  )

Definition at line 575 of file data.c.

References Setup.

{
  Setup();
}
cEcmInfo::cEcmInfo ( const char *  Name,
int  Pid,
int  CaId,
int  ProvId 
)

Definition at line 598 of file data.c.

References caId, ecm_pid, provId, SetName(), and Setup.

{
  Setup(); SetName(Name);
  ecm_pid=Pid;
  caId=CaId;
  provId=ProvId;
}
cEcmInfo::~cEcmInfo ( )

Definition at line 606 of file data.c.

References ClearCaDescr(), free, name, and rewriter.

{
  ClearCaDescr();
  free(name);
  delete rewriter;
}

Member Function Documentation

bool cEcmInfo::AddCaDescr ( const cEcmInfo *  e)

Definition at line 646 of file data.c.

References caDescr, caDescrLen, and dataIdx.

Referenced by cEcmInfo(), cEcmCache::New(), and cEcmData::Parse().

{
  bool res=AddCaDescr(e->caDescr,e->caDescrLen);
  if(e->dataIdx>=0 && (dataIdx<0 || e->dataIdx!=dataIdx)) res=true;
  dataIdx=e->dataIdx;
  return res;
}
bool cEcmInfo::AddCaDescr ( const unsigned char *  descr,
int  len 
)

Definition at line 668 of file data.c.

References caDescr, caDescrLen, ClearCaDescr(), L_GEN_ERROR, MALLOC, and PRINTF.

{
  bool res=false;
  if(descr && (!caDescr || caDescrLen!=len || memcmp(caDescr,descr,len)!=0)) {
    unsigned char *mem=MALLOC(unsigned char,len);
    if(mem) {
      ClearCaDescr();
      memcpy(mem,descr,len);
      caDescr=mem; caDescrLen=len;
      res=true;
      }
    else PRINTF(L_GEN_ERROR,"malloc failed in cEcmInfo::AddCaDescr()");
    }
  return res;
}
bool cEcmInfo::Cached ( void  ) const [inline]

Definition at line 260 of file data.h.

{ return cached; }
void cEcmInfo::ClearCaDescr ( void  ) [protected]

Definition at line 641 of file data.c.

References caDescr, caDescrLen, and free.

Referenced by AddCaDescr(), and ~cEcmInfo().

bool cEcmInfo::Compare ( const cEcmInfo *  e)

Definition at line 623 of file data.c.

References caId, ecm_pid, grPrgId, provId, source, and transponder.

Referenced by cLogger::EcmStatus().

{
  return grPrgId==e->grPrgId && source==e->source && transponder==e->transponder &&
         caId==e->caId && ecm_pid==e->ecm_pid && provId==e->provId;
}
const unsigned char * cEcmInfo::Data ( void  ) const

Definition at line 695 of file data.c.

References caDescr, caDescrLen, and dataIdx.

Referenced by cSmartCardSeca::Decode().

{
  return (dataIdx>=0 && caDescr && caDescrLen>dataIdx) ? &caDescr[dataIdx] : 0;
}
void cEcmInfo::Fail ( bool  st) [inline]

Definition at line 257 of file data.h.

{ failed=st; }
bool cEcmInfo::Failed ( void  ) const [inline]

Definition at line 258 of file data.h.

{ return failed; }
const unsigned char * cEcmInfo::GetCaDescr ( int *  l) const

Definition at line 684 of file data.c.

References caDescr, and caDescrLen.

Referenced by cCardClientGbox::ProcessECM(), and cCardClientCCcam::ProcessECM().

{
  if(l) *l=caDescrLen;
  return caDescr;
}
void cEcmInfo::SetCached ( void  ) [inline]

Definition at line 259 of file data.h.

Referenced by cEcmCache::GetCached(), and cEcmCache::New().

{ cached=true; }
void cEcmInfo::SetDataIdx ( int  idx)

Definition at line 690 of file data.c.

References dataIdx.

Referenced by cSystem::ParseCADescriptor().

{
  dataIdx=idx;
}
void cEcmInfo::SetDvb ( int  DvbAdapter,
int  DvbFrontend 
)

Definition at line 629 of file data.c.

References dvbAdapter, and dvbFrontend.

{
  dvbAdapter=DvbAdapter; dvbFrontend=DvbFrontend;
}
void cEcmInfo::SetName ( const char *  Name)

Definition at line 700 of file data.c.

References free, and name.

Referenced by cEcmInfo(), cEcmCache::New(), and cEcmData::Parse().

{
  free(name);
  name=strdup(Name);
}
void cEcmInfo::SetRewriter ( void  )

Definition at line 654 of file data.c.

References cRewriters::CreateById(), cRewriter::Id(), rewriter, and rewriterId.

Referenced by cEcmInfo(), and cEcmData::Parse().

{
  if(rewriterId>0) {
    if(!rewriter || rewriter->Id()!=rewriterId) {
      delete rewriter;
      rewriter=cRewriters::CreateById(rewriterId);
      }
    }
  else {
    delete rewriter;
    rewriter=0;
    }
}
void cEcmInfo::SetSource ( int  GrPrgId,
int  Source,
int  Transponder 
)

Definition at line 634 of file data.c.

References grPrgId, prgId, SIDGRP_SHIFT, source, and transponder.

Referenced by main().

{
  grPrgId=GrPrgId; prgId=grPrgId%SIDGRP_SHIFT;
  source=Source;
  transponder=Transponder;
}
virtual cString cEcmInfo::ToString ( bool  hide = false) [inline, virtual]

Reimplemented from cStructItem.

Reimplemented in cEcmData.

Definition at line 246 of file data.h.

{ return ""; }

Member Data Documentation

unsigned char* cEcmInfo::caDescr [protected]

Definition at line 230 of file data.h.

Referenced by AddCaDescr(), ClearCaDescr(), Data(), GetCaDescr(), and cEcmData::ToString().

int cEcmInfo::caDescrLen [protected]

Definition at line 229 of file data.h.

Referenced by AddCaDescr(), ClearCaDescr(), Data(), GetCaDescr(), and cEcmData::ToString().

int cEcmInfo::dataIdx [protected]

Definition at line 229 of file data.h.

Referenced by AddCaDescr(), cEcmInfo(), Data(), cEcmData::Parse(), SetDataIdx(), and cEcmData::ToString().

Definition at line 240 of file data.h.

Referenced by cEcmInfo(), cCardClientCCcam::ProcessECM(), and SetDvb().

Definition at line 240 of file data.h.

Referenced by cEcmInfo(), cCardClientCCcam::ProcessECM(), and SetDvb().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines