diff --git a/src/plug/JaySynth.cpp b/src/plug/JaySynth.cpp index ee686e3..94424c7 100644 --- a/src/plug/JaySynth.cpp +++ b/src/plug/JaySynth.cpp @@ -1102,9 +1102,9 @@ void JaySynth::handleMidiEvent (const MidiMessage& m) bool isNrpnProcessing = mMidiNrpn.process(midiCC_info.ID, midiCC_info.value_raw); if (mMidiNrpn.isValid()) { - midiCC_info.ID = mMidiNrpn.getCommand(); + midiCC_info.ID = mMidiNrpn.getId(); midiCC_info.type = MIDI_CONTROLLER_TYPE_NRPN; - midiCC_info.value_raw = mMidiNrpn.consumeValue(); + midiCC_info.value_raw = mMidiNrpn.getValue(); midiCC_info.value = (synth_float_t)midiCC_info.value_raw/mMidiNrpn.getMaxValue(); SynthDebug("NRPN: controllerNumber=%d, controllerValue=%d", midiCC_info.ID, midiCC_info.value_raw); } diff --git a/src/plug/MidiNrpn.cpp b/src/plug/MidiNrpn.cpp index 2f37bd2..8cddae5 100644 --- a/src/plug/MidiNrpn.cpp +++ b/src/plug/MidiNrpn.cpp @@ -2,7 +2,7 @@ MidiNrpn::MidiNrpn() : mState(0) -, mCommand(0) +, mId(0) , mValue(0) , mMaxValue(0) , mIsValid(false) @@ -18,42 +18,34 @@ MidiNrpn::~MidiNrpn() void MidiNrpn::reset() { mIsValid = false; - mCommand = 0; + mId = 0; mValue = 0; mMaxValue = 0; mState = 0; } -int MidiNrpn::getCommand() +int MidiNrpn::getId() { - if (!mIsValid) - { - return -1; - } - return mCommand; + return mId; } -bool MidiNrpn::isValid() +bool MidiNrpn::isValid(bool doClear) { - return mIsValid; + bool result = mIsValid; + if (doClear) + { + mIsValid = false; + } + return result; } -int MidiNrpn::consumeValue() +int MidiNrpn::getValue() { - if (!mIsValid) - { - return -1; - } - mIsValid = false; return mValue; } int MidiNrpn::getMaxValue() { - if (!mIsValid) - { - return 0; - } return mMaxValue; } @@ -66,7 +58,7 @@ bool MidiNrpn::process(uint8_t controllerNumber, uint8_t controllerValue) if (controllerNumber == 99) { state_nxt = 1; - mCommand = (uint16_t)controllerValue & 0x007F; + mId = (uint16_t)controllerValue & 0x007F; } break; @@ -74,7 +66,7 @@ bool MidiNrpn::process(uint8_t controllerNumber, uint8_t controllerValue) if (controllerNumber == 98) { state_nxt = 2; - mCommand = mCommand << 7 | (uint16_t)controllerValue & 0x007F; + mId = mId << 7 | (uint16_t)controllerValue & 0x007F; } else { diff --git a/src/plug/MidiNrpn.h b/src/plug/MidiNrpn.h index 92ffe15..68599b6 100644 --- a/src/plug/MidiNrpn.h +++ b/src/plug/MidiNrpn.h @@ -13,10 +13,10 @@ class MidiNrpn void reset(); - bool isValid(); + bool isValid(bool doClear=true); - int getCommand(); - int consumeValue(); + int getId(); + int getValue(); int getMaxValue(); bool process(uint8_t controllerNumber, uint8_t controllerValue); @@ -24,7 +24,7 @@ class MidiNrpn private: int mState; - int mCommand; + int mId; int mValue; int mMaxValue; bool mIsValid;