#include #include #include #include #include "evoral/Sequence.hpp" #include "evoral/TypeMap.hpp" #include "evoral/EventSink.hpp" #include "evoral/midi_events.h" #include "evoral/Control.hpp" using namespace Evoral; class DummyTypeMap : public TypeMap { public: enum DummyEventType { NOTE, CONTROL, SYSEX }; ~DummyTypeMap() {} bool type_is_midi (uint32_t /*type*/) const { return true; } uint8_t parameter_midi_type(const Parameter& param) const { switch (param.type()) { case CONTROL: return MIDI_CMD_CONTROL; case SYSEX: return MIDI_CMD_COMMON_SYSEX; default: return 0; }; } uint32_t midi_event_type(uint8_t status) const { status &= 0xf0; switch (status) { case MIDI_CMD_CONTROL: return CONTROL; case MIDI_CMD_COMMON_SYSEX: return SYSEX; default: return 0; }; } ParameterDescriptor descriptor(const Parameter& param) const { return ParameterDescriptor(); } std::string to_symbol(const Parameter& /*param*/) const { return "control"; } }; template class MySequence : public Sequence