MIDI Control Surface library for Arduino
|
Go to the documentation of this file.
15 virtual uint8_t
getValue(uint8_t index)
const = 0;
37 for (uint8_t i = 0; i < noteccval.
length(); ++i)
44 template <
class MIDIInput_t, u
int8_t RangeLen, u
int8_t NumBanks,
class Callback>
51 uint8_t
getValue(uint8_t index)
const override {
70 values[bankIndex][rangeIndex] = value;
91 return target.
getAddress() - this->address.getAddress();
98 constexpr
static uint8_t
length() {
return RangeLen; }
103 template <
class MIDIInput_t, uint8_t RangeLen,
106 :
public NoteCCRange<MIDIInput_t, RangeLen, 1, Callback> {
116 target, this->address, RangeLen);
127 template <u
int8_t RangeLen>
141 template <u
int8_t RangeLen>
162 template <
class MIDIInput_t, uint8_t RangeLen, uint8_t NumBanks,
165 :
public NoteCCRange<MIDIInput_t, RangeLen, NumBanks, Callback>,
171 :
NoteCCRange<MIDIInput_t, RangeLen, NumBanks, Callback>{
181 target, this->address, RangeLen);
200 template <u
int8_t RangeLen, u
int8_t NumBanks>
209 template <u
int8_t NumBanks>
216 template <u
int8_t NumBanks>
219 template <u
int8_t RangeLen, u
int8_t NumBanks>
228 template <u
int8_t NumBanks>
setting_t getSelection() const override
Get the active bank selection.
void begin(const INoteCCValue &)
A namespace for MIDI elements that can be added to a Bank, to change their address or channel.
CCValue(MIDICNChannelAddress address)
void reset() override
Reset all values to zero.
virtual uint8_t getSelection() const
Get the active bank selection.
NoteRange(MIDICNChannelAddress address)
GenericNoteCCRange(MIDICNChannelAddress address, const Callback &callback)
Array< Array< uint8_t, RangeLen >, NumBanks > values
#define BEGIN_CS_NAMESPACE
GenericNoteCCRange(BankConfig< NumBanks > config, MIDICNChannelAddress address, const Callback &callback)
Struct for easily matching MIDI messages.
void update(const INoteCCValue &, uint8_t)
static uint8_t getValueFromMIDIMessage(const ChannelMessageMatcher &midimsg)
NoteCCRange(MIDICNChannelAddress address, const Callback &callback)
virtual void update(const INoteCCValue &, uint8_t)=0
void onBankSettingChange() override
A function to be executed each time the bank setting changes.
MIDI Input Element that listens to a range of notes.
INoteCCValue(uint8_t rangeLength)
CCRange(BankConfig< NumBanks > config, MIDICNChannelAddress address)
void begin() override
Initialize.
virtual uint8_t getRangeIndex(MIDICNChannelAddress target) const
A type-safe utility class for saving a MIDI address consisting of a 7-bit address,...
An array wrapper for easy copying, comparing, and iterating.
NoteValue(BankConfig< NumBanks > config, MIDICNChannelAddress address)
bool match(const MIDICNChannelAddress &target) const override
Check if the address of the incoming MIDI message is within the range of addresses of this element.
bool updateImpl(const ChannelMessageMatcher &midimsg, const MIDICNChannelAddress &target) override
CCValue(BankConfig< NumBanks > config, MIDICNChannelAddress address)
constexpr uint8_t getAddress() const
Get the address [0, 127].
virtual setting_t getBankIndex(MIDICNChannelAddress target) const
Get the bank index from a MIDI address.
void updateAll(const INoteCCValue &)
CCRange(MIDICNChannelAddress address)
uint8_t setting_t
The type used for Selectors.
NoteValue(MIDICNChannelAddress address)
NoteRange(BankConfig< NumBanks > config, MIDICNChannelAddress address)
uint8_t getRangeIndex(MIDICNChannelAddress target) const override
A struct for selecting the bank of BankableMIDIInputs and the bank type.
virtual void begin(const INoteCCValue &)
uint8_t getBankIndex(MIDICNChannelAddress target) const override
Get the bank index from a MIDI address.
uint8_t getValue(uint8_t index) const override
constexpr static uint8_t length()
SimpleNoteCCValueCallback()=default
static bool matchAddressInRange(const MIDICNChannelAddress &toMatch, const MIDICNChannelAddress &base, uint8_t length)
Check if an address falls within a range of addresses, starting with address base,...
bool match(const MIDICNChannelAddress &target) const override
Check if the address of the incoming MIDI message is within the range of addresses and in one of the ...
virtual void updateAll(const INoteCCValue ¬eccval)