PadConfiguration.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #ifndef PADCONFIGURATION_H
  2. #define PADCONFIGURATION_H
  3. class PadSelection;
  4. class MidiMessage;
  5. class AbsInput;
  6. class MidiPortOut;
  7. class MidiPortIn;
  8. #include <json/json.h>
  9. #include "MidiPort.h"
  10. class PadDefinition;
  11. class PadConfiguration : public IMidiPortErrorListener, public IMidiPortListener
  12. {
  13. public:
  14. PadConfiguration(Json::Value& v);
  15. virtual ~PadConfiguration();
  16. virtual void on_error(RtMidiError::Type type, const std::string &errorText);
  17. virtual void on_new_message(double ts, MidiMessage* m);
  18. PadSelection* selection_by_name(const std::string&);
  19. static PadConfiguration* from_file(const std::string&);
  20. void send_init();
  21. PadDefinition& get_pad_definition();
  22. protected:
  23. std::string m_name;
  24. std::string m_description;
  25. std::vector<PadSelection*> m_selections;
  26. PadDefinition* _m_pad_definition_ptr;
  27. PadDefinition& m_pad_definition;
  28. MidiPortOut* m_oport;
  29. MidiPortOut* m_cport;
  30. MidiPortIn* m_iport;
  31. int m_width;
  32. int m_height;
  33. std::vector<AbsInput*>& m_matrix;
  34. };
  35. #endif // PADCONFIGURATION_H