AnalogTapeModel

Physical modelling signal processing for analog tape recording
Log | Files | Refs | Submodules | README | LICENSE

PowerButton.h (1263B)


      1 #ifndef POWERBUTTON_H_INCLUDED
      2 #define POWERBUTTON_H_INCLUDED
      3 
      4 #include <JuceHeader.h>
      5 
      6 class PowerButton : public DrawableButton
      7 {
      8 public:
      9     PowerButton();
     10 
     11     enum ColourIDs
     12     {
     13         buttonColourId,
     14         buttonOnColourId,
     15     };
     16 
     17     void mouseDown (const MouseEvent& e) override;
     18     void mouseUp (const MouseEvent& e) override;
     19 
     20     void updateColours();
     21 
     22 private:
     23     JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PowerButton)
     24 };
     25 
     26 //===============================================================
     27 class PowerButtonItem : public foleys::GuiItem
     28 {
     29 public:
     30     FOLEYS_DECLARE_GUI_FACTORY (PowerButtonItem)
     31 
     32     static const Identifier pOnClick;
     33 
     34     PowerButtonItem (foleys::MagicGUIBuilder& builder, const juce::ValueTree& node);
     35 
     36     void resized() override;
     37     void update() override;
     38     std::vector<foleys::SettableProperty> getSettableProperties() const override;
     39     String getControlledParameterID (juce::Point<int>) override;
     40 
     41     juce::Component* getWrappedComponent() override
     42     {
     43         return &button;
     44     }
     45 
     46 private:
     47     PowerButton button;
     48     std::unique_ptr<juce::AudioProcessorValueTreeState::ButtonAttachment> attachment;
     49 
     50     JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PowerButtonItem)
     51 };
     52 
     53 #endif // POWERBUTTON_H_INCLUDED