#include <parse.h>
List of all members.
Detailed Description
Definition at line 184 of file parse.h.
Constructor & Destructor Documentation
| cProviderViaccess::cProviderViaccess |
( |
void |
| ) |
|
Definition at line 331 of file parse.c.
{
sharedEmm=0; sharedLen=sharedToggle=0;
}
| cProviderViaccess::cProviderViaccess |
( |
const unsigned char * |
id, |
|
|
const unsigned char * |
s |
|
) |
| |
Definition at line 336 of file parse.c.
References ident, and sa.
{
sharedEmm=0; sharedLen=sharedToggle=0;
memcpy(ident,id,sizeof(ident));
ident[2]&=0xf0;
memcpy(sa,s,sizeof(sa));
}
| cProviderViaccess::~cProviderViaccess |
( |
| ) |
[virtual] |
| cProviderViaccess::cProviderViaccess |
( |
void |
| ) |
|
| cProviderViaccess::cProviderViaccess |
( |
const unsigned char * |
id, |
|
|
const unsigned char * |
s |
|
) |
| |
| virtual cProviderViaccess::~cProviderViaccess |
( |
| ) |
[virtual] |
Member Function Documentation
Reimplemented from cProvider.
Definition at line 385 of file parse.c.
References AUTOMEM, cAssembleData::Data(), data, free, cParseViaccess::NanoStart(), SCT_LEN, cAssembleData::SetAssembled(), SetSctLen(), and SortNanos().
{
const unsigned char *data=ad->Data();
int len=SCT_LEN(data);
switch(data[0]) {
case 0x8C:
case 0x8D:
if(data[0]!=sharedToggle) {
free(sharedEmm);
sharedLen=len;
sharedEmm=(unsigned char *)malloc(len);
if(sharedEmm) memcpy(sharedEmm,data,sharedLen);
sharedToggle=data[0];
}
break;
case 0x8E:
if(sharedEmm) {
unsigned char *tmp=AUTOMEM(len+sharedLen);
unsigned char *ass=(unsigned char *)cParseViaccess::NanoStart(data);
len-=(ass-data);
if((data[6]&2)==0) {
const int addrlen=len-8;
len=0;
tmp[len++]=0x9e;
tmp[len++]=addrlen;
memcpy(&tmp[len],&ass[0],addrlen); len+=addrlen;
tmp[len++]=0xf0;
tmp[len++]=0x08;
memcpy(&tmp[len],&ass[addrlen],8); len+=8;
}
else {
memcpy(tmp,ass,len);
}
ass=(unsigned char *)cParseViaccess::NanoStart(sharedEmm);
int l=sharedLen-(ass-sharedEmm);
memcpy(&tmp[len],ass,l); len+=l;
ass=(unsigned char *)malloc(len+7);
if(ass) {
memcpy(ass,data,7);
SortNanos(ass+7,tmp,len);
SetSctLen(ass,len+4);
ad->SetAssembled(ass);
return 1;
}
}
break;
}
return -1;
}
| virtual int cProviderViaccess::Assemble |
( |
cAssembleData * |
ad | ) |
[virtual] |
| bool cProviderViaccess::MatchEMM |
( |
const unsigned char * |
data | ) |
[virtual] |
| virtual bool cProviderViaccess::MatchEMM |
( |
const unsigned char * |
data | ) |
[virtual] |
| bool cProviderViaccess::MatchID |
( |
const unsigned char * |
data | ) |
[virtual] |
| virtual bool cProviderViaccess::MatchID |
( |
const unsigned char * |
data | ) |
[virtual] |
| virtual unsigned long long cProviderViaccess::ProvId |
( |
void |
| ) |
[virtual] |
| unsigned long long cProviderViaccess::ProvId |
( |
void |
| ) |
[virtual] |
| int cProviderViaccess::UpdateType |
( |
const unsigned char * |
data | ) |
[virtual] |
Reimplemented from cProvider.
Definition at line 375 of file parse.c.
{
switch(data[0]) {
case 0x8e: return 2;
case 0x8c:
case 0x8d:
default: return 0;
}
}
| virtual int cProviderViaccess::UpdateType |
( |
const unsigned char * |
data | ) |
[virtual] |
Member Data Documentation
The documentation for this class was generated from the following files: