|
SASC
DVBSoftCAM
|
Inheritance diagram for cShares:Public Member Functions | |
| int | GetShares (const cEcmInfo *ecm, cShares *ss) |
| void | SetLag (int shareid, int lag) |
| bool | HasCaid (int caid) |
| int | GetShares (const cEcmInfo *ecm, cShares *ss) |
| void | SetLag (int shareid, int lag) |
| bool | HasCaid (int caid) |
Definition at line 528 of file cccam2.c.
References cSimpleListBase::Add(), cEcmInfo::caId, cSimpleListBase::Clear(), cSimpleListBase::Count(), cEcmShares::FindStatus(), cSimpleList< cShare >::First(), cSimpleList< T >::First(), cSimpleListBase::Ins(), cRwLock::Lock(), cSimpleList< cShare >::Next(), cSimpleList< T >::Next(), cEcmInfo::provId, and cRwLock::Unlock().
Referenced by cCardClientCCcam2::ProcessECM().
{
Lock(true);
Clear();
ss->Lock(false);
for(cShare *s=ss->First(); s; s=ss->Next(s)) {
if(((s->caid==ecm->caId && (!s->UsesProv() || s->HasProv(ecm->provId))) ||
(s->shareid<64 && s->caid==(ecm->caId&0xFF00))) &&
!Find(s->shareid)) {
cShare *n=new cShare(s);
n->status=ecmshares.FindStatus(ecm,n->shareid);
// keep the list sorted
cShare *l=0;
for(cShare *t=First(); t; t=Next(t)) {
if(t->Compare(n)) {
if(l) Add(n,l); else Ins(n);
n=0; break;
}
l=t;
}
if(n) Add(n);
}
}
ss->Unlock();
Unlock();
return Count();
}
| bool cShares::HasCaid | ( | int | caid | ) |
| bool cShares::HasCaid | ( | int | caid | ) |
Definition at line 521 of file cccam2.c.
References caid, cSimpleList< cShare >::First(), and cSimpleList< cShare >::Next().
| void cShares::SetLag | ( | int | shareid, |
| int | lag | ||
| ) |
Definition at line 509 of file cccam2.c.
References cRwLock::Lock(), MAXLAG, min(), STDLAG, and cRwLock::Unlock().
Referenced by cCardClientCCcam2::ProcessECM().
| void cShares::SetLag | ( | int | shareid, |
| int | lag | ||
| ) |