Files
DrumMachine/midiinwrapper.h

39 lines
890 B
C
Raw Normal View History

2020-04-25 20:53:49 +02:00
#pragma once
#include <QObject>
#include <QString>
#include "rtmidi/RtMidi.h"
namespace midi { struct MidiMessage; }
2020-04-25 20:53:49 +02:00
class MidiInWrapper : public QObject
{
Q_OBJECT
public:
MidiInWrapper(RtMidi::Api api = RtMidi::UNSPECIFIED,
const QString &clientName = "RtMidi Input Client",
unsigned int queueSizeLimit = 100,
QObject *parent = nullptr);
2020-04-25 20:53:49 +02:00
void openPort(unsigned int portNumber, const QString &portName);
2020-04-25 20:53:49 +02:00
void openVirtualPort(const QString &portName);
void closePort();
bool isPortOpen() const;
QStringList portNames();
signals:
void midiReceived(const midi::MidiMessage &message);
2023-06-10 21:31:50 +02:00
void onQuarterNote();
2020-04-25 20:53:49 +02:00
private:
static void mycallback(double deltatime, std::vector<unsigned char> *message, void *userData);
RtMidiIn midiIn;
2023-06-10 21:31:50 +02:00
int m_timerCounter{};
bool m_counting{true};
2020-04-25 20:53:49 +02:00
};