#ifndef PADCONFIGURATION_H #define PADCONFIGURATION_H class PadSelection; class MidiMessage; class AbsInput; class MidiPortOut; class MidiPortIn; #include #include "MidiPort.h" class PadDefinition; class PadConfiguration : public IMidiPortErrorListener, public IMidiPortListener { public: PadConfiguration(Json::Value& v); virtual ~PadConfiguration(); virtual void on_error(RtMidiError::Type type, const std::string &errorText); virtual void on_new_message(double ts, MidiMessage* m); PadSelection* selection_by_name(const std::string&); static PadConfiguration* from_file(const std::string&); void send_init(); PadDefinition& get_pad_definition(); protected: std::string m_name; std::string m_description; std::vector m_selections; PadDefinition* _m_pad_definition_ptr; PadDefinition& m_pad_definition; MidiPortOut* m_oport; MidiPortOut* m_cport; MidiPortIn* m_iport; int m_width; int m_height; std::vector& m_matrix; }; #endif // PADCONFIGURATION_H