aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/Input/vorbis/decodervorbisfactory.cpp9
-rw-r--r--src/plugins/Input/wildmidi/decoderwildmidifactory.cpp12
2 files changed, 10 insertions, 11 deletions
diff --git a/src/plugins/Input/vorbis/decodervorbisfactory.cpp b/src/plugins/Input/vorbis/decodervorbisfactory.cpp
index 0ea5264eb..359347d1e 100644
--- a/src/plugins/Input/vorbis/decodervorbisfactory.cpp
+++ b/src/plugins/Input/vorbis/decodervorbisfactory.cpp
@@ -67,12 +67,12 @@ QList<TrackInfo *> DecoderVorbisFactory::createPlayList(const QString &fileName,
{
TrackInfo *info = new TrackInfo(fileName);
+ if(parts == TrackInfo::NoParts)
+ return QList<TrackInfo*>() << info;
+
TagLib::FileStream stream(QStringToFileName(fileName), true);
TagLib::Ogg::Vorbis::File fileRef(&stream);
- if(fileRef.audioProperties())
- info->setDuration(fileRef.audioProperties()->lengthInMilliseconds());
-
if((parts & TrackInfo::MetaData) && fileRef.tag() && !fileRef.tag()->isEmpty())
{
TagLib::Ogg::XiphComment *tag = fileRef.tag();
@@ -90,8 +90,9 @@ QList<TrackInfo *> DecoderVorbisFactory::createPlayList(const QString &fileName,
info->setValue(Qmmp::BITRATE, fileRef.audioProperties()->bitrate());
info->setValue(Qmmp::SAMPLERATE, fileRef.audioProperties()->sampleRate());
info->setValue(Qmmp::CHANNELS, fileRef.audioProperties()->channels());
- info->setValue(Qmmp::BITS_PER_SAMPLE, 16);
+ info->setValue(Qmmp::BITS_PER_SAMPLE, 32); //float
info->setValue(Qmmp::FORMAT_NAME, "Ogg Vorbis");
+ info->setDuration(fileRef.audioProperties()->lengthInMilliseconds());
}
if((parts & TrackInfo::ReplayGainInfo) && fileRef.tag() && !fileRef.tag()->isEmpty())
diff --git a/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp b/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp
index 1bbbbf8ca..0a12aa75f 100644
--- a/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp
+++ b/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp
@@ -70,25 +70,23 @@ Decoder *DecoderWildMidiFactory::create(const QString &path, QIODevice *input)
QList<TrackInfo *> DecoderWildMidiFactory::createPlayList(const QString &path, TrackInfo::Parts parts, QStringList *)
{
- Q_UNUSED(parts);
- QList<TrackInfo*> list;
TrackInfo *info = new TrackInfo(path);
+ WildMidiHelper *helper = WildMidiHelper::instance();
- if(WildMidiHelper::instance()->initialize() && WildMidiHelper::instance()->sampleRate())
+ if((parts & TrackInfo::Properties) && helper->initialize() && helper->sampleRate())
{
void *midi_ptr = WildMidi_Open (path.toLocal8Bit().constData());
if(midi_ptr)
{
WildMidiHelper::instance()->addPtr(midi_ptr);
_WM_Info *wm_info = WildMidi_GetInfo(midi_ptr);
- info->setDuration((qint64)wm_info->approx_total_samples * 1000
- / WildMidiHelper::instance()->sampleRate());
+ info->setValue(Qmmp::SAMPLERATE, helper->sampleRate());
+ info->setDuration((qint64)wm_info->approx_total_samples * 1000 / helper->sampleRate());
WildMidi_Close(midi_ptr);
WildMidiHelper::instance()->removePtr(midi_ptr);
}
}
- list << info;
- return list;
+ return QList<TrackInfo *>() << info;
}
MetaDataModel* DecoderWildMidiFactory::createMetaDataModel(const QString &path, QObject *parent)