diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2008-02-18 16:16:17 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2008-02-18 16:16:17 +0000 |
| commit | 0f0790e535b39ef6dfa7891b771232b58efb3bb6 (patch) | |
| tree | d77b92d602d6aa3d4ea46d0a44c7366665b4e623 /src/plugins/Input/mad/detailsdialog.cpp | |
| parent | 0bea3c894f442f88da707dbbde308597df44633c (diff) | |
| download | qmmp-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/detailsdialog.cpp')
| -rw-r--r-- | src/plugins/Input/mad/detailsdialog.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/plugins/Input/mad/detailsdialog.cpp b/src/plugins/Input/mad/detailsdialog.cpp index af9b466cd..abaf503de 100644 --- a/src/plugins/Input/mad/detailsdialog.cpp +++ b/src/plugins/Input/mad/detailsdialog.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006 by Ilya Kotov * + * Copyright (C) 2006-2008 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -50,13 +50,13 @@ DetailsDialog::DetailsDialog(QWidget *parent, const QString &path) QSettings settings(QDir::homePath()+"/.qmmp/qmmprc", QSettings::IniFormat); settings.beginGroup("MAD"); m_codec_v1 = - QTextCodec::codecForName(settings.value("ID3v1_encoding","UTF-8" ) + 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 ("UTF-8"); + m_codec_v1 = QTextCodec::codecForName ("ISO-8859-1"); if (!m_codec_v2) m_codec_v2 = QTextCodec::codecForName ("UTF-8"); @@ -171,6 +171,8 @@ void DetailsDialog::loadTag() if (tag) { bool utf = codec->name().contains("UTF"); + if(utf) + codec = QTextCodec::codecForName ("UTF-8"); TagLib::String title = tag->title(); TagLib::String artist = tag->artist(); TagLib::String album = tag->album(); @@ -215,12 +217,14 @@ void DetailsDialog::save() { codec = m_codec_v2; tag = f->ID3v2Tag(TRUE); + if (codec->name().contains("UTF")) { + type = TagLib::String::UTF8; //FIXME add utf-16 (LE, BE) support + codec = QTextCodec::codecForName ("UTF-8"); TagLib::ID3v2::FrameFactory *factory = TagLib::ID3v2::FrameFactory::instance(); - factory->setDefaultTextEncoding(TagLib::String::UTF8); + factory->setDefaultTextEncoding(type); f->setID3v2FrameFactory(factory); - type = TagLib::String::UTF8; } } if (selectedTag() == TagLib::MPEG::File::APE) |
