diff -r -u text2skin/display.c text2skin-new/display.c --- text2skin/display.c 2009-10-02 18:21:25.000000000 +0200 +++ text2skin-new/display.c 2009-10-02 18:23:39.000000000 +0200 @@ -113,6 +113,48 @@ UpdateUnlock(); } +int cText2SkinDisplayChannel::GetCryptedSystem(int system) +{ + int match = 0; + for (int i=0; mChannel->Ca(i) != 0 ; i++) { + + int sysNr = 0; + const char *sysName = NULL; + + switch (mChannel->Ca(i)) { + case 0x0000: /* Free-To-Air */ sysNr = 0; sysName="Free"; break; + case 0x0001 ... 0x000F: /* Reserved */ break; + case 0x0100 ... 0x01FF: /* Canal Plus */ sysNr = 1; sysName="Seca"; break;; + case 0x0500 ... 0x05FF: /* France Telecom */ sysNr = 2; sysName="Viaccess"; break; + case 0x0600 ... 0x06FF: /* Irdeto */ sysNr = 3; sysName="Irdeto"; break; + case 0x0900 ... 0x09FF: /* News Datacom */ sysNr = 4; sysName="NDS"; break; + case 0x0B00 ... 0x0BFF: /* Norwegian Telekom */ sysNr = 5; sysName="Conax"; break; + case 0x0D00 ... 0x0DFF: /* Philips */ sysNr = 6; sysName="Cryptoworks"; break; + case 0x1700 ... 0x17FF: /* BetaTechnik */ sysNr = 7; sysName="Betacrypt"; break; + case 0x1200 ... 0x12FF: /* BellVu Express */ sysNr = 8; sysName="Nagravision"; break; + case 0x1800 ... 0x18FF: /* Kudelski SA */ sysNr = 8; sysName="Nagravision"; break; + case 0x2600 : /* EBU */ sysNr = 9; sysName="Biss"; break; +// case 0x0E00 ... 0x0EFF: /* Scientific Atlanta */ sysNr = 10; break; //"Powervu" +// case 0x2200 ... 0x22FF: /* Scopus */ sysNr = 11; break; //"CodiCrypt" +// case 0x4A20 ... 0x4A2F: /* AlphaCrypt */ sysNr = 13; break; //"AlphaCrypt" +// case 0x4A60 ... 0x4A6F: /* @Sky */ sysNr = 14; break; //"Skycrypt" +// case 0x4A70 ... 0x4A7F: /* Dreamcrypt */ sysNr = 15; break; //"DreamCrypt" +// case 0x4A80 ... 0x4A8F: /* THALESCrypt */ sysNr = 16; break; //"ThalesCrypt" +// case 0x4AA0 ... 0x4AAF: /* SIDSA */ sysNr = 17; break; //"KeyFly" +// case 0x4AD0 ... 0x4AD1: /* XCrypt Inc */ sysNr = 18; break; //"XCrypt" +// case 0x4AE0 ... 0x4AE1: /* Digi Raum Electronics */ cryptSys = 19; break; //"DRE-Crypt" + } + + if ( sysNr == system ){ +// isyslog("BEXLOG -> CRYPTSYSTEM MATCHED! cryptsystem = %s ", sysName); + match= 1; + break; + } + } + return match; + +} + cxType cText2SkinDisplayChannel::GetTokenData(const txToken &Token) { switch (Token.Type) { @@ -262,6 +304,44 @@ case tChannelIsEncrypted: return mChannel != NULL && mChannel->Ca() != 0; + // encrypted systems + + case tIsEncSeca: + case tChannelIsEncSeca: + return mChannel != NULL && GetCryptedSystem(1); + + case tIsEncVia: + case tChannelIsEncVia: + return mChannel != NULL && GetCryptedSystem(2); + + case tIsEncIrdeto: + case tChannelIsEncIrdeto: + return mChannel != NULL && GetCryptedSystem(3); + + case tIsEncNds: + case tChannelIsEncNds: + return mChannel != NULL && GetCryptedSystem(4); + + case tIsEncConax: + case tChannelIsEncConax: + return mChannel != NULL && GetCryptedSystem(5); + + case tIsEncCrypto: + case tChannelIsEncCrypto: + return mChannel != NULL && GetCryptedSystem(6); + + case tIsEncBeta: + case tChannelIsEncBeta: + return mChannel != NULL && GetCryptedSystem(7); + + case tIsEncNagra: + case tChannelIsEncNagra: + return mChannel != NULL && GetCryptedSystem(8); + + case tIsEncBiss: + case tChannelIsEncBiss: + return mChannel != NULL && GetCryptedSystem(9); + case tIsRadio: case tChannelIsRadio: return mChannel != NULL && ISRADIO(mChannel); diff -r -u text2skin/display.h text2skin-new/display.h --- text2skin/display.h 2009-10-02 18:21:25.000000000 +0200 +++ text2skin-new/display.h 2009-10-02 18:26:43.000000000 +0200 @@ -30,6 +30,8 @@ std::string mButtonYellow; std::string mButtonBlue; + int GetCryptedSystem(int system); + protected: virtual cxType GetTokenData(const txToken &Token); diff -r -u text2skin/xml/string.c text2skin-new/xml/string.c --- text2skin/xml/string.c 2009-10-02 18:21:25.000000000 +0200 +++ text2skin-new/xml/string.c 2009-10-02 18:25:36.000000000 +0200 @@ -21,7 +21,11 @@ "FollowingVPSDateTime", "FollowingEndDateTime", "FollowingDuration", "FollowingTitle", "FollowingShortText", "FollowingDescription", "Language", "HasTeletext", "ChannelHasTeletext", "HasMultilang", "ChannelHasMultilang", "HasDolby", - "ChannelHasDolby", "IsEncrypted", "ChannelIsEncrypted", "IsRadio", "ChannelIsRadio", + "ChannelHasDolby", "IsEncrypted", "ChannelIsEncrypted", + "IsEncSeca","ChannelIsEncSeca", "IsEncVia", "ChannelIsEncVia", "IsEncIrdeto", "ChannelIsEncIrdeto", + "IsEncNds", "ChannelIsEncNds", "IsEncConax", "ChannelIsEncConax", "IsEncCrypto", "ChannelIsEncCrypto", + "IsEncBeta", "ChannelIsEncBeta", "IsEncNagra", "ChannelIsEncNagra", "IsEncBiss", "ChannelIsEncBiss", + "IsRadio", "ChannelIsRadio", "IsRecording", "CurrentRecording", "HasVPS", "HasTimer", "IsRunning", "ChannelHasVPS", "PresentHasTimer", "PresentIsRunning", "PresentHasVPS", "FollowingHasTimer", "FollowingIsRunning", "FollowingHasVPS", diff -r -u text2skin/xml/string.h text2skin-new/xml/string.h --- text2skin/xml/string.h 2009-10-02 18:21:25.000000000 +0200 +++ text2skin-new/xml/string.h 2009-10-02 14:34:29.000000000 +0200 @@ -72,6 +72,25 @@ tChannelHasDolby, // alias tIsEncrypted, tChannelIsEncrypted, // alias + // encrypted systems + tIsEncSeca, + tChannelIsEncSeca, // alias + tIsEncVia, + tChannelIsEncVia, // alias + tIsEncIrdeto, + tChannelIsEncIrdeto, // alias + tIsEncNds, + tChannelIsEncNds, // alias + tIsEncConax, + tChannelIsEncConax, // alias + tIsEncCrypto, + tChannelIsEncCrypto, // alias + tIsEncBeta, + tChannelIsEncBeta, // alias + tIsEncNagra, + tChannelIsEncNagra, // alias + tIsEncBiss, + tChannelIsEncBiss, // alias tIsRadio, tChannelIsRadio, // alias // next 2 also in all other displays