aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Input/wildmidi/decoderwildmidifactory.cpp')
-rw-r--r--src/plugins/Input/wildmidi/decoderwildmidifactory.cpp38
1 files changed, 25 insertions, 13 deletions
diff --git a/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp b/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp
index 13b3b2e06..d33f0cc7d 100644
--- a/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp
+++ b/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp
@@ -22,20 +22,19 @@
#include "wildmidihelper.h"
#include "decoder_wildmidi.h"
+#include "settingsdialog.h"
#include "decoderwildmidifactory.h"
-
// DecoderWildMidiFactory
bool DecoderWildMidiFactory::supports(const QString &source) const
{
-
return (source.right(4).toLower() == ".mid");
}
bool DecoderWildMidiFactory::canDecode(QIODevice *) const
{
- return FALSE;
+ return false;
}
const DecoderProperties DecoderWildMidiFactory::properties() const
@@ -45,9 +44,10 @@ const DecoderProperties DecoderWildMidiFactory::properties() const
properties.filter = "*.mid";
properties.description = tr("Midi Files");
//properties.contentType = ;
- properties.hasAbout = FALSE;
- properties.hasSettings = FALSE;
- properties.noInput = TRUE;
+ properties.shortName = "wildmidi";
+ properties.hasAbout = true;
+ properties.hasSettings = true;
+ properties.noInput = true;
properties.protocols = "file";
return properties;
}
@@ -60,17 +60,21 @@ Decoder *DecoderWildMidiFactory::create(const QString &path, QIODevice *input)
QList<FileInfo *> DecoderWildMidiFactory::createPlayList(const QString &fileName, bool useMetaData)
{
+ Q_UNUSED(useMetaData);
QList <FileInfo*> list;
FileInfo *info = new FileInfo(fileName);
- if(WildMidiHelper::instance()->initialize())
+ if(WildMidiHelper::instance()->initialize() && WildMidiHelper::instance()->sampleRate())
{
void *midi_ptr = WildMidi_Open (fileName.toLocal8Bit());
if(midi_ptr)
{
+ WildMidiHelper::instance()->addPtr(midi_ptr);
_WM_Info *wm_info = WildMidi_GetInfo(midi_ptr);
- info->setLength((qint64)wm_info->approx_total_samples / 48000);
+ info->setLength((qint64)wm_info->approx_total_samples
+ / WildMidiHelper::instance()->sampleRate());
WildMidi_Close(midi_ptr);
+ WildMidiHelper::instance()->removePtr(midi_ptr);
}
}
list << info;
@@ -79,16 +83,24 @@ QList<FileInfo *> DecoderWildMidiFactory::createPlayList(const QString &fileName
MetaDataModel* DecoderWildMidiFactory::createMetaDataModel(const QString &path, QObject *parent)
{
- /*DetailsDialog *d = new DetailsDialog(parent, path);
- d -> show();*/
+ Q_UNUSED(path);
+ Q_UNUSED(parent);
return 0;
}
-void DecoderWildMidiFactory::showSettings(QWidget *)
-{}
+void DecoderWildMidiFactory::showSettings(QWidget *parent)
+{
+ SettingsDialog *d = new SettingsDialog(parent);
+ d->show();
+}
void DecoderWildMidiFactory::showAbout(QWidget *parent)
-{}
+{
+ QMessageBox::about (parent, tr("About WildMidi Audio Plugin"),
+ tr("Qmmp WildMidi Audio Plugin")+"\n"+
+ tr("This plugin uses WildMidi library to play midi files")+"\n"+
+ tr("Writen by: Ilya Kotov <forkotov02@hotmail.ru>"));
+}
QTranslator *DecoderWildMidiFactory::createTranslator(QObject *parent)
{