diff --git a/res/Examples/MIDI_LibValidator/MIDI_LibValidator.ino b/res/Examples/MIDI_LibValidator/MIDI_LibValidator.ino index 13af05b..90ed960 100644 --- a/res/Examples/MIDI_LibValidator/MIDI_LibValidator.ino +++ b/res/Examples/MIDI_LibValidator/MIDI_LibValidator.ino @@ -43,11 +43,12 @@ LiquidCrystal lcd(LCD_RS, LCD_EN, LCD_D4, LCD_D5, LCD_D6, LCD_D7); BEGIN_MIDI_NAMESPACE +template class TestFixture { public: typedef const char* String; - typedef bool (*Functor) (void); + typedef bool (*Functor) (MidiInterface&); public: TestFixture(String inTestName, @@ -75,11 +76,11 @@ private: // ----------------------------------------------------------------------------- -template +template class MidiTester { public: - explicit MidiTester(MidiInterface& inInstance) + explicit MidiTester(MidiInterface& inInstance) : mInstance(inInstance) { } @@ -89,7 +90,7 @@ public: } public: - inline bool performTestFixture(TestFixture* inFixture) + inline bool performTestFixture(TestFixture* inFixture) { if (inFixture != 0) { @@ -108,7 +109,7 @@ public: } public: - inline void registerTest(TestFixture* inFixture) + inline void registerTest(TestFixture* inFixture) { mTests[mNumActiveTests++] = inFixture; } @@ -132,15 +133,17 @@ public: } private: - MidiInterface& mInstance; - TestFixture* mTests[NUM_TESTS]; + MidiInterface& mInstance; + TestFixture* mTests[NUM_TESTS]; unsigned mNumActiveTests; }; // ----------------------------------------------------------------------------- -bool testNoteOn() +template +bool testNoteOn(midi::MidiInterface& inMidi) { + inMidi.sendNoteOn(12, 42); return true; } @@ -175,11 +178,17 @@ void setupLEDs() } template -void setupTester(MidiTester& inTester) +void setupTester(midi::MidiTester& inTester) { inTester.registerTest(new midi::TestFixture("Note On", midi::testNoteOn)); } +void setupTesters() +{ + setupTester(testerHW); + setupTester(testerSW); +} + // ----------------------------------------------------------------------------- void setProgressBar(unsigned inProgress, unsigned inTotal)