From e5faac1bf27f58d98d5f28fdfbf1b236c0a3d507 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Wed, 8 Feb 2012 18:18:58 +0400 Subject: [PATCH] eitd/edvbstring.cpp: add getCountryCodeDefaultMapping Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/68200158e4f6805b6e4d257f5f30af63bd3a909a Author: [CST] Focus Date: 2012-02-08 (Wed, 08 Feb 2012) --- src/eitd/edvbstring.cpp | 13 +++++++++++++ src/eitd/edvbstring.h | 2 ++ 2 files changed, 15 insertions(+) diff --git a/src/eitd/edvbstring.cpp b/src/eitd/edvbstring.cpp index 8226043da..48b621a9f 100644 --- a/src/eitd/edvbstring.cpp +++ b/src/eitd/edvbstring.cpp @@ -31,6 +31,10 @@ int readEncodingFile() else if ( (sscanf( line, "0x%x 0x%x ISO%d", &tsid, &onid, &encoding ) == 3 && encoding == 6937 ) ||(sscanf( line, "%d %d ISO%d", &tsid, &onid, &encoding ) == 3 && encoding == 6937 ) ) TransponderDefaultMapping[(tsid<<16)|onid]=64; +#if 0 // FIXME crash at stop if compiled with -g -ggb3 ??? + else if ( sscanf( line, "%s ISO%d", countrycode, &encoding ) == 2 && encoding == 6937 ) + CountryCodeDefaultMapping[countrycode] = 64; +#endif else if ( (sscanf( line, "0x%x 0x%x", &tsid, &onid ) == 2 ) ||(sscanf( line, "%d %d", &tsid, &onid ) == 2 ) ) TransponderUseTwoCharMapping.insert((tsid<<16)|onid); @@ -41,6 +45,15 @@ int readEncodingFile() return -1; } +int getCountryCodeDefaultMapping( const std::string &lang ) +{ + std::map::iterator it = + CountryCodeDefaultMapping.find(lang); + if ( it != CountryCodeDefaultMapping.end() ) + return it->second; + return 1; // ISO8859-1 / Latin1 +} + // 8859-x to ucs-16 coding tables. taken from www.unicode.org/Public/MAPPINGS/ISO8859/ static unsigned long c88592[96]= { diff --git a/src/eitd/edvbstring.h b/src/eitd/edvbstring.h index 0554adb9c..886e96b70 100644 --- a/src/eitd/edvbstring.h +++ b/src/eitd/edvbstring.h @@ -11,4 +11,6 @@ inline std::string stringDVBUTF8(const std::string &string, int table=0, int tsi return convertDVBUTF8((const char*)string.c_str(), string.length(), table, tsidonid); } +int getCountryCodeDefaultMapping( const std::string &lang ); + #endif // __E_STRING__