1
#! /bin/sh /usr/share/dpatch/dpatch-run
2
## 01_mp3-ogg-conv-utf8.dpatch by Thomas G�nther <tom@toms-cafe.de>
3
## http://toms-cafe.de/vdr/download/mp3-0.10.0-ogg-conv-utf8.diff
5
## All lines beginning with `## DP:' are a description of the patch.
6
## DP: Converts ogginfos from utf8 to the setup charset.
9
--- mp3-0.10.0/decoder-ogg.c
10
+++ mp3-0.10.0/decoder-ogg.c
13
#include "decoder-ogg.h"
15
+#include <vdr/config.h>
16
+#include <vdr/i18n.h>
18
+static char *ConvertFromUTF8(const char *text)
20
+ if (!text) return NULL;
21
+ char *buffer = strdup(text);
22
+#if APIVERSNUM >= 10503
23
+ iconv_t ic = iconv_open(cCharSetConv::SystemCharacterTable(), "UTF8");
25
+ iconv_t ic = iconv_open(I18nCharSets()[Setup.OSDLanguage], "UTF8");
28
+ char *in = (char *)text;
30
+ size_t inbytesleft = strlen(text);
31
+ size_t outbytesleft = inbytesleft;
32
+ if (iconv(ic, &in, &inbytesleft, &out, &outbytesleft) != (size_t)(-1))
35
+ strcpy(buffer, text);
41
// --- cOggFile ----------------------------------------------------------------
43
cOggFile::cOggFile(const char *Filename)
47
if(!strncasecmp(cc,"TITLE",len)) {
48
- if(!Title) Title=strdup(p);
49
+ if(!Title) Title=ConvertFromUTF8(p);
51
else if(!strncasecmp(cc,"ARTIST",len)) {
52
- if(!Artist) Artist=strdup(p);
53
+ if(!Artist) Artist=ConvertFromUTF8(p);
55
else if(!strncasecmp(cc,"ALBUM",len)) {
56
- if(!Album) Album=strdup(p);
57
+ if(!Album) Album=ConvertFromUTF8(p);
59
else if(!strncasecmp(cc,"YEAR",len)) {