xtFrontPanel.h (693B)
1 #pragma once 2 3 #include "xtLcd.h" 4 5 #include "juce_gui_basics/juce_gui_basics.h" 6 7 #include "xtLib/xtLeds.h" 8 9 class Controller; 10 11 namespace xtJucePlugin 12 { 13 class Editor; 14 15 class FrontPanel 16 { 17 public: 18 explicit FrontPanel(const Editor& _editor, Controller& _controller); 19 ~FrontPanel(); 20 21 void processSysex(const std::vector<uint8_t>& _msg) const; 22 23 XtLcd* getLcd() const 24 { 25 return m_lcd.get(); 26 } 27 28 private: 29 void processLCDUpdate(const std::vector<uint8_t>& _msg) const; 30 void processLedUpdate(const std::vector<uint8_t>& _msg) const; 31 32 std::array<juce::Button*, static_cast<uint32_t>(xt::LedType::Count)> m_leds{}; 33 34 Controller& m_controller; 35 std::unique_ptr<XtLcd> m_lcd; 36 }; 37 }