SASC-NG
DVBSoftCAM

cCaDescr Class Reference

SASC. More...

#include <cam.h>

List of all members.

Public Member Functions

 cCaDescr (void)
 cCaDescr (const cCaDescr &arg)
 ~cCaDescr ()
const unsigned char * Get (int &l) const
void Set (const cCaDescr *d)
void Set (const unsigned char *de, int l)
void Clear (void)
bool operator== (const cCaDescr &arg) const
void Join (const cCaDescr *cd, bool rev=false)
cString ToString (void)

Detailed Description

SASC.

Definition at line 82 of file cam.h.


Constructor & Destructor Documentation

cCaDescr::cCaDescr ( void  )

Definition at line 729 of file cam.c.

{
  descr=0; len=0;
}
cCaDescr::cCaDescr ( const cCaDescr &  arg)

Definition at line 734 of file cam.c.

References Set().

{
  descr=0; len=0;
  Set(cd.descr,cd.len);
}
cCaDescr::~cCaDescr ( )

Definition at line 740 of file cam.c.

References Clear().

{
  Clear();
}

Member Function Documentation

void cCaDescr::Clear ( void  )

Definition at line 768 of file cam.c.

References free.

Referenced by cCam::AddPrg(), Join(), Set(), cPrg::SimplifyCaDescr(), and ~cCaDescr().

{
  free(descr); descr=0; len=0;
}
const unsigned char * cCaDescr::Get ( int &  l) const

Definition at line 745 of file cam.c.

{
  l=len;
  return descr;
}
void cCaDescr::Join ( const cCaDescr *  cd,
bool  rev = false 
)

Definition at line 773 of file cam.c.

References Clear(), and MALLOC.

Referenced by cPrg::SimplifyCaDescr().

{
  if(cd->descr) {
    int l=len+cd->len;
    unsigned char *m=MALLOC(unsigned char,l);
    if(m) {
      if(!rev) {
        if(descr) memcpy(m,descr,len);
        memcpy(m+len,cd->descr,cd->len);
        }
      else {
        memcpy(m,cd->descr,cd->len);
        if(descr) memcpy(m+cd->len,descr,len);
        }
      Clear();
      descr=m; len=l;
      }
    }
}
bool cCaDescr::operator== ( const cCaDescr &  arg) const

Definition at line 793 of file cam.c.

{
  return len==cd.len && (len==0 || memcmp(descr,cd.descr,len)==0);
}
void cCaDescr::Set ( const cCaDescr *  d)

Definition at line 751 of file cam.c.

Referenced by sascCam::AddPrg(), cCam::AddPrg(), cCaDescr(), cScCamSlot::Process(), cEcmHandler::Process(), and cEcmHandler::SetPrg().

{
  Set(d->descr,d->len);
}
void cCaDescr::Set ( const unsigned char *  de,
int  l 
)

Definition at line 756 of file cam.c.

References Clear(), and MALLOC.

{
  Clear();
  if(l) {
    descr=MALLOC(unsigned char,l);
    if(descr) {
      memcpy(descr,de,l);
      len=l;
      }
    }
}
cString cCaDescr::ToString ( void  )

Definition at line 798 of file cam.c.

References AUTOARRAY, and i.

Referenced by cPrg::DumpCaDescr(), and cEcmHandler::Process().

{
  if(!descr) return "<empty>";
  char *str=AUTOARRAY(char,len*3+8);
  int q=sprintf(str,"%02X",descr[0]);
  for(int i=1; i<len; i++) q+=sprintf(str+q," %02X",descr[i]);
  return str;
}

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