diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2011-10-07 20:09:11 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2011-10-07 20:09:11 +0000 |
| commit | 489f0c707d070ad66860f36d9d212e007c83e051 (patch) | |
| tree | 023b2a565e3fc3e9170b52a7617c29d0e655d8d8 | |
| parent | dc7616b2426774d2362c694226142b78ffeb835b (diff) | |
| download | qmmp-489f0c707d070ad66860f36d9d212e007c83e051.tar.gz qmmp-489f0c707d070ad66860f36d9d212e007c83e051.tar.bz2 qmmp-489f0c707d070ad66860f36d9d212e007c83e051.zip | |
converter: added taglib support
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2384 90c681e8-e032-0410-971d-27865f9a5e38
| -rw-r--r-- | src/plugins/General/converter/converter.cpp | 24 | ||||
| -rw-r--r-- | src/plugins/General/converter/converter.pro | 5 |
2 files changed, 26 insertions, 3 deletions
diff --git a/src/plugins/General/converter/converter.cpp b/src/plugins/General/converter/converter.cpp index 441b97e09..6ecb6667c 100644 --- a/src/plugins/General/converter/converter.cpp +++ b/src/plugins/General/converter/converter.cpp @@ -25,10 +25,12 @@ #include <qmmp/metadatamanager.h> #include <qmmpui/metadataformatter.h> #include <QtEndian> -#include <QSettings> -#include <QDesktopServices> +#include <taglib/fileref.h> +#include <taglib/tag.h> #include "converter.h" +#define QStringToTString_qt4(s) TagLib::String(s.toUtf8().constData(), TagLib::String::UTF8) + Converter::Converter(QObject *parent) : QThread(parent) {} @@ -137,6 +139,7 @@ void Converter::run() continue; } + QMap<Qmmp::MetaData, QString> metadata = list[0]->metaData(); MetaDataFormatter formatter(pattern); QString desc = tr("Track: %1").arg(desc_formatter.parse(list[0]->metaData(), list[0]->length())); @@ -214,6 +217,23 @@ void Converter::run() else qDebug("Converter: task '%s' finished with success", qPrintable(preset["name"].toString())); m_mutex.unlock(); + + if(preset["tags"].toBool()) + { + qDebug("Converter: writing tags"); + TagLib::FileRef file(qPrintable(full_path)); + if(file.tag()) + { + file.tag()->setTitle(QStringToTString_qt4(metadata[Qmmp::TITLE])); + file.tag()->setArtist(QStringToTString_qt4(metadata[Qmmp::ARTIST])); + file.tag()->setAlbum(QStringToTString_qt4(metadata[Qmmp::ALBUM])); + file.tag()->setGenre(QStringToTString_qt4(metadata[Qmmp::GENRE])); + file.tag()->setComment(QStringToTString_qt4(metadata[Qmmp::COMMENT])); + file.tag()->setYear(metadata[Qmmp::YEAR].toUInt()); + file.tag()->setTrack(metadata[Qmmp::TRACK].toUInt()); + file.save(); + } + } } qDebug("Converter: thread finished"); } diff --git a/src/plugins/General/converter/converter.pro b/src/plugins/General/converter/converter.pro index c9588d508..66834b7ad 100644 --- a/src/plugins/General/converter/converter.pro +++ b/src/plugins/General/converter/converter.pro @@ -3,7 +3,8 @@ include(../../plugins.pri) INCLUDEPATH += ../../../../src CONFIG += release \ warn_on \ -plugin +plugin \ +link_pkgconfig TARGET =$$PLUGINS_PREFIX/General/converter unix:QMAKE_CLEAN = $$PLUGINS_PREFIX/General/libconverter.so @@ -13,6 +14,8 @@ TEMPLATE = lib unix:QMAKE_LIBDIR += ../../../../lib unix:LIBS += -lqmmpui -lqmmp +PKGCONFIG += taglib + win32:QMAKE_LIBDIR += ../../../../bin win32:LIBS += -lqmmpui0 -lqmmp0 |
