aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/mad
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-11-28 15:46:53 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-11-28 15:46:53 +0000
commit26724c66d4764a77ca653ce6c0a1573e9e97e97c (patch)
treef238f84ed390de31471cb95a20e3775f2ea7e3e7 /src/plugins/Input/mad
parentd02787b92ad9a220539498ebbc9f1745a075d10d (diff)
downloadqmmp-26724c66d4764a77ca653ce6c0a1573e9e97e97c.tar.gz
qmmp-26724c66d4764a77ca653ce6c0a1573e9e97e97c.tar.bz2
qmmp-26724c66d4764a77ca653ce6c0a1573e9e97e97c.zip
changed decoder api; fixed flac plugin
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@646 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input/mad')
-rw-r--r--src/plugins/Input/mad/decodermadfactory.cpp135
-rw-r--r--src/plugins/Input/mad/decodermadfactory.h2
2 files changed, 70 insertions, 67 deletions
diff --git a/src/plugins/Input/mad/decodermadfactory.cpp b/src/plugins/Input/mad/decodermadfactory.cpp
index ef8de8d45..9ede2f1d8 100644
--- a/src/plugins/Input/mad/decodermadfactory.cpp
+++ b/src/plugins/Input/mad/decodermadfactory.cpp
@@ -100,87 +100,90 @@ Decoder *DecoderMADFactory::create(QObject *parent, QIODevice *input, Output *ou
}
//FileInfo *DecoderMADFactory::createFileInfo(const QString &source)
-QList<FileInfo *> DecoderMADFactory::createPlayList(const QString &fileName)
+QList<FileInfo *> DecoderMADFactory::createPlayList(const QString &fileName, bool useMetaData)
{
FileInfo *info = new FileInfo(fileName);
TagLib::Tag *tag = 0;
TagLib::MPEG::File fileRef(fileName.toLocal8Bit ());
- QSettings settings(QDir::homePath()+"/.qmmp/qmmprc", QSettings::IniFormat);
- settings.beginGroup("MAD");
+ if (useMetaData)
+ {
+ QSettings settings(QDir::homePath()+"/.qmmp/qmmprc", QSettings::IniFormat);
+ settings.beginGroup("MAD");
- QTextCodec *codec = 0;
+ QTextCodec *codec = 0;
- uint tag_array[3];
- tag_array[0] = settings.value("tag_1", SettingsDialog::ID3v2).toInt();
- tag_array[1] = settings.value("tag_2", SettingsDialog::Disabled).toInt();
- tag_array[2] = settings.value("tag_3", SettingsDialog::Disabled).toInt();
+ uint tag_array[3];
+ tag_array[0] = settings.value("tag_1", SettingsDialog::ID3v2).toInt();
+ tag_array[1] = settings.value("tag_2", SettingsDialog::Disabled).toInt();
+ tag_array[2] = settings.value("tag_3", SettingsDialog::Disabled).toInt();
- for (int i = 0; i < 3; ++i)
- {
- switch ((uint) tag_array[i])
+ for (int i = 0; i < 3; ++i)
{
- case SettingsDialog::ID3v1:
- {
- codec = QTextCodec::codecForName(settings.value("ID3v1_encoding","ISO-8859-1")
- .toByteArray ());
- tag = fileRef.ID3v1Tag();
- break;
- }
- case SettingsDialog::ID3v2:
- {
- QByteArray name;
- name = settings.value("ID3v2_encoding","UTF-8").toByteArray ();
- if (name.contains("UTF"))
+ switch ((uint) tag_array[i])
+ {
+ case SettingsDialog::ID3v1:
+ {
+ codec = QTextCodec::codecForName(settings.value("ID3v1_encoding","ISO-8859-1")
+ .toByteArray ());
+ tag = fileRef.ID3v1Tag();
+ break;
+ }
+ case SettingsDialog::ID3v2:
+ {
+ 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;
+ }
+ case SettingsDialog::APE:
+ {
codec = QTextCodec::codecForName ("UTF-8");
- else
- codec = QTextCodec::codecForName(name);
- tag = fileRef.ID3v2Tag();
- break;
+ tag = fileRef.APETag();
+ break;
+ }
+ case SettingsDialog::Disabled:
+ {
+ break;
+ }
+ }
+ if (tag && !tag->isEmpty())
+ break;
}
- case SettingsDialog::APE:
- {
+ settings.endGroup();
+
+ if (!codec)
codec = QTextCodec::codecForName ("UTF-8");
- tag = fileRef.APETag();
- break;
- }
- case SettingsDialog::Disabled:
+
+ if (tag && codec)
{
- break;
+ bool utf = codec->name ().contains("UTF");
+ TagLib::String album = tag->album();
+ TagLib::String artist = tag->artist();
+ TagLib::String comment = tag->comment();
+ TagLib::String genre = tag->genre();
+ TagLib::String title = tag->title();
+
+ info->setMetaData(Qmmp::ALBUM,
+ codec->toUnicode(album.toCString(utf)).trimmed());
+ info->setMetaData(Qmmp::ARTIST,
+ codec->toUnicode(artist.toCString(utf)).trimmed());
+ info->setMetaData(Qmmp::COMMENT,
+ codec->toUnicode(comment.toCString(utf)).trimmed());
+ info->setMetaData(Qmmp::GENRE,
+ codec->toUnicode(genre.toCString(utf)).trimmed());
+ info->setMetaData(Qmmp::TITLE,
+ codec->toUnicode(title.toCString(utf)).trimmed());
+ info->setMetaData(Qmmp::YEAR,
+ tag->year());
+ info->setMetaData(Qmmp::TRACK,
+ tag->track());
}
- }
- if (tag && !tag->isEmpty())
- break;
- }
- settings.endGroup();
-
- if (!codec)
- codec = QTextCodec::codecForName ("UTF-8");
-
- if (tag && codec)
- {
- bool utf = codec->name ().contains("UTF");
- TagLib::String album = tag->album();
- TagLib::String artist = tag->artist();
- TagLib::String comment = tag->comment();
- TagLib::String genre = tag->genre();
- TagLib::String title = tag->title();
-
- info->setMetaData(Qmmp::ALBUM,
- codec->toUnicode(album.toCString(utf)).trimmed());
- info->setMetaData(Qmmp::ARTIST,
- codec->toUnicode(artist.toCString(utf)).trimmed());
- info->setMetaData(Qmmp::COMMENT,
- codec->toUnicode(comment.toCString(utf)).trimmed());
- info->setMetaData(Qmmp::GENRE,
- codec->toUnicode(genre.toCString(utf)).trimmed());
- info->setMetaData(Qmmp::TITLE,
- codec->toUnicode(title.toCString(utf)).trimmed());
- info->setMetaData(Qmmp::YEAR,
- tag->year());
- info->setMetaData(Qmmp::TRACK,
- tag->track());
}
if (fileRef.audioProperties())
info->setLength(fileRef.audioProperties()->length());
diff --git a/src/plugins/Input/mad/decodermadfactory.h b/src/plugins/Input/mad/decodermadfactory.h
index a4d4d57ad..c749cd86d 100644
--- a/src/plugins/Input/mad/decodermadfactory.h
+++ b/src/plugins/Input/mad/decodermadfactory.h
@@ -44,7 +44,7 @@ public:
const DecoderProperties properties() const;
Decoder *create(QObject *, QIODevice *, Output *, const QString &);
//FileInfo *createFileInfo(const QString &source);
- QList<FileInfo *> createPlayList(const QString &fileName);
+ QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData);
QObject* showDetails(QWidget *parent, const QString &path);
void showSettings(QWidget *parent);
void showAbout(QWidget *parent);