Control Surface
main
MIDI Control Surface library for Arduino
Toggle main menu visibility
Loading...
Searching...
No Matches
src
MIDI_Outputs
Bankable
Abstract
Bankable/Abstract/MIDIFilteredAnalog.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <
AH/Hardware/FilteredAnalog.hpp
>
4
#include <
Banks/BankableAddresses.hpp
>
5
#include <
Def/Def.hpp
>
6
#include <
MIDI_Outputs/Abstract/MIDIOutputElement.hpp
>
7
8
BEGIN_CS_NAMESPACE
9
10
namespace
Bankable
{
11
20
template
<
class
BankAddress,
class
Sender>
21
class
MIDIFilteredAnalog
:
public
MIDIOutputElement
{
22
protected
:
34
MIDIFilteredAnalog
(BankAddress bankAddress,
pin_t
analogPin,
35
const
Sender &
sender
)
36
:
address
(bankAddress),
filteredAnalog
(analogPin),
sender
(
sender
) {}
37
38
public
:
39
void
begin
() final
override
{
filteredAnalog
.resetToCurrentValue(); }
40
41
void
update
() final
override
{
42
if
(
filteredAnalog
.update())
43
forcedUpdate
();
44
}
45
48
void
forcedUpdate
() {
49
sender
.send(
filteredAnalog
.getValue(),
address
.getActiveAddress());
50
}
51
64
void
map
(
MappingFunction
fn) {
filteredAnalog
.map(fn); }
65
67
void
invert
() {
filteredAnalog
.invert(); }
68
73
analog_t
getRawValue
()
const
{
return
filteredAnalog
.getRawValue(); }
74
78
static
constexpr
analog_t
getMaxRawValue
() {
79
return
FilteredAnalog::getMaxRawValue
();
80
}
81
86
analog_t
getValue
()
const
{
return
filteredAnalog
.getValue(); }
87
88
protected
:
89
BankAddress
address
;
90
using
FilteredAnalog
=
AH::FilteredAnalog
<Sender::precision()>;
91
FilteredAnalog
filteredAnalog
;
92
93
public
:
94
Sender
sender
;
95
};
96
97
}
// namespace Bankable
98
99
END_CS_NAMESPACE
BankableAddresses.hpp
Def.hpp
MappingFunction
analog_t(*)(analog_t) MappingFunction
Definition
Def.hpp:23
FilteredAnalog.hpp
MIDIOutputElement.hpp
MIDIOutputElement
AH::Updatable<> MIDIOutputElement
Definition
MIDIOutputElement.hpp:9
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::FilteredAnalog
A class that reads and filters an analog input.
Definition
FilteredAnalog.hpp:275
AH::FilteredAnalog< Sender::precision()>::getMaxRawValue
static constexpr analog_t getMaxRawValue()
Definition
FilteredAnalog.hpp:172
Bankable::MIDIFilteredAnalog::address
BankAddress address
Definition
Bankable/Abstract/MIDIFilteredAnalog.hpp:89
Bankable::MIDIFilteredAnalog::forcedUpdate
void forcedUpdate()
Send the value of the analog input over MIDI, even if the value didn't change.
Definition
Bankable/Abstract/MIDIFilteredAnalog.hpp:48
Bankable::MIDIFilteredAnalog::sender
Sender sender
Definition
Bankable/Abstract/MIDIFilteredAnalog.hpp:94
Bankable::MIDIFilteredAnalog::getValue
analog_t getValue() const
Get the value of the analog input (this is the value after first applying the mapping function).
Definition
Bankable/Abstract/MIDIFilteredAnalog.hpp:86
Bankable::MIDIFilteredAnalog::getMaxRawValue
static constexpr analog_t getMaxRawValue()
Get the maximum value that can be returned from getRawValue.
Definition
Bankable/Abstract/MIDIFilteredAnalog.hpp:78
Bankable::MIDIFilteredAnalog::map
void map(MappingFunction fn)
Specify a mapping function that is applied to the raw analog value before sending.
Definition
Bankable/Abstract/MIDIFilteredAnalog.hpp:64
Bankable::MIDIFilteredAnalog::FilteredAnalog
AH::FilteredAnalog< Sender::precision()> FilteredAnalog
Definition
Bankable/Abstract/MIDIFilteredAnalog.hpp:90
Bankable::MIDIFilteredAnalog::invert
void invert()
Invert the analog value.
Definition
Bankable/Abstract/MIDIFilteredAnalog.hpp:67
Bankable::MIDIFilteredAnalog::MIDIFilteredAnalog
MIDIFilteredAnalog(BankAddress bankAddress, pin_t analogPin, const Sender &sender)
Construct a new MIDIFilteredAnalog.
Definition
Bankable/Abstract/MIDIFilteredAnalog.hpp:34
Bankable::MIDIFilteredAnalog::begin
void begin() final override
Initialize this updatable.
Definition
Bankable/Abstract/MIDIFilteredAnalog.hpp:39
Bankable::MIDIFilteredAnalog::getRawValue
analog_t getRawValue() const
Get the raw value of the analog input (this is the value without applying the filter or the mapping f...
Definition
Bankable/Abstract/MIDIFilteredAnalog.hpp:73
Bankable::MIDIFilteredAnalog::filteredAnalog
FilteredAnalog filteredAnalog
Definition
Bankable/Abstract/MIDIFilteredAnalog.hpp:91
Bankable::MIDIFilteredAnalog::update
void update() final override
Update this updatable.
Definition
Bankable/Abstract/MIDIFilteredAnalog.hpp:41
AH::analog_t
uint16_t analog_t
The type returned from analogRead and similar functions.
Definition
Hardware-Types.hpp:14
Bankable
A namespace for MIDI elements that can be added to a Bank, to change their address or channel.
Definition
BankAddresses.hpp:7
AH::ExtIO::pin_t
Type for storing pin numbers of Extended Input/Output elements.
Definition
Hardware-Types.hpp:25
Generated by
1.17.0