Control Surface
main
MIDI Control Surface library for Arduino
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Selectors
IncrementDecrementSelector.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include "
Selector.hpp
"
4
#include <
AH/Hardware/IncrementDecrementButtons.hpp
>
5
6
BEGIN_CS_NAMESPACE
7
8
template
<setting_t N,
class
Callback = EmptySelectorCallback>
9
class
GenericIncrementDecrementSelector
:
public
GenericSelector
<N, Callback> {
10
using
Parent
=
GenericSelector<N, Callback>
;
11
12
public
:
13
GenericIncrementDecrementSelector
(
14
Selectable<N>
&
selectable
,
const
Callback &
callback
,
15
const
AH::IncrementDecrementButtons
&
buttons
,
Wrap
wrap
=
Wrap::Wrap
)
16
:
GenericSelector
<N, Callback> {
selectable
,
callback
},
buttons
(
buttons
),
17
wrap
(
wrap
) {}
18
19
void
begin
()
override
{
20
Parent::begin
();
21
buttons
.begin();
22
}
23
24
void
update
()
override
{
25
Parent::update
();
26
using
IncrDecrButtons =
AH::IncrementDecrementButtons
;
27
switch
(
buttons
.update()) {
28
case
IncrDecrButtons::Nothing:
break
;
29
case
IncrDecrButtons::IncrementShort:
// fallthrough
30
case
IncrDecrButtons::IncrementLong:
// fallthrough
31
case
IncrDecrButtons::IncrementHold: this->
increment
(
wrap
);
break
;
32
case
IncrDecrButtons::DecrementShort:
// fallthrough
33
case
IncrDecrButtons::DecrementLong:
// fallthrough
34
case
IncrDecrButtons::DecrementHold: this->
decrement
(
wrap
);
break
;
35
case
IncrDecrButtons::Reset: this->
reset
();
break
;
36
default
:
break
;
37
}
38
}
39
41
void
invert
() {
buttons
.invert(); }
42
43
AH::IncrementDecrementButtons::State
getButtonsState
()
const
{
44
return
buttons
.getState();
45
}
46
47
private
:
48
AH::IncrementDecrementButtons
buttons
;
49
Wrap
wrap
;
50
};
51
52
// -------------------------------------------------------------------------- //
53
68
template
<setting_t N>
69
class
IncrementDecrementSelector
:
public
GenericIncrementDecrementSelector
<N> {
70
public
:
71
IncrementDecrementSelector
(
Selectable<N>
&
selectable
,
72
const
AH::IncrementDecrementButtons
&
buttons
,
73
Wrap
wrap
=
Wrap::Wrap
)
74
:
GenericIncrementDecrementSelector
<N> {
75
selectable
,
76
{},
77
buttons
,
78
wrap
,
79
} {}
80
};
81
82
END_CS_NAMESPACE
IncrementDecrementButtons.hpp
Selector.hpp
Wrap
Wrap
An enumeration to set the behavior of selectors that are incremented (decremented) beyond their maxim...
Definition
Selector.hpp:14
Wrap::Wrap
@ Wrap
When the maximum (minimum) setting is reached, wrap around to the minimum (maximum) setting.
Definition
Selector.hpp:17
END_CS_NAMESPACE
#define END_CS_NAMESPACE
Definition
Settings/NamespaceSettings.hpp:14
BEGIN_CS_NAMESPACE
#define BEGIN_CS_NAMESPACE
Definition
Settings/NamespaceSettings.hpp:11
AH::IncrementDecrementButtons
A class for buttons that increment and decrement some counter or setting.
Definition
IncrementDecrementButtons.hpp:22
AH::IncrementDecrementButtons::State
State
An enumeration of the different actions to be performed by the counter.
Definition
IncrementDecrementButtons.hpp:49
GenericIncrementDecrementSelector::getButtonsState
AH::IncrementDecrementButtons::State getButtonsState() const
Definition
IncrementDecrementSelector.hpp:43
GenericIncrementDecrementSelector::update
void update() override
Update this updatable.
Definition
IncrementDecrementSelector.hpp:24
GenericIncrementDecrementSelector::wrap
Wrap wrap
Definition
IncrementDecrementSelector.hpp:49
GenericIncrementDecrementSelector::begin
void begin() override
Initialize this updatable.
Definition
IncrementDecrementSelector.hpp:19
GenericIncrementDecrementSelector::invert
void invert()
Definition
IncrementDecrementSelector.hpp:41
GenericIncrementDecrementSelector::buttons
AH::IncrementDecrementButtons buttons
Definition
IncrementDecrementSelector.hpp:48
GenericIncrementDecrementSelector::GenericIncrementDecrementSelector
GenericIncrementDecrementSelector(Selectable< N > &selectable, const Callback &callback, const AH::IncrementDecrementButtons &buttons, Wrap wrap=Wrap::Wrap)
Definition
IncrementDecrementSelector.hpp:13
GenericIncrementDecrementSelector::Parent
GenericSelector< N, Callback > Parent
Definition
IncrementDecrementSelector.hpp:10
GenericSelector< N, EmptySelectorCallback >::increment
void increment(Wrap wrap)
Definition
Selector.hpp:109
GenericSelector< N, EmptySelectorCallback >::decrement
void decrement(Wrap wrap)
Definition
Selector.hpp:128
GenericSelector< N, EmptySelectorCallback >::callback
EmptySelectorCallback callback
Definition
Selector.hpp:144
GenericSelector< N, Callback >::update
void update() override
Definition
Selector.hpp:77
GenericSelector< N, EmptySelectorCallback >::selectable
Selectable< N > & selectable
Definition
Selector.hpp:141
GenericSelector< N, Callback >::begin
void begin() override
Definition
Selector.hpp:72
GenericSelector< N, EmptySelectorCallback >::reset
void reset()
Definition
Selector.hpp:80
GenericSelector< N, EmptySelectorCallback >::GenericSelector
GenericSelector(Selectable< N > &selectable, const EmptySelectorCallback &callback)
Definition
Selector.hpp:69
IncrementDecrementSelector::IncrementDecrementSelector
IncrementDecrementSelector(Selectable< N > &selectable, const AH::IncrementDecrementButtons &buttons, Wrap wrap=Wrap::Wrap)
Definition
IncrementDecrementSelector.hpp:71
Selectable
Definition
Selectable.hpp:11
Generated by
1.17.0