diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2005-11-26 19:01:11 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2005-11-26 19:01:11 +0000 |
| commit | f94e2c9821eb8784ca03b7122485d4720ec6d6e6 (patch) | |
| tree | 6da2323d2220093ea1c3756dbddb8e02fded2969 /lib/base/estring.cpp | |
| parent | 68271eeaf83872270f13cc01e98960367d7d553f (diff) | |
| download | enigma2-f94e2c9821eb8784ca03b7122485d4720ec6d6e6.tar.gz enigma2-f94e2c9821eb8784ca03b7122485d4720ec6d6e6.zip | |
add ability to select default encoding for dvb texts in many ways.. ( take a look in data/encodings.conf )
Diffstat (limited to 'lib/base/estring.cpp')
| -rw-r--r-- | lib/base/estring.cpp | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/lib/base/estring.cpp b/lib/base/estring.cpp index 4259c58f..10bfbef8 100644 --- a/lib/base/estring.cpp +++ b/lib/base/estring.cpp @@ -1,12 +1,10 @@ #include <string> #include <ctype.h> #include <limits.h> -#include <lib/base/elock.h> #include <lib/base/eerror.h> +#include <lib/base/encoding.h> #include <lib/base/estring.h> -static pthread_mutex_t lock=PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP; - std::string getNum(int val, int sys) { // Returns a string that contain the value val as string @@ -331,15 +329,8 @@ std::string convertDVBUTF8(const unsigned char *data, int len, int table, int ts int i=0, t=0; -#if 0 // FIXME if ( tsidonid ) - { - std::map<int, int>::iterator it = - std::string::TransponderDefaultMapping.find(tsidonid); - if ( it != std::string::TransponderDefaultMapping.end() ) - table = it->second; - } -#endif + encodingHandler.getTransponderDefaultMapping(tsidonid, table); switch(data[0]) { @@ -386,17 +377,18 @@ std::string convertDVBUTF8(const unsigned char *data, int len, int table, int ts break; } + bool useTwoCharMapping = + tsidonid && encodingHandler.getTransponderUseTwoCharMapping(tsidonid); + unsigned char res[2048]; while (i < len) { unsigned long code=0; -#if 0 // FIXME - if ( i+1 < len && tsidonid && - std::string::TransponderUseTwoCharMapping.find(tsidonid) != std::string::TransponderUseTwoCharMapping.end() && + if ( useTwoCharMapping && i+1 < len && (code=doVideoTexSuppl(data[i], data[i+1])) ) i+=2; -#endif + if (!code) code=recode(data[i++], table); if (!code) |
