From 02956c7fdc805b002271efc656aabfb7aa5a686a Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Mon, 18 Feb 2008 16:43:02 +0000 Subject: fixed ID3v2 again git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@249 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/Input/mad/detailsdialog.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src') 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) -- cgit v1.2.3-13-gbd6f