diff options
| -rw-r--r-- | src/plugins/Input/vorbis/decodervorbisfactory.cpp | 9 | ||||
| -rw-r--r-- | src/plugins/Input/wildmidi/decoderwildmidifactory.cpp | 12 |
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) |
