aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/mad/decodermadfactory.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-02-18 16:16:17 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-02-18 16:16:17 +0000
commit0f0790e535b39ef6dfa7891b771232b58efb3bb6 (patch)
treed77b92d602d6aa3d4ea46d0a44c7366665b4e623 /src/plugins/Input/mad/decodermadfactory.cpp
parent0bea3c894f442f88da707dbbde308597df44633c (diff)
downloadqmmp-0f0790e535b39ef6dfa7891b771232b58efb3bb6.tar.gz
qmmp-0f0790e535b39ef6dfa7891b771232b58efb3bb6.tar.bz2
qmmp-0f0790e535b39ef6dfa7891b771232b58efb3bb6.zip
fixed UTF-16 ID3v2 tags
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@248 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input/mad/decodermadfactory.cpp')
-rw-r--r--src/plugins/Input/mad/decodermadfactory.cpp23
1 files changed, 11 insertions, 12 deletions
diff --git a/src/plugins/Input/mad/decodermadfactory.cpp b/src/plugins/Input/mad/decodermadfactory.cpp
index 8bb04aca1..95d27c337 100644
--- a/src/plugins/Input/mad/decodermadfactory.cpp
+++ b/src/plugins/Input/mad/decodermadfactory.cpp
@@ -71,16 +71,6 @@ FileTag *DecoderMADFactory::createTag(const QString &source)
QSettings settings(QDir::homePath()+"/.qmmp/qmmprc", QSettings::IniFormat);
settings.beginGroup("MAD");
- QTextCodec *codec_v1 =
- QTextCodec::codecForName(settings.value("ID3v1_encoding","UTF-8" )
- .toByteArray ());
- QTextCodec *codec_v2 =
- QTextCodec::codecForName(settings.value("ID3v2_encoding","UTF-8" )
- .toByteArray ());
- if (!codec_v1)
- codec_v1 = QTextCodec::codecForName ("UTF-8");
- if (!codec_v2)
- codec_v2 = QTextCodec::codecForName ("UTF-8");
QTextCodec *codec = 0;
@@ -96,13 +86,19 @@ FileTag *DecoderMADFactory::createTag(const QString &source)
{
case SettingsDialog::ID3v1:
{
- codec = codec_v1;
+ codec = QTextCodec::codecForName(settings.value("ID3v1_encoding","ISO-8859-1")
+ .toByteArray ());
tag = fileRef.ID3v1Tag();
break;
}
case SettingsDialog::ID3v2:
{
- codec = codec_v2;
+ QByteArray name;
+ name = settings.value("ID3v2_encoding","UTF-8").toByteArray ();
+ if(name.contains("UTF"))
+ codec = QTextCodec::codecForName ("UTF-8");
+ else
+ codec = QTextCodec::codecForName(name);
tag = fileRef.ID3v2Tag();
break;
}
@@ -122,6 +118,9 @@ FileTag *DecoderMADFactory::createTag(const QString &source)
}
settings.endGroup();
+ if(!codec)
+ codec = QTextCodec::codecForName ("UTF-8");
+
if (tag && codec)
{
bool utf = codec->name ().contains("UTF");