This is an old version of the documentation. View the latest version here.
Control Surface  1.0.0
MIDI Control Surface library for Arduino
SwitchSelector.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Selector.hpp"
4 #include <Hardware/Button.hpp>
5 
7 
8 template <class Callback = EmptySelectorCallback>
9 class GenericSwitchSelector : public GenericSelector<2, Callback> {
11 
12  public:
14  const Button &button)
15  : GenericSelector<2, Callback>{selectable, callback}, button{button} {}
16 
17  void begin() override {
18  Parent::begin();
19  button.begin();
20  }
21 
22  void update() override {
24  Button::State state = button.update();
25  if (state == Button::Falling)
26  this->set(1);
27  else if (state == Button::Rising)
28  this->set(0);
29  }
30 
32 
33 #ifdef INDIVIDUAL_BUTTON_INVERT
34  void invert() { button.invert(); }
35 #endif
36 
37  private:
39 };
40 
52  public:
55  selectable,
56  {},
57  button,
58  } {}
59 };
60 
GenericSelector< 2, Callback >::selectable
Selectable< N > & selectable
Definition: Selector.hpp:137
Button::Rising
< Input went from high to low (1,0)
Definition: Button.hpp:54
Button::invert
INDIVIDUAL_BUTTON_INVERT_STATIC void invert()
Invert the state of all buttons, or of this specific button (button pressed is HIGH instead of LOW).
Definition: Button.cpp:11
Button.hpp
Button::Falling
< Input went from high to high (1,1)
Definition: Button.hpp:53
GenericSwitchSelector::update
void update() override
Update this updatable.
Definition: SwitchSelector.hpp:22
GenericSwitchSelector
Definition: SwitchSelector.hpp:9
GenericSwitchSelector::getButtonState
Button::State getButtonState() const
Definition: SwitchSelector.hpp:31
Button
A class for reading and debouncing buttons and switches.
Definition: Button.hpp:15
GenericSwitchSelector::button
Button button
Definition: SwitchSelector.hpp:38
Selectable
Definition: Selectable.hpp:11
Button::update
State update()
Read the button and return its new state.
Definition: Button.cpp:17
Button::getState
State getState() const
Get the state of the button, without updating it.
Definition: Button.cpp:34
BEGIN_CS_NAMESPACE
#define BEGIN_CS_NAMESPACE
Definition: NamespaceSettings.hpp:9
GenericSelector< 2, Callback >::set
void set(setting_t newSetting)
Select the given selection.
Definition: Selector.hpp:89
GenericSelector
Definition: Selector.hpp:57
GenericSwitchSelector::GenericSwitchSelector
GenericSwitchSelector(Selectable< 2 > &selectable, const Callback &callback, const Button &button)
Definition: SwitchSelector.hpp:13
SwitchSelector::SwitchSelector
SwitchSelector(Selectable< 2 > &selectable, const Button &button)
Definition: SwitchSelector.hpp:53
GenericSelector< 2, Callback >::update
void update() override
Definition: Selector.hpp:78
GenericSelector< 2, Callback >::callback
Callback callback
Definition: Selector.hpp:140
SwitchSelector
Selector that selects one of two settings, based on the state of a toggle or momentary switch.
Definition: SwitchSelector.hpp:51
Selector.hpp
END_CS_NAMESPACE
#define END_CS_NAMESPACE
Definition: NamespaceSettings.hpp:10
Button::begin
void begin()
Initialize (enable the internal pull-up resistor).
Definition: Button.cpp:9
Button::State
State
An enumeration of the different states a button can be in.
Definition: Button.hpp:50
GenericSwitchSelector::begin
void begin() override
Initialize this updatable.
Definition: SwitchSelector.hpp:17
GenericSelector< 2, Callback >::begin
void begin() override
Definition: Selector.hpp:73