aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2010-08-01 10:51:41 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2010-08-01 10:51:41 +0000
commit1688bbd83a15dabf274f1613fc981a964acf6bb8 (patch)
treef0a78b8973ea7369af1f3590eb6426866a090b02 /src/plugins/Input/wildmidi/decoderwildmidifactory.cpp
parentabfe5cdbe5d4e24e4044ba6c31487fe9dbf4b274 (diff)
downloadqmmp-1688bbd83a15dabf274f1613fc981a964acf6bb8.tar.gz
qmmp-1688bbd83a15dabf274f1613fc981a964acf6bb8.tar.bz2
qmmp-1688bbd83a15dabf274f1613fc981a964acf6bb8.zip
prepare for midi support
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1815 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input/wildmidi/decoderwildmidifactory.cpp')
-rw-r--r--src/plugins/Input/wildmidi/decoderwildmidifactory.cpp100
1 files changed, 100 insertions, 0 deletions
diff --git a/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp b/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp
new file mode 100644
index 000000000..13b3b2e06
--- /dev/null
+++ b/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp
@@ -0,0 +1,100 @@
+/***************************************************************************
+ * Copyright (C) 2008-2010 by Ilya Kotov *
+ * forkotov02@hotmail.ru *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ ***************************************************************************/
+
+#include <QtGui>
+
+#include "wildmidihelper.h"
+#include "decoder_wildmidi.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;
+}
+
+const DecoderProperties DecoderWildMidiFactory::properties() const
+{
+ DecoderProperties properties;
+ properties.name = tr("WildMidi Plugin");
+ properties.filter = "*.mid";
+ properties.description = tr("Midi Files");
+ //properties.contentType = ;
+ properties.hasAbout = FALSE;
+ properties.hasSettings = FALSE;
+ properties.noInput = TRUE;
+ properties.protocols = "file";
+ return properties;
+}
+
+Decoder *DecoderWildMidiFactory::create(const QString &path, QIODevice *input)
+{
+ Q_UNUSED(input);
+ return new DecoderWildMidi(path);
+}
+
+QList<FileInfo *> DecoderWildMidiFactory::createPlayList(const QString &fileName, bool useMetaData)
+{
+ QList <FileInfo*> list;
+ FileInfo *info = new FileInfo(fileName);
+
+ if(WildMidiHelper::instance()->initialize())
+ {
+ void *midi_ptr = WildMidi_Open (fileName.toLocal8Bit());
+ if(midi_ptr)
+ {
+ _WM_Info *wm_info = WildMidi_GetInfo(midi_ptr);
+ info->setLength((qint64)wm_info->approx_total_samples / 48000);
+ WildMidi_Close(midi_ptr);
+ }
+ }
+ list << info;
+ return list;
+}
+
+MetaDataModel* DecoderWildMidiFactory::createMetaDataModel(const QString &path, QObject *parent)
+{
+ /*DetailsDialog *d = new DetailsDialog(parent, path);
+ d -> show();*/
+ return 0;
+}
+
+void DecoderWildMidiFactory::showSettings(QWidget *)
+{}
+
+void DecoderWildMidiFactory::showAbout(QWidget *parent)
+{}
+
+QTranslator *DecoderWildMidiFactory::createTranslator(QObject *parent)
+{
+ QTranslator *translator = new QTranslator(parent);
+ QString locale = QLocale::system().name();
+ translator->load(QString(":/wildmidi_plugin_") + locale);
+ return translator;
+}
+Q_EXPORT_PLUGIN(DecoderWildMidiFactory)