makes changes requested in #232 discussion

This commit is contained in:
Eric Sherman 2021-08-06 03:10:36 -04:00
parent 00206071e6
commit 08f6f53d12
No known key found for this signature in database
GPG Key ID: 5FF6E54D61748174
3 changed files with 6 additions and 38 deletions

View File

@ -236,8 +236,6 @@ private:
// MIDI Soft Thru
public:
inline bool getThruState() const;
using ThruFilterCallback = bool (*)(const MidiMessage& inMessage);
using ThruMapCallback = MidiMessage (*)(const MidiMessage& inMessage);
inline void turnThruOn(ThruFilterCallback fptr = thruOn);
@ -246,7 +244,7 @@ public:
inline void setThruMap(ThruMapCallback fptr) { mThruMapCallback = fptr; }
private:
void thruFilter();
void processThru();
static inline bool thruOn(const MidiMessage& inMessage) { (void)inMessage; return true; }
static inline bool thruOff(const MidiMessage& inMessage) { (void)inMessage; return false; }
static inline MidiMessage thruEcho(const MidiMessage& inMessage) { return inMessage; }

View File

@ -769,7 +769,7 @@ inline bool MidiInterface<Transport, Settings, Platform>::read(Channel inChannel
if (channelMatch)
launchCallback();
thruFilter();
processThru();
return channelMatch;
}
@ -1341,12 +1341,6 @@ void MidiInterface<Transport, Settings, Platform>::launchCallback()
@{
*/
template<class Transport, class Settings, class Platform>
inline bool MidiInterface<Transport, Settings, Platform>::getThruState() const
{
return mThruFilterCallback != thruOff;
}
template<class Transport, class Settings, class Platform>
inline void MidiInterface<Transport, Settings, Platform>::turnThruOn(ThruFilterCallback fptr)
{
@ -1375,7 +1369,7 @@ inline void MidiInterface<Transport, Settings, Platform>::UpdateLastSentTime()
// - Channel messages are passed to the output whether their channel
// is matching the input channel and the filter setting
template<class Transport, class Settings, class Platform>
void MidiInterface<Transport, Settings, Platform>::thruFilter()
void MidiInterface<Transport, Settings, Platform>::processThru()
{
if (!mThruFilterCallback(mMessage))
return;
@ -1383,7 +1377,7 @@ void MidiInterface<Transport, Settings, Platform>::thruFilter()
MidiMessage thruMessage = mThruMapCallback(mMessage);
// First, check if the received message is Channel
if (mMessage.type >= NoteOff && mMessage.type <= PitchBend)
if (thruMessage.type >= NoteOff && thruMessage.type <= PitchBend)
{
send(thruMessage.type,
thruMessage.data1,
@ -1393,7 +1387,7 @@ void MidiInterface<Transport, Settings, Platform>::thruFilter()
else
{
// Send the message to the output
switch (mMessage.type)
switch (thruMessage.type)
{
// Real Time and 1 byte
case Clock:
@ -1403,7 +1397,7 @@ void MidiInterface<Transport, Settings, Platform>::thruFilter()
case ActiveSensing:
case SystemReset:
case TuneRequest:
sendRealTime(mMessage.type);
sendRealTime(thruMessage.type);
break;
case SystemExclusive:

View File

@ -59,30 +59,6 @@ MidiMessage thruMapNoteOnFullVelocity(const MidiMessage& inMessage)
// -----------------------------------------------------------------------------
TEST(MidiThru, defaultValues)
{
EXPECT_EQ(midi.getThruState(), true);
midi.begin(); // Should not change the state
EXPECT_EQ(midi.getThruState(), true);
}
TEST(MidiThru, beginEnablesThru)
{
midi.turnThruOff();
EXPECT_EQ(midi.getThruState(), false);
midi.begin();
EXPECT_EQ(midi.getThruState(), true);
}
TEST(MidiThru, setGet)
{
midi.turnThruOff();
EXPECT_EQ(midi.getThruState(), false);
midi.turnThruOn();
EXPECT_EQ(midi.getThruState(), true);
}
TEST(MidiThru, off)
{
midi.begin(MIDI_CHANNEL_OMNI);