aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/aac/decoderaacfactory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Input/aac/decoderaacfactory.cpp')
-rw-r--r--src/plugins/Input/aac/decoderaacfactory.cpp40
1 files changed, 26 insertions, 14 deletions
diff --git a/src/plugins/Input/aac/decoderaacfactory.cpp b/src/plugins/Input/aac/decoderaacfactory.cpp
index 5f53437de..e641db1c7 100644
--- a/src/plugins/Input/aac/decoderaacfactory.cpp
+++ b/src/plugins/Input/aac/decoderaacfactory.cpp
@@ -55,27 +55,39 @@ Decoder *DecoderAACFactory::create(const QString &, QIODevice *input)
QList<TrackInfo *> DecoderAACFactory::createPlayList(const QString &path, TrackInfo::Parts parts, QStringList *)
{
+ TrackInfo *info = new TrackInfo(path);
+
+ if(parts == TrackInfo::NoParts)
+ return QList<TrackInfo*>() << info;
+
QFile file(path);
- if (file.open(QIODevice::ReadOnly))
+ if(!file.open(QIODevice::ReadOnly))
{
- TrackInfo *info = new TrackInfo(path);
- AACFile aac_file(&file, parts);
+ delete info;
+ return QList<TrackInfo*>() << info;
+ }
- if(parts & TrackInfo::MetaData)
- info->setValues(aac_file.metaData());
+ AACFile aac_file(&file, parts & TrackInfo::MetaData);
- if(parts & TrackInfo::Properties)
- {
- info->setValue(Qmmp::BITRATE, aac_file.bitrate());
- info->setValue(Qmmp::SAMPLERATE, aac_file.samplerate());
- //info->setValue(Qmmp::CHANNELS, aac_file.
- info->setValue(Qmmp::FORMAT_NAME, "AAC");
- }
+ if(!aac_file.isValid())
+ {
+ delete info;
+ return QList<TrackInfo *>();
+ }
+
+ if(parts & TrackInfo::MetaData)
+ info->setValues(aac_file.metaData());
+ if(parts & TrackInfo::Properties)
+ {
+ info->setValue(Qmmp::BITRATE, aac_file.bitrate());
+ info->setValue(Qmmp::SAMPLERATE, aac_file.samplerate());
+ //info->setValue(Qmmp::CHANNELS, aac_file.
+ info->setValue(Qmmp::FORMAT_NAME, "AAC");
info->setDuration(aac_file.duration());
- return QList<TrackInfo*>() << info;
}
- return QList<TrackInfo *>();
+
+ return QList<TrackInfo*>() << info;
}
MetaDataModel* DecoderAACFactory::createMetaDataModel(const QString &path, QObject *parent)