mqPartSelect.h (664B)
1 #pragma once 2 3 #include "jucePluginLib/parameterbinding.h" 4 5 namespace mqJucePlugin 6 { 7 class mqPartButton; 8 class Controller; 9 class Editor; 10 11 class mqPartSelect 12 { 13 public: 14 explicit mqPartSelect(mqJucePlugin::Editor& _editor, Controller& _controller, pluginLib::ParameterBinding& _parameterBinding); 15 16 void onPlayModeChanged() const; 17 18 void selectPart(uint8_t _index) const; 19 20 private: 21 void updateUiState() const; 22 23 struct Part 24 { 25 mqPartButton* button = nullptr; 26 juce::Button* led = nullptr; 27 }; 28 29 mqJucePlugin::Editor& m_editor; 30 Controller& m_controller; 31 pluginLib::ParameterBinding& m_parameterBinding; 32 std::array<Part, 16> m_parts{}; 33 }; 34 }