diff --git a/src/driver/audiodec/ffmpegdec.cpp b/src/driver/audiodec/ffmpegdec.cpp index b37d4465b..3faf5b270 100644 --- a/src/driver/audiodec/ffmpegdec.cpp +++ b/src/driver/audiodec/ffmpegdec.cpp @@ -372,23 +372,23 @@ bool CFfmpegDec::SetMetaData(FILE *_in, CFile::FileType ft, CAudioMetaData* m) AVDictionaryEntry *tag = NULL; while ((tag = av_dict_get(avc->metadata, "", tag, AV_DICT_IGNORE_SUFFIX))) { if(!strcasecmp(tag->key,"Title")) { - title = convertLatin1UTF8(tag->value); + title = isUTF8(tag->value) ? tag->value : convertLatin1UTF8(tag->value); continue; } if(!strcasecmp(tag->key,"Artist")) { - artist = convertLatin1UTF8(tag->value); + artist = isUTF8(tag->value) ? tag->value : convertLatin1UTF8(tag->value); continue; } if(!strcasecmp(tag->key,"Year")) { - date = convertLatin1UTF8(tag->value); + date = isUTF8(tag->value) ? tag->value : convertLatin1UTF8(tag->value); continue; } if(!strcasecmp(tag->key,"Album")) { - album = convertLatin1UTF8(tag->value); + album = isUTF8(tag->value) ? tag->value : convertLatin1UTF8(tag->value); continue; } if(!strcasecmp(tag->key,"Genre")) { - genre = convertLatin1UTF8(tag->value); + genre = isUTF8(tag->value) ? tag->value : convertLatin1UTF8(tag->value); continue; } } diff --git a/src/driver/audioplay.cpp b/src/driver/audioplay.cpp index 9741becf2..fdaf4e1e7 100644 --- a/src/driver/audioplay.cpp +++ b/src/driver/audioplay.cpp @@ -171,10 +171,10 @@ void CAudioPlayer::sc_callback(void *arg) bool changed=false; CSTATE *stat = (CSTATE*)arg; - const std::string artist = convertLatin1UTF8(stat->artist); - const std::string title = convertLatin1UTF8(stat->title); - const std::string station = convertLatin1UTF8(stat->station); - const std::string genre = convertLatin1UTF8(stat->genre); + const std::string artist = isUTF8(stat->artist) ? stat->artist : convertLatin1UTF8(stat->artist); + const std::string title = isUTF8(stat->title) ? stat->title : convertLatin1UTF8(stat->title); + const std::string station = isUTF8(stat->station) ? stat->station : convertLatin1UTF8(stat->station); + const std::string genre = isUTF8(stat->genre) ? stat->artist : convertLatin1UTF8(stat->genre); if(m_Audiofile.MetaData.artist != artist) { diff --git a/src/system/settings.h b/src/system/settings.h index 10aec2a58..a08f0b511 100644 --- a/src/system/settings.h +++ b/src/system/settings.h @@ -36,6 +36,7 @@ #include #include #include +#include // UTF8 #include #include @@ -569,9 +570,11 @@ struct SNeutrinoSettings int backlight_tv; int backlight_standby; int backlight_deepstandby; -#define FILESYSTEM_ENCODING_TO_UTF8(a) (g_settings.filesystem_is_utf8 ? (a) : ZapitTools::Latin1_to_UTF8(a).c_str()) +//#define FILESYSTEM_ENCODING_TO_UTF8(a) (g_settings.filesystem_is_utf8 ? (a) : ZapitTools::Latin1_to_UTF8(a).c_str()) +#define FILESYSTEM_ENCODING_TO_UTF8(a) (isUTF8(a) ? (a) : ZapitTools::Latin1_to_UTF8(a).c_str()) #define UTF8_TO_FILESYSTEM_ENCODING(a) (g_settings.filesystem_is_utf8 ? (a) : ZapitTools::UTF8_to_Latin1(a).c_str()) -#define FILESYSTEM_ENCODING_TO_UTF8_STRING(a) (g_settings.filesystem_is_utf8 ? (a) : ZapitTools::Latin1_to_UTF8(a)) +//#define FILESYSTEM_ENCODING_TO_UTF8_STRING(a) (g_settings.filesystem_is_utf8 ? (a) : ZapitTools::Latin1_to_UTF8(a)) +#define FILESYSTEM_ENCODING_TO_UTF8_STRING(a) (isUTF8(a) ? (a) : ZapitTools::Latin1_to_UTF8(a)) // pictureviewer char picviewer_slide_time[3];