aboutsummaryrefslogtreecommitdiff
path: root/lib/base/estring.cpp
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2005-11-26 19:01:11 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2005-11-26 19:01:11 +0000
commitf94e2c9821eb8784ca03b7122485d4720ec6d6e6 (patch)
tree6da2323d2220093ea1c3756dbddb8e02fded2969 /lib/base/estring.cpp
parent68271eeaf83872270f13cc01e98960367d7d553f (diff)
downloadenigma2-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.cpp22
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)