Using new definitions for Thru.
This commit is contained in:
parent
6abbdd7963
commit
f1f0ef41ce
|
|
@ -205,12 +205,12 @@ private:
|
|||
// MIDI Soft Thru
|
||||
|
||||
public:
|
||||
inline MidiFilterMode getFilterMode() const;
|
||||
inline Thru::Mode getFilterMode() const;
|
||||
inline bool getThruState() const;
|
||||
|
||||
inline void turnThruOn(MidiFilterMode inThruFilterMode = Full);
|
||||
inline void turnThruOn(Thru::Mode inThruFilterMode = Thru::Full);
|
||||
inline void turnThruOff();
|
||||
inline void setThruFilterMode(MidiFilterMode inThruFilterMode);
|
||||
inline void setThruFilterMode(Thru::Mode inThruFilterMode);
|
||||
|
||||
private:
|
||||
void thruFilter(byte inChannel);
|
||||
|
|
@ -237,7 +237,7 @@ private:
|
|||
unsigned mCurrentRpnNumber;
|
||||
unsigned mCurrentNrpnNumber;
|
||||
bool mThruActivated : 1;
|
||||
MidiFilterMode mThruFilterMode : 7;
|
||||
Thru::Mode mThruFilterMode : 7;
|
||||
MidiMessage mMessage;
|
||||
|
||||
|
||||
|
|
|
|||
30
src/MIDI.hpp
30
src/MIDI.hpp
|
|
@ -42,7 +42,7 @@ inline MidiInterface<SerialPort, Settings>::MidiInterface(SerialPort& inSerial)
|
|||
, mCurrentRpnNumber(0xffff)
|
||||
, mCurrentNrpnNumber(0xffff)
|
||||
, mThruActivated(true)
|
||||
, mThruFilterMode(Full)
|
||||
, mThruFilterMode(Thru::Full)
|
||||
{
|
||||
mNoteOffCallback = 0;
|
||||
mNoteOnCallback = 0;
|
||||
|
|
@ -107,7 +107,7 @@ void MidiInterface<SerialPort, Settings>::begin(Channel inChannel)
|
|||
mMessage.data1 = 0;
|
||||
mMessage.data2 = 0;
|
||||
|
||||
mThruFilterMode = Full;
|
||||
mThruFilterMode = Thru::Full;
|
||||
mThruActivated = true;
|
||||
}
|
||||
|
||||
|
|
@ -1250,20 +1250,20 @@ void MidiInterface<SerialPort, Settings>::launchCallback()
|
|||
/*! \brief Set the filter for thru mirroring
|
||||
\param inThruFilterMode a filter mode
|
||||
|
||||
@see MidiFilterMode
|
||||
@see Thru::Mode
|
||||
*/
|
||||
template<class SerialPort, class Settings>
|
||||
void MidiInterface<SerialPort, Settings>::setThruFilterMode(MidiFilterMode inThruFilterMode)
|
||||
void MidiInterface<SerialPort, Settings>::setThruFilterMode(Thru::Mode inThruFilterMode)
|
||||
{
|
||||
mThruFilterMode = inThruFilterMode;
|
||||
if (mThruFilterMode != Off)
|
||||
if (mThruFilterMode != Thru::Off)
|
||||
mThruActivated = true;
|
||||
else
|
||||
mThruActivated = false;
|
||||
}
|
||||
|
||||
template<class SerialPort, class Settings>
|
||||
MidiFilterMode MidiInterface<SerialPort, Settings>::getFilterMode() const
|
||||
Thru::Mode MidiInterface<SerialPort, Settings>::getFilterMode() const
|
||||
{
|
||||
return mThruFilterMode;
|
||||
}
|
||||
|
|
@ -1275,7 +1275,7 @@ bool MidiInterface<SerialPort, Settings>::getThruState() const
|
|||
}
|
||||
|
||||
template<class SerialPort, class Settings>
|
||||
void MidiInterface<SerialPort, Settings>::turnThruOn(MidiFilterMode inThruFilterMode)
|
||||
void MidiInterface<SerialPort, Settings>::turnThruOn(Thru::Mode inThruFilterMode)
|
||||
{
|
||||
mThruActivated = true;
|
||||
mThruFilterMode = inThruFilterMode;
|
||||
|
|
@ -1285,7 +1285,7 @@ template<class SerialPort, class Settings>
|
|||
void MidiInterface<SerialPort, Settings>::turnThruOff()
|
||||
{
|
||||
mThruActivated = false;
|
||||
mThruFilterMode = Off;
|
||||
mThruFilterMode = Thru::Off;
|
||||
}
|
||||
|
||||
/*! @} */ // End of doc group MIDI Thru
|
||||
|
|
@ -1300,7 +1300,7 @@ template<class SerialPort, class Settings>
|
|||
void MidiInterface<SerialPort, Settings>::thruFilter(Channel inChannel)
|
||||
{
|
||||
// If the feature is disabled, don't do anything.
|
||||
if (!mThruActivated || (mThruFilterMode == Off))
|
||||
if (!mThruActivated || (mThruFilterMode == Thru::Off))
|
||||
return;
|
||||
|
||||
// First, check if the received message is Channel
|
||||
|
|
@ -1312,14 +1312,14 @@ void MidiInterface<SerialPort, Settings>::thruFilter(Channel inChannel)
|
|||
// Now let's pass it to the output
|
||||
switch (mThruFilterMode)
|
||||
{
|
||||
case Full:
|
||||
case Thru::Full:
|
||||
send(mMessage.type,
|
||||
mMessage.data1,
|
||||
mMessage.data2,
|
||||
mMessage.channel);
|
||||
break;
|
||||
|
||||
case SameChannel:
|
||||
case Thru::SameChannel:
|
||||
if (filter_condition)
|
||||
{
|
||||
send(mMessage.type,
|
||||
|
|
@ -1329,7 +1329,7 @@ void MidiInterface<SerialPort, Settings>::thruFilter(Channel inChannel)
|
|||
}
|
||||
break;
|
||||
|
||||
case DifferentChannel:
|
||||
case Thru::DifferentChannel:
|
||||
if (!filter_condition)
|
||||
{
|
||||
send(mMessage.type,
|
||||
|
|
@ -1339,12 +1339,6 @@ void MidiInterface<SerialPort, Settings>::thruFilter(Channel inChannel)
|
|||
}
|
||||
break;
|
||||
|
||||
case Off:
|
||||
// Do nothing.
|
||||
// Technically it's impossible to get there because
|
||||
// the case was already tested earlier.
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,10 +30,10 @@ TEST(MidiThru, defaultValues)
|
|||
MidiInterface midi(serial);
|
||||
|
||||
EXPECT_EQ(midi.getThruState(), true);
|
||||
EXPECT_EQ(midi.getFilterMode(), midi::Full);
|
||||
EXPECT_EQ(midi.getFilterMode(), midi::Thru::Full);
|
||||
midi.begin(); // Should not change the state
|
||||
EXPECT_EQ(midi.getThruState(), true);
|
||||
EXPECT_EQ(midi.getFilterMode(), midi::Full);
|
||||
EXPECT_EQ(midi.getFilterMode(), midi::Thru::Full);
|
||||
}
|
||||
|
||||
TEST(MidiThru, beginEnablesThru)
|
||||
|
|
@ -43,10 +43,10 @@ TEST(MidiThru, beginEnablesThru)
|
|||
|
||||
midi.turnThruOff();
|
||||
EXPECT_EQ(midi.getThruState(), false);
|
||||
EXPECT_EQ(midi.getFilterMode(), midi::Off);
|
||||
EXPECT_EQ(midi.getFilterMode(), midi::Thru::Off);
|
||||
midi.begin();
|
||||
EXPECT_EQ(midi.getThruState(), true);
|
||||
EXPECT_EQ(midi.getFilterMode(), midi::Full);
|
||||
EXPECT_EQ(midi.getFilterMode(), midi::Thru::Full);
|
||||
}
|
||||
|
||||
TEST(MidiThru, setGet)
|
||||
|
|
@ -56,30 +56,30 @@ TEST(MidiThru, setGet)
|
|||
|
||||
midi.turnThruOff();
|
||||
EXPECT_EQ(midi.getThruState(), false);
|
||||
EXPECT_EQ(midi.getFilterMode(), midi::Off);
|
||||
EXPECT_EQ(midi.getFilterMode(), midi::Thru::Off);
|
||||
|
||||
midi.turnThruOn();
|
||||
EXPECT_EQ(midi.getThruState(), true);
|
||||
EXPECT_EQ(midi.getFilterMode(), midi::Full);
|
||||
midi.turnThruOn(midi::SameChannel);
|
||||
EXPECT_EQ(midi.getFilterMode(), midi::Thru::Full);
|
||||
midi.turnThruOn(midi::Thru::SameChannel);
|
||||
EXPECT_EQ(midi.getThruState(), true);
|
||||
EXPECT_EQ(midi.getFilterMode(), midi::SameChannel);
|
||||
midi.turnThruOn(midi::DifferentChannel);
|
||||
EXPECT_EQ(midi.getFilterMode(), midi::Thru::SameChannel);
|
||||
midi.turnThruOn(midi::Thru::DifferentChannel);
|
||||
EXPECT_EQ(midi.getThruState(), true);
|
||||
EXPECT_EQ(midi.getFilterMode(), midi::DifferentChannel);
|
||||
EXPECT_EQ(midi.getFilterMode(), midi::Thru::DifferentChannel);
|
||||
|
||||
midi.setThruFilterMode(midi::Full);
|
||||
midi.setThruFilterMode(midi::Thru::Full);
|
||||
EXPECT_EQ(midi.getThruState(), true);
|
||||
EXPECT_EQ(midi.getFilterMode(), midi::Full);
|
||||
midi.setThruFilterMode(midi::SameChannel);
|
||||
EXPECT_EQ(midi.getFilterMode(), midi::Thru::Full);
|
||||
midi.setThruFilterMode(midi::Thru::SameChannel);
|
||||
EXPECT_EQ(midi.getThruState(), true);
|
||||
EXPECT_EQ(midi.getFilterMode(), midi::SameChannel);
|
||||
midi.setThruFilterMode(midi::DifferentChannel);
|
||||
EXPECT_EQ(midi.getFilterMode(), midi::Thru::SameChannel);
|
||||
midi.setThruFilterMode(midi::Thru::DifferentChannel);
|
||||
EXPECT_EQ(midi.getThruState(), true);
|
||||
EXPECT_EQ(midi.getFilterMode(), midi::DifferentChannel);
|
||||
midi.setThruFilterMode(midi::Off);
|
||||
EXPECT_EQ(midi.getFilterMode(), midi::Thru::DifferentChannel);
|
||||
midi.setThruFilterMode(midi::Thru::Off);
|
||||
EXPECT_EQ(midi.getThruState(), false);
|
||||
EXPECT_EQ(midi.getFilterMode(), midi::Off);
|
||||
EXPECT_EQ(midi.getFilterMode(), midi::Thru::Off);
|
||||
}
|
||||
|
||||
END_UNNAMED_NAMESPACE
|
||||
|
|
|
|||
Loading…
Reference in New Issue