From 0c3fe540e925829022d9d8aa567c2dc2bd3d33d5 Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Wed, 21 Jun 2017 13:03:30 +0800 Subject: Complete rewrite of the MIDI mapper. Enforces single fluidsynth instance. Documentation update. Minor changes to make lite version work. --- core/qmpmidioutrtmidi.hpp | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 core/qmpmidioutrtmidi.hpp (limited to 'core/qmpmidioutrtmidi.hpp') diff --git a/core/qmpmidioutrtmidi.hpp b/core/qmpmidioutrtmidi.hpp new file mode 100644 index 0000000..48ee0cf --- /dev/null +++ b/core/qmpmidioutrtmidi.hpp @@ -0,0 +1,36 @@ +#ifndef QMPMIDIMAPPERS_H +#define QMPMIDIMAPPERS_H +#include +#define QMP_MAIN +#include "../include/qmpcorepublic.hpp" +#include RT_MIDI_H +class qmpMidiOutRtMidi:public qmpMidiOutDevice +{ +private: + unsigned portid; + RtMidiOut* outport; +public: + qmpMidiOutRtMidi(unsigned _portid); + ~qmpMidiOutRtMidi(); + void deviceInit(); + void deviceDeinit(); + void basicMessage(uint8_t type,uint8_t p1,uint8_t p2); + void extendedMessage(uint8_t length,const char *data); + void rpnMessage(uint8_t ch,uint16_t type,uint16_t val); + void nrpnMessage(uint8_t ch,uint16_t type,uint16_t val); + void panic(uint8_t ch); + void reset(uint8_t ch); + void onMapped(uint8_t ch,int refcnt); + void onUnmapped(uint8_t ch,int refcnt); +}; +class qmpRtMidiManager +{ + private: + static RtMidiOut* dummy; + std::vector> devices; + public: + void createDevices(); + void deleteDevices(); + std::vector> getDevices(); +}; +#endif // QMPMIDIMAPPERS_H -- cgit v1.2.3