diff --git a/data/Makefile.am b/data/Makefile.am index 7c4ddcd60..ebf86468f 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -1,4 +1,4 @@ SUBDIRS = fonts icons iso-codes lcd locale configdir = $(CONFIGDIR) -config_DATA = cables.xml satellites.xml +config_DATA = cables.xml satellites.xml encoding.conf diff --git a/data/encoding.conf b/data/encoding.conf new file mode 100644 index 000000000..3f09b5647 --- /dev/null +++ b/data/encoding.conf @@ -0,0 +1,60 @@ +#Fallback encoding when in dvb-text no encoding table is given +#Countycode ISO8859-X or ISO6397 +ara ISO8859-6 +tur ISO8859-9 +gre ISO8859-7 +pol ISO8859-2 +rus ISO8859-5 +bul ISO8859-5 +#Sorry for that.. in DVB Spec this is the default behavior +#when no other encoding is given in dvb-texts.. +#but this breaks too much providers yet.. +#so our default is ISO8859-1 without two char byte encoding +#So all transponders which needs this must be listed here +#TSID ONID +0x447 0x1 # Astra 19.2°E 12.304 H - UPC Direct +0x427 0x1 # Astra 19.2°E 10.920 H - UPC Direct +0x44b 0x1 # Astra 19.2°E 12.382 H - UPC Direct +0x4ff 0x1 # Astra 19.2°E 11.992 H - UPC Direct +0x407 0x1 # Astra 19.2°E 11.671 H - UPC Direct +0x436 0x1 # Astra 19.2°E 11.973 V - MTV Networks Europe +0x42a 0x1 # Astra 19.2°E 11.739 V - MTV Networks Europe +0xc23 0x3 # Astra 23.5°E 10.803 H - CS Link / SkyLink +0xc85 0x3 # Astra 23.5°E 11.797 H - CS Link / SkyLink +0xc89 0x3 # Astra 23.5°E 11.876 H - CS Link / SkyLink +0xc8f 0x3 # Astra 23.5°E 11.992 H - CS Link / SkyLink +0xc93 0x3 # Astra 23.5°E 12.070 H - CS Link / SkyLink +0xc95 0x3 # Astra 23.5°E 12.109 H - SkyLink +0xbc6 0x3 # Astra 23.5°E 12.525 V - CS Link / SkyLink +0xbc7 0x3 # Astra 23.5°E 12.565 H - SkyLink +400 318 #Hotbird 13.0 Cyfra+ +1000 318 #Hotbird 13.0 Grupa ITI +1500 318 #Hotbird 13.0 Cyfra+ +1600 318 #Hotbird 13.0 Cyfra+ +7400 113 #Hotbird 13.0 Cyfrowy Polsat +7800 113 #Hotbird 13.0 Cyfrowy Polsat +7900 113 #Hotbird 13.0 Cyfrowy Polsat +8100 113 #Hotbird 13.0 Universal (Cyfra+) +11000 318 #Hotbird 13.0 Cyfra+ +11400 318 #Hotbird 13.0 Cyfra+ +11900 318 #Hotbird 13.0 Cyfra+ +12200 318 #Hotbird 13.0 Disney Channel Polska and other +12800 318 #Hotbird 13.0 Viacom ... MTV / VH1 Polska +13000 318 #Hotbird 13.0 BBC Polska and other +13200 113 #Hotbird 13.0 Cyfrowy Polsat +#Fallback encoding table for single transponders +#ISO6397 also enables two byte char encoding +#TSID ONID ISO8859-X +12800 318 ISO6397 #Viacom ... MTV / VH1 Polska +21100 126 ISO8859-9 # Digital Platform 7°E 10.928 H 30.000 2/3 8PSK +41200 126 ISO8859-9 # Digital Platform 7°E 11.451 V 25.066 2/3 +50100 126 ISO8859-9 # Digital Platform 7°E 11.471 H 30.000 3/4 +50200 126 ISO8859-9 # Digital Platform 7°E 11.492 V 30.000 3/4 +50300 126 ISO8859-9 # Digital Platform 7°E 11.639 H 30.000 3/4 +50400 126 ISO8859-9 # Digital Platform 7°E 11.534 V 30.000 3/4 +50500 126 ISO8859-9 # Digital Platform 7°E 11.262 H 27.500 3/4 +50600 126 ISO8859-9 # Digital Platform 7°E 11.575 V and 42°E 11.729 V 15.555 5/6 +50700 126 ISO8859-9 # Digital Platform 7°E 11.596 H 30.000 3/4 +50800 126 ISO8859-9 # Digital Platform 7°E 11.678 H 30.000 3/4 +50900 126 ISO8859-9 # Digital Platform 7°E 11.513 H 27.500 3/4 +51000 126 ISO8859-9 # Digital Platform 7°E 11.617 V 30.000 3/4 diff --git a/src/neutrino_menue.cpp b/src/neutrino_menue.cpp index 9ce9321e1..f5708cedf 100644 --- a/src/neutrino_menue.cpp +++ b/src/neutrino_menue.cpp @@ -1062,7 +1062,7 @@ void CNeutrinoApp::InitScanSettings(CMenuWidget &settings) addMenueIntroItems(*satOnOff); for (sit = satellitePositions.begin(); sit != satellitePositions.end(); sit++) { - printf("Adding sat menu for %s position %d\n", sit->second.name.c_str(), sit->first); + /* printf("Adding sat menu for %s position %d\n", sit->second.name.c_str(), sit->first); */ satSelect->addOption(sit->second.name.c_str()); if (strcmp(scanSettings.satNameNoDiseqc,sit->second.name.c_str()) == 0) { diff --git a/src/sectionsd/SIevents.cpp b/src/sectionsd/SIevents.cpp index 85c572f7d..f759c3f47 100644 --- a/src/sectionsd/SIevents.cpp +++ b/src/sectionsd/SIevents.cpp @@ -218,11 +218,13 @@ std::string SIevent::getName() const void SIevent::setName(const std::string &lang, const std::string &name) { + std::string tmp = name; + std::replace(tmp.begin(), tmp.end(), '\n', ' '); //printf("setName: lang %s text %s\n", lang.c_str(), name.c_str()); if (CSectionsdClient::LANGUAGE_MODE_OFF == SIlanguage::getMode()){ - langName[languangeOFF] = name; + langName[languangeOFF] = tmp; //name; } else { - langName[lang] = name; + langName[lang] = tmp; //name; } } diff --git a/src/sectionsd/SIsections.cpp b/src/sectionsd/SIsections.cpp index 91188cf52..d299e4ceb 100644 --- a/src/sectionsd/SIsections.cpp +++ b/src/sectionsd/SIsections.cpp @@ -141,6 +141,8 @@ static int get_table(unsigned char hi, unsigned char mid, unsigned char lo) return 5; else if(!strcmp(lang, "bul")) return 5; + else if(!strcmp(lang, "ara")) + return 6; return 0; } diff --git a/src/zapit/src/getservices.cpp b/src/zapit/src/getservices.cpp index e8cc7828f..7b51a08f9 100644 --- a/src/zapit/src/getservices.cpp +++ b/src/zapit/src/getservices.cpp @@ -461,7 +461,7 @@ int LoadServices(fe_type_t frontendType, diseqc_t /*diseqcType*/, bool only_curr printf("[zapit] %d services loaded (%d)...\n", scnt, allchans.size()); TIMER_STOP("[zapit] service loading took"); - if(1) { //zapit_debug) {//FIXME + if(zapit_debug) {//FIXME sat_iterator_t sit; for(sit = satellitePositions.begin(); sit != satellitePositions.end(); sit++) printf("satelliteName = %s (%d), satellitePosition = %d motor position = %d usals %d\n", sit->second.name.c_str(), sit->second.name.size(), sit->first, sit->second.motor_position, sit->second.use_usals); diff --git a/src/zapit/src/pmt.cpp b/src/zapit/src/pmt.cpp index 713fd43bd..b041bde66 100644 --- a/src/zapit/src/pmt.cpp +++ b/src/zapit/src/pmt.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -37,6 +38,7 @@ #define RECORD_MODE 0x4 extern int currentMode; extern short scan_runs; + /* * Stream types * ------------ @@ -100,11 +102,21 @@ unsigned short parse_ES_info(const unsigned char * const buffer, CZapitChannel * case 0x09: esInfo->addCaDescriptor(buffer + pos); + descramble = true; break; case 0x0A: /* ISO_639_language_descriptor */ +#if 0 +printf("descr 0x0A: %02X %02X %02X\n", buffer[pos+2], buffer[pos+3], buffer[pos+4]); +#endif + /* FIXME cyfra+ radio -> 41 20 31 ?? */ + if (description != "" && buffer[pos + 3] == ' ') { + description += buffer[pos + 3]; + description += buffer[pos + 4]; + } else { for (i = 0; i < 3; i++) description += tolower(buffer[pos + i + 2]); + } break; case 0x13: /* Defined in ISO/IEC 13818-6 */ @@ -217,8 +229,17 @@ unsigned short parse_ES_info(const unsigned char * const buffer, CZapitChannel * break; case 0xC5: /* User Private descriptor - Canal+ Radio */ - for (i = 0; i < 24; i++) - description += buffer[pos + i + 3]; + //description = convertDVBUTF8((const char*)&buffer[pos+3], 24, 2, 1); + description = convertDVBUTF8((const char*)&buffer[pos+3], 24, 2, channel->getTransportStreamId() << 16 | channel->getOriginalNetworkId()); +#if 0 +printf("descr 0xC5\n"); + for (i = 0; i < 24; i++) { +printf("%02X ", buffer[pos + i]); + //description += buffer[pos + i + 3]; + } +printf("\n"); +printf("[pmt] name %s\n", description.c_str()); +#endif break; case 0xC6: /* unknown, Astra 19.2E */