aboutsummaryrefslogtreecommitdiff
path: root/midifmt-plugin/midifmtplugin.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'midifmt-plugin/midifmtplugin.hpp')
-rw-r--r--midifmt-plugin/midifmtplugin.hpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/midifmt-plugin/midifmtplugin.hpp b/midifmt-plugin/midifmtplugin.hpp
new file mode 100644
index 0000000..f6284dd
--- /dev/null
+++ b/midifmt-plugin/midifmtplugin.hpp
@@ -0,0 +1,45 @@
+#ifndef MIDIFMTPLUGIN_HPP
+#define MIDIFMTPLUGIN_HPP
+
+#include <cstdio>
+#include "../include/qmpcorepublic.hpp"
+
+class CMidiStreamReader:public IMidiFileReader
+{
+ private:
+ CMidiFile* ret;
+ FILE* f;
+ int eventdiscarded,fmt;
+ uint32_t readDWLE();
+ bool RIFFHeaderReader();
+ bool midsBodyReader();
+ public:
+ CMidiStreamReader();
+ ~CMidiStreamReader();
+ CMidiFile* readFile(const char *fn);
+ void discardCurrentEvent();
+ void commitEventChange(SEventCallBackData d);
+};
+
+class qmpMidiFmtPlugin:public qmpPluginIntf
+{
+ private:
+ CMidiStreamReader* mdsreader;
+ public:
+ static qmpPluginAPI* api;
+ qmpMidiFmtPlugin(qmpPluginAPI* _api);
+ ~qmpMidiFmtPlugin();
+ void init();
+ void deinit();
+ const char* pluginGetName();
+ const char* pluginGetVersion();
+};
+
+extern "C"{
+ EXPORTSYM qmpPluginIntf* qmpPluginGetInterface(qmpPluginAPI* api)
+ {return new qmpMidiFmtPlugin(api);}
+ EXPORTSYM const char* qmpPluginGetAPIRev()
+ {return QMP_PLUGIN_API_REV;}
+}
+
+#endif // MIDIFMTPLUGIN_HPP