Changeset 4875 for trunk/reader-dre.c


Ignore:
Timestamp:
Apr 1, 2011, 4:26:29 PM (9 years ago)
Author:
neoen
Message:

EMM filters for DVBAPI activated only if EMMs are not blocked or EMMs are included in savenano parameter

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/reader-dre.c

    r4692 r4875  
    355355void dre_get_emm_filter(struct s_reader * rdr, uchar *filter)
    356356{
     357    int idx = 2;
     358
    357359    filter[0]=0xFF;
    358     filter[1]=3;
    359 
    360     filter[2]=GLOBAL;
    361     filter[3]=1; //not active
    362 
    363     //FIXME: Dont now how to filter GLOBAL EMM's
    364     filter[4+0]    = 0xFF; //dummy
    365     filter[4+0+16] = 0xFF;
    366 
    367 
    368     filter[36]=SHARED;
    369     filter[37]=0;
    370 
    371     filter[38+0]    = 0x89;
    372     filter[38+0+16] = 0xFF;
    373     // FIXME: Seems to be that SA is only used with caid 0x4ae1
    374     if (rdr->caid == 0x4ae1) {
    375         memcpy(filter+38+1, &rdr->sa[0][0], 4);
    376         memset(filter+38+1+16, 0xFF, 4);
     360    filter[1]=0;
     361
     362    if ((!rdr->blockemm_g && !(rdr->b_nano[0xFF] & 0x01)) || (rdr->b_nano[0xFF] & 0x02)) // not blocked or to be saved
     363    {
     364        filter[idx++]=GLOBAL;
     365        filter[idx++]=1; //not active
     366        //FIXME: Dont now how to filter GLOBAL EMM's
     367        filter[idx+0]    = 0xFF; //dummy
     368        filter[idx+0+16] = 0xFF;
     369        ++filter[1];
     370        idx += 32;
    377371    }
    378372
    379 
    380     //FIXME: No filter for hexserial
    381     filter[70]=UNIQUE;
    382     filter[71]=0;
    383 
    384     filter[72+0]    = 0x87;
    385        filter[72+0+16] = 0xFF;
     373    if ((!rdr->blockemm_s && !(rdr->b_nano[0x89] & 0x01)) || (rdr->b_nano[0x89] & 0x02)) // not blocked or to be saved
     374    {
     375        filter[idx++]=SHARED;
     376        filter[idx++]=0;
     377        filter[idx+0]    = 0x89;
     378        filter[idx+0+16] = 0xFF;
     379        // FIXME: Seems to be that SA is only used with caid 0x4ae1
     380        if (rdr->caid == 0x4ae1) {
     381            memcpy(filter+idx+1, &rdr->sa[0][0], 4);
     382            memset(filter+idx+1+16, 0xFF, 4);
     383        }
     384        ++filter[1];
     385        idx += 32;
     386    }
     387
     388    if ((!rdr->blockemm_u && !(rdr->b_nano[0x87] & 0x01)) || (rdr->b_nano[0x87] & 0x02)) // not blocked or to be saved
     389    {
     390        filter[70]=UNIQUE;
     391        filter[71]=0;
     392        filter[72+0]    = 0x87;
     393        filter[72+0+16] = 0xFF;
     394        //FIXME: No filter for hexserial
     395        ++filter[1];
     396        idx += 32;
     397    }
    386398   
    387399    return;
Note: See TracChangeset for help on using the changeset viewer.