Pulling the latest commit of QMidi library
parent
a3d97b4f7f
commit
8403e8be05
|
|
@ -36,6 +36,14 @@ void QMidiIn::openPort(QString name)
|
|||
}
|
||||
}
|
||||
}
|
||||
void QMidiIn::closePort()
|
||||
{
|
||||
_midiIn->closePort();
|
||||
}
|
||||
bool QMidiIn::isPortOpen()
|
||||
{
|
||||
return _midiIn->isPortOpen();
|
||||
}
|
||||
void QMidiIn::setIgnoreTypes(bool sysex, bool time, bool sense)
|
||||
{
|
||||
_midiIn->ignoreTypes(sysex, time, sense);
|
||||
|
|
@ -85,6 +93,9 @@ void QMidiIn::callback(double deltatime, std::vector<unsigned char> *message, vo
|
|||
midiMessage->setPitch((unsigned int) message->at(1));
|
||||
midiMessage->setValue((unsigned int) message->at(2));
|
||||
break;
|
||||
case MIDI_SYSEX:
|
||||
midiMessage->setSysExData(*message);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@ public:
|
|||
void openPort(QString name);
|
||||
void openPort(unsigned int index);
|
||||
void openVirtualPort(QString name);
|
||||
void closePort();
|
||||
bool isPortOpen();
|
||||
void setIgnoreTypes(bool sysex = true, bool time = true, bool sense = true);
|
||||
private:
|
||||
void onMidiMessageReceive(QMidiMessage *msg);
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ QMidiMessage::QMidiMessage(const QMidiMessage &other)
|
|||
_control = other._control;
|
||||
_value = other._value;
|
||||
_deltaTime = other._deltaTime;
|
||||
_sysExData = other._sysExData;
|
||||
_rawMessage = other._rawMessage;
|
||||
}
|
||||
|
||||
|
|
@ -31,6 +32,7 @@ QMidiMessage *QMidiMessage::clear()
|
|||
_control = 0;
|
||||
_value = 0;
|
||||
_deltaTime = 0;
|
||||
_sysExData.clear();
|
||||
_rawMessage.clear();
|
||||
}
|
||||
|
||||
|
|
@ -69,6 +71,11 @@ double QMidiMessage::getDeltaTime()
|
|||
return _deltaTime;
|
||||
}
|
||||
|
||||
std::vector<unsigned char> QMidiMessage::getSysExData()
|
||||
{
|
||||
return _sysExData;
|
||||
}
|
||||
|
||||
QMidiMessage *QMidiMessage::setStatus(QMidiStatus status)
|
||||
{
|
||||
_status = status;
|
||||
|
|
@ -117,6 +124,11 @@ QMidiMessage *QMidiMessage::setRawMessage(std::vector<unsigned char> rawMessage)
|
|||
return this;
|
||||
}
|
||||
|
||||
QMidiMessage *QMidiMessage::setSysExData(std::vector<unsigned char> sysExData){
|
||||
_sysExData = sysExData;
|
||||
return this;
|
||||
}
|
||||
|
||||
std::vector<unsigned char> QMidiMessage::getRawMessage()
|
||||
{
|
||||
if(_rawMessage.size() == 0)
|
||||
|
|
@ -147,7 +159,14 @@ std::vector<unsigned char> QMidiMessage::getRawMessage()
|
|||
_rawMessage.push_back(_value);
|
||||
break;
|
||||
}
|
||||
case MIDI_SYSEX:{
|
||||
_rawMessage = _sysExData;
|
||||
if(_sysExData.back() != MIDI_SYSEX_END) _rawMessage.push_back(MIDI_SYSEX_END);
|
||||
break;
|
||||
}
|
||||
|
||||
//TODO: check protocol and implement other cases
|
||||
|
||||
default:{
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,6 +54,8 @@ public:
|
|||
unsigned int getControl();
|
||||
unsigned int getValue();
|
||||
double getDeltaTime();
|
||||
std::vector<unsigned char> getSysExData();
|
||||
|
||||
|
||||
QMidiMessage* setStatus(QMidiStatus status);
|
||||
QMidiMessage* setChannel(unsigned int channel);
|
||||
|
|
@ -62,6 +64,7 @@ public:
|
|||
QMidiMessage* setControl(unsigned int control);
|
||||
QMidiMessage* setValue(unsigned int value);
|
||||
QMidiMessage* setDeltaTime(double deltaTime);
|
||||
QMidiMessage* setSysExData(std::vector<unsigned char> sysExData);
|
||||
QMidiMessage* setRawMessage(std::vector<unsigned char> rawMessage);
|
||||
|
||||
std::vector<unsigned char> getRawMessage();
|
||||
|
|
@ -74,6 +77,7 @@ public:
|
|||
unsigned int _control;
|
||||
unsigned int _value;
|
||||
double _deltaTime;
|
||||
std::vector<unsigned char> _sysExData;
|
||||
|
||||
std::vector<unsigned char> _rawMessage;
|
||||
signals:
|
||||
|
|
|
|||
|
|
@ -24,6 +24,14 @@ void QMidiOut::openVirtualPort(QString name)
|
|||
{
|
||||
_midiOut->openVirtualPort(name.toStdString());
|
||||
}
|
||||
void QMidiOut::closePort()
|
||||
{
|
||||
_midiOut->closePort();
|
||||
}
|
||||
bool QMidiOut::isPortOpen()
|
||||
{
|
||||
return _midiOut->isPortOpen();
|
||||
}
|
||||
void QMidiOut::sendNoteOn(unsigned int channel, unsigned int pitch, unsigned int velocity)
|
||||
{
|
||||
std::vector<unsigned char> message;
|
||||
|
|
|
|||
|
|
@ -19,6 +19,8 @@ public:
|
|||
void sendRawMessage(std::vector<unsigned char> &message);
|
||||
void openPort(unsigned int index);
|
||||
void openVirtualPort(QString name);
|
||||
void closePort();
|
||||
bool isPortOpen();
|
||||
private:
|
||||
RtMidiOut *_midiOut;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue