aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-02-18 16:43:02 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-02-18 16:43:02 +0000
commit02956c7fdc805b002271efc656aabfb7aa5a686a (patch)
tree49749b3e85970b0a2738d4573ef04d9558b995e7
parent0f0790e535b39ef6dfa7891b771232b58efb3bb6 (diff)
downloadqmmp-02956c7fdc805b002271efc656aabfb7aa5a686a.tar.gz
qmmp-02956c7fdc805b002271efc656aabfb7aa5a686a.tar.bz2
qmmp-02956c7fdc805b002271efc656aabfb7aa5a686a.zip
fixed ID3v2 again
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@249 90c681e8-e032-0410-971d-27865f9a5e38
-rw-r--r--src/plugins/Input/mad/detailsdialog.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/plugins/Input/mad/detailsdialog.cpp b/src/plugins/Input/mad/detailsdialog.cpp
index abaf503de..c2e55e5cb 100644
--- a/src/plugins/Input/mad/detailsdialog.cpp
+++ b/src/plugins/Input/mad/detailsdialog.cpp
@@ -53,7 +53,7 @@ DetailsDialog::DetailsDialog(QWidget *parent, const QString &path)
QTextCodec::codecForName(settings.value("ID3v1_encoding", "ISO-8859-1" )
.toByteArray ());
m_codec_v2 =
- QTextCodec::codecForName(settings.value("ID3v2_encoding", "UTF-8" )
+ QTextCodec::codecForName(settings.value("ID3v2_encoding","UTF-8" )
.toByteArray ());
if (!m_codec_v1)
m_codec_v1 = QTextCodec::codecForName ("ISO-8859-1");
@@ -171,7 +171,7 @@ void DetailsDialog::loadTag()
if (tag)
{
bool utf = codec->name().contains("UTF");
- if(utf)
+ if (utf)
codec = QTextCodec::codecForName ("UTF-8");
TagLib::String title = tag->title();
TagLib::String artist = tag->artist();
@@ -220,11 +220,19 @@ void DetailsDialog::save()
if (codec->name().contains("UTF"))
{
- type = TagLib::String::UTF8; //FIXME add utf-16 (LE, BE) support
+ type = TagLib::String::UTF8;
+ if (codec->name().contains("UTF-16"))
+ type = TagLib::String::UTF16;
+ else if (codec->name().contains("UTF-16LE"))
+ type = TagLib::String::UTF16LE;
+ else if (codec->name().contains("UTF-16BE"))
+ type = TagLib::String::UTF16BE;
+
codec = QTextCodec::codecForName ("UTF-8");
TagLib::ID3v2::FrameFactory *factory = TagLib::ID3v2::FrameFactory::instance();
factory->setDefaultTextEncoding(type);
f->setID3v2FrameFactory(factory);
+ type = TagLib::String::UTF8;
}
}
if (selectedTag() == TagLib::MPEG::File::APE)