Changeset 3205
- Timestamp:
- 09/24/10 03:08:53 (14 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/globals.h
r3197 r3205 650 650 int typ; 651 651 int card_system; 652 const char * card_desc;653 int card_baseyear;654 int card_system_version;655 652 char label[32]; 656 653 char device[128]; … … 804 801 // variables from reader-videoguard* 805 802 int ndsversion; // 0 auto (default), 1 NDS1, 12 NDS1+, 2 NDS2 803 const char * card_desc; 804 int card_baseyear; 805 int card_tierstart; 806 int card_system_version; 806 807 struct s_CmdTab *cmd_table; 807 808 unsigned short cardkeys[3][32]; -
trunk/reader-videoguard-common.c
r3204 r3205 11 11 /* Set to sensible default values */ 12 12 reader->card_baseyear = 1997; 13 reader->card_tierstart = 0; 13 14 reader->card_system_version = NDSUNKNOWN; 14 15 reader->card_desc = "VideoGuard Unknown Card"; 15 16 16 NDS_ATR_ENTRY nds_atr_table[]={ // {atr}, atr len, base year, nds version, description17 NDS_ATR_ENTRY nds_atr_table[]={ // {atr}, atr len, base year, tier start, nds version, description 17 18 /* known NDS1 atrs */ 18 19 {{ 0x3F, 0x78, 0x13, 0x25, 0x04, 0x40, 0xB0, 0x09, 0x4A, 0x50, 0x01, 0x4E, 0x5A }, 19 13, 1992, NDS1, "VideoGuard Sky New Zealand (0969)"},20 13, 1992, 0, NDS1, "VideoGuard Sky New Zealand (0969)"}, 20 21 /* known NDS1+ atrs */ 21 22 {{ 0x3F, 0x78, 0x13, 0x25, 0x03, 0x40, 0xB0, 0x20, 0xFF, 0xFF, 0x4A, 0x50, 0x00 }, 22 13, 1997, NDS12, "VideoGuard DirecTV"},23 13, 1997, 0, NDS12, "VideoGuard DirecTV"}, 23 24 /* known NDS2 atrs */ 24 25 {{ 0x3F, 0xFD, 0x13, 0x25, 0x02, 0x50, 0x80, 0x0F, 0x33, 0xB0, 0x08, 0xFF, 0xFF, 0x4A, 0x50, 0x90, 25 26 0x00, 0x00, 0x47, 0x4C, 0x01 }, 26 21, 2004, NDS2, "VideoGuard Sky Brasil GL39 (0907)"},27 21, 2004, 0, NDS2, "VideoGuard Sky Brasil GL39 (0907)"}, 27 28 {{ 0x3F, 0x7F, 0x11, 0x25, 0x03, 0x33, 0xB0, 0x09, 0x69, 0xFF, 0x4A, 0x50, 0x70, 0x00, 0x00, 0x46, 28 29 0x44, 0x01, 0x00, 0x00 }, 29 20, 2000, NDS2, "VideoGuard Foxtel Australia (090B)"},30 20, 2000, 0, NDS2, "VideoGuard Foxtel Australia (090B)"}, 30 31 {{ 0x3F, 0xFF, 0x13, 0x25, 0x03, 0x10, 0x80, 0x33, 0xB0, 0x0E, 0x69, 0xFF, 0x4A, 0x50, 0x70, 0x00, 31 32 0x00, 0x49, 0x54, 0x02, 0x00, 0x00 }, 32 22, 1997, NDS2, "VideoGuard Sky Italia (0919)"},33 22, 1997, 0, NDS2, "VideoGuard Sky Italia (0919)"}, 33 34 {{ 0x3F, 0xFF, 0x14, 0x25, 0x03, 0x10, 0x80, 0x41, 0xB0, 0x01, 0x69, 0xFF, 0x4A, 0x50, 0x70, 0x00, 34 35 0x00, 0x5A, 0x4A, 0x01, 0x00, 0x00 }, 35 22, 2004, NDS2, "VideoGuard Dolce Romania (092F)"},36 22, 2004, 0, NDS2, "VideoGuard Dolce Romania (092F)"}, 36 37 {{ 0x3F, 0xFF, 0x13, 0x25, 0x03, 0x10, 0x80, 0x54, 0xB0, 0x01, 0x69, 0xFF, 0x4A, 0x50, 0x70, 0x00, 37 38 0x00, 0x41, 0x55, 0x01, 0x00, 0x00 }, 38 22, 1997, NDS2, "VideoGuard OnoCable Espana (093A)"},39 22, 1997, 0, NDS2, "VideoGuard OnoCable Espana (093A)"}, 39 40 {{ 0x3F, 0xFD, 0x13, 0x25, 0x02, 0x50, 0x80, 0x0F, 0x33, 0xB0, 0x13, 0x69, 0xFF, 0x4A, 0x50, 0xD0, 40 41 0x80, 0x00, 0x49, 0x54, 0x03 }, 41 21, 1997, NDS2, "VideoGuard Sky Italia (093B)"},42 21, 1997, 0, NDS2, "VideoGuard Sky Italia (093B)"}, 42 43 {{ 0x3F, 0x7D, 0x11, 0x25, 0x02, 0x41, 0xB0, 0x03, 0x69, 0xFF, 0x4A, 0x50, 0xF0, 0x80, 0x00, 0x56, 43 44 0x54, 0x03 }, 44 18, 2000, NDS2, "VideoGuard Viasat (093E)"},45 18, 2000, 0, NDS2, "VideoGuard Viasat (093E)"}, 45 46 {{ 0x3F, 0xFF, 0x13, 0x25, 0x02, 0x40, 0xB0, 0x12, 0x69, 0xFF, 0x4A, 0x50, 0x90, 0x47, 0x4C, 0x00, 46 47 0x00, 0x00, 0x00, 0x00 }, 47 20, 2000, NDS2, "VideoGuard Sky Brasil GL23 (0942)"},48 20, 2000, 0, NDS2, "VideoGuard Sky Brasil GL23 (0942)"}, 48 49 {{ 0x3F, 0xFF, 0x13, 0x25, 0x02, 0x50, 0x80, 0x0F, 0x54, 0xB0, 0x03, 0xFF, 0xFF, 0x4A, 0x50, 0x80, 49 50 0x00, 0x00, 0x00, 0x00, 0x47, 0x4C, 0x05 }, 50 23, 2009, NDS2, "VideoGuard Sky Brasil GL54 (0943)"},51 23, 2009, 0, NDS2, "VideoGuard Sky Brasil GL54 (0943)"}, 51 52 {{ 0x3F, 0xFD, 0x13, 0x25, 0x02, 0x50, 0x00, 0x0F, 0x33, 0xB0, 0x0F, 0x69, 0xFF, 0x4A, 0x50, 0xD0, 52 53 0x00, 0x00, 0x53, 0x59, 0x02 }, 53 21, 1997, NDS2, "VideoGuard BSkyB (0963)"},54 21, 1997, 0, NDS2, "VideoGuard BSkyB (0963)"}, 54 55 {{ 0x3F, 0xFF, 0x13, 0x25, 0x03, 0x10, 0x80, 0x33, 0xB0, 0x10, 0x69, 0xFF, 0x4A, 0x50, 0x70, 0x00, 55 56 0x00, 0x4E, 0x5A, 0x01, 0x00, 0x00 }, 56 22, 1992, NDS2, "VideoGuard Sky New Zealand (096A)"},57 22, 1992, 0, NDS2, "VideoGuard Sky New Zealand (096A)"}, 57 58 {{ 0x3F, 0x7F, 0x13, 0x25, 0x04, 0x33, 0xB0, 0x02, 0x69, 0xFF, 0x4A, 0x50, 0xE0, 0x00, 0x00, 0x54, 58 59 0x42, 0x00, 0x00, 0x00 }, 59 20, 1997, NDS2, "VideoGuard China (0988)"},60 20, 1997, 0, NDS2, "VideoGuard China (0988)"}, 60 61 {{ 0x3F, 0xFF, 0x11, 0x25, 0x03, 0x10, 0x80, 0x41, 0xB0, 0x06, 0x69, 0xFF, 0x4A, 0x50, 0x70, 0x00, 61 62 0x00, 0x41, 0x5A, 0x01, 0x00, 0x11 }, 62 22, 200 6, NDS2, "VideoGuard Astro Malaysia (09AC)"},63 22, 2004, -1, NDS2, "VideoGuard Astro Malaysia (09AC)"}, 63 64 {{ 0x3F, 0xFF, 0x14, 0x25, 0x03, 0x10, 0x80, 0x41, 0xB0, 0x02, 0x69, 0xFF, 0x4A, 0x50, 0x70, 0x80, 64 65 0x00, 0x58, 0x38, 0x01, 0x00, 0x14 }, 65 22, 1997, NDS2, "VideoGuard TopTV (09B8)"},66 22, 1997, 0, NDS2, "VideoGuard TopTV (09B8)"}, 66 67 {{ 0x3F, 0xFD, 0x13, 0x25, 0x02, 0x50, 0x80, 0x0F, 0x54, 0xB0, 0x04, 0x69, 0xFF, 0x4A, 0x50, 0xD0, 67 68 0x80, 0x00, 0x49, 0x54, 0x03 }, 68 21, 1997, NDS2, "VideoGuard Sky Italia (09CD)"},69 21, 1997, 0, NDS2, "VideoGuard Sky Italia (09CD)"}, 69 70 {{ 0x3F, 0xFF, 0x13, 0x25, 0x03, 0x10, 0x80, 0x33, 0xB0, 0x11, 0x69, 0xFF, 0x4A, 0x50, 0x50, 0x00, 70 71 0x00, 0x47, 0x54, 0x01, 0x00, 0x00 }, 71 22, 1997, NDS2, "VideoGuard YES DBS Israel"},72 22, 1997, 0, NDS2, "VideoGuard YES DBS Israel"}, 72 73 {{ 0x3F, 0x7F, 0x11, 0x25, 0x03, 0x33, 0xB0, 0x09, 0x69, 0xFF, 0x4A, 0x50, 0x70, 0x00, 0x00, 0x56, 73 74 0x54, 0x01, 0x00, 0x00 }, 74 20, 2000, NDS2, "VideoGuard Viasat Scandinavia"},75 20, 2000, 0, NDS2, "VideoGuard Viasat Scandinavia"}, 75 76 {{ 0x3F, 0xFF, 0x11, 0x25, 0x03, 0x10, 0x80, 0x41, 0xB0, 0x07, 0x69, 0xFF, 0x4A, 0x50, 0x70, 0x00, 76 77 0x00, 0x50, 0x31, 0x01, 0x00, 0x11 }, 77 22, 1997, NDS2, "VideoGuard Sky Germany"},78 22, 1997, 0, NDS2, "VideoGuard Sky Germany"}, 78 79 {{ 0x3F, 0xFF, 0x14, 0x25, 0x03, 0x10, 0x80, 0x41, 0xB0, 0x01, 0x69, 0xFF, 0x4A, 0x50, 0x70, 0x00, 79 80 0x00, 0x5A, 0x48, 0x01, 0x00, 0x00 }, 80 22, 2004, NDS2, "VideoGuard DSMART Turkey"},81 22, 2004, 0, NDS2, "VideoGuard DSMART Turkey"}, 81 82 {{ 0x3F, 0xFF, 0x14, 0x25, 0x03, 0x10, 0x80, 0x54, 0xB0, 0x01, 0x69, 0xFF, 0x4A, 0x50, 0x70, 0x00, 82 83 0x00, 0x4B, 0x57, 0x01, 0x00, 0x00 }, 83 22, 1997, NDS2, "VideoGuard Kabel BW"},84 22, 1997, 0, NDS2, "VideoGuard Kabel BW"}, 84 85 {{ 0x3F, 0xFF, 0x14, 0x25, 0x03, 0x10, 0x80, 0x33, 0xB0, 0x10, 0x69, 0xFF, 0x4A, 0x50, 0x70, 0x00, 85 86 0x00, 0x5A, 0x45, 0x01, 0x00, 0x00 }, 86 22 , 2004, NDS2, "VideoGuard Get Kabel Norway"},87 22 , 2004, 0, NDS2, "VideoGuard Get Kabel Norway"}, 87 88 // NDS Version Unknown as Yet 88 89 {{ 0x3F, 0x7F, 0x13, 0x25, 0x02, 0x40, 0xB0, 0x12, 0x69, 0xFF, 0x4A, 0x50, 0x90, 0x41, 0x55, 0x00, 89 90 0x00, 0x00, 0x00, 0x00 }, 90 20, 1997, NDSUNKNOWN, "VideoGuard OnoCable Espana (0915)"},91 20, 1997, 0, NDSUNKNOWN, "VideoGuard OnoCable Espana (0915)"}, 91 92 {{ 0x3F, 0xFF, 0x14, 0x25, 0x03, 0x10, 0x80, 0x41, 0xB0, 0x07, 0x69, 0xFF, 0x4A, 0x50, 0x70, 0x80, 92 93 0x00, 0x58, 0x44, 0x01, 0x00, 0x14 }, 93 22, 1997, NDSUNKNOWN, "VideoGuard Sky Vivacom (09BD)"}, //45E94 {{ 0 }, 0, 0, 0, NULL}94 22, 1997, 0, NDSUNKNOWN, "VideoGuard Sky Vivacom (09BD)"}, //45E 95 {{ 0 }, 0, 0, 0, 0, NULL} 95 96 }; 96 97 … … 100 101 && (memcmp (reader->atr, nds_atr_table[i].atr, nds_atr_table[i].atr_len) == 0)) { 101 102 reader->card_baseyear=nds_atr_table[i].base_year; 103 reader->card_tierstart=nds_atr_table[i].tier_start; 102 104 reader->card_system_version = nds_atr_table[i].nds_version; 103 105 reader->card_desc = nds_atr_table[i].desc; -
trunk/reader-videoguard-common.h
r3196 r3205 27 27 ushort atr_len; 28 28 int base_year; 29 int tier_start; 29 30 int nds_version; 30 31 const char *desc; -
trunk/reader-videoguard2.c
r3204 r3205 34 34 memset(reader->init_history, 0, sizeof(reader->init_history)); 35 35 #endif 36 int mblank = 0; 37 int cblank = 0; 38 for(i=0; i<num; i++) { 36 // some cards start real tiers info in middle of tier info 37 // and have blank tiers between old tiers and real tiers eg 09AC 38 int starttier; 39 bool stopemptytier = TRUE; 40 if((starttier = reader->card_tierstart) == -1){ 41 stopemptytier = FALSE; 42 starttier = 0; 43 } 44 // check to see if specified start tier is blank and if so start at 0 and ignore blank tiers 45 ins76[2]=starttier; 46 l=do_cmd(reader,ins76,NULL,NULL,NULL,cta_res); 47 if(l<0 || !status_ok(cta_res+l)) return; 48 if(cta_res[2]==0 && cta_res[3]==0 ){ 49 stopemptytier = FALSE; 50 starttier = 0; 51 } 52 for(i=starttier; i<num; i++) { 39 53 ins76[2]=i; 40 54 l=do_cmd(reader,ins76,NULL,NULL,NULL,cta_res); 41 55 if(l<0 || !status_ok(cta_res+l)) return; 56 if(cta_res[2]==0 && cta_res[3]==0 && stopemptytier) return; 42 57 if(cta_res[2]!=0 || cta_res[3]!=0) { 43 if(cblank > mblank) mblank = cblank;44 cblank = 0;45 58 int y,m,d,H,M,S; 46 59 rev_date_calc(&cta_res[4],&y,&m,&d,&H,&M,&S,reader->card_baseyear); 47 60 unsigned short tier_id = (cta_res[2] << 8) | cta_res[3]; 48 61 char *tier_name = get_tiername(tier_id, reader->caid[0]); 62 if((starttier = reader->card_tierstart) == -1){ 63 cs_ri_log(reader, "[videoguard2-reader] tier-number: 0x%02x, tier: %04x",i,tier_id); 64 } 49 65 cs_ri_log(reader, "[videoguard2-reader] tier: %04x, expiry date: %04d/%02d/%02d-%02d:%02d:%02d %s",tier_id,y,m,d,H,M,S,tier_name); 50 } else { 51 if (reader->caid[0]!=0x09AC) break; 52 cblank +=1; 53 } 54 } 55 if (mblank>0) cs_ri_log(reader,"[videoguard2-reader] maximum blank tiers = %i", mblank ); 66 } 67 } 56 68 } 57 69
Note:
See TracChangeset
for help on using the changeset viewer.