#include <NoteCCRange.hpp>
Public Member Functions | |
GenericNoteCCRange (BankConfig< NumBanks > config, MIDICNChannelAddress address, const Callback &callback) | |
uint8_t | getValue (uint8_t index) const override |
virtual uint8_t | getValue (uint8_t index) const=0 |
uint8_t | getValue () const |
uint8_t | getValue () const |
void | begin () override |
Initialize. More... | |
void | reset () override |
Reset all values to zero. More... | |
uint8_t | length () const |
uint8_t | getBankIndex (const MIDICNChannelAddress &target, const MIDICNChannelAddress &base) const |
Calculate the bank setting of a given MIDI address, relative to a base address. More... | |
Static Public Member Functions | |
constexpr static uint8_t | length () |
Public Attributes | |
Callback | callback |
Protected Member Functions | |
bool | matchBankable (uint8_t toMatch, uint8_t base) const |
Check if the given address is part of the bank relative to the base address. More... | |
bool | matchBankable (const MIDICNChannelAddress &toMatch, const MIDICNChannelAddress &base) const |
Check whether a given address is part of the bank relative to the base address. More... | |
bool | matchBankableInRange (uint8_t toMatch, uint8_t base, uint8_t length) const |
Check if the given address is part of the bank relative to the base address. More... | |
uint8_t | getRangeIndex (MIDICNChannelAddress target, MIDICNChannelAddress base) const |
If matchBankableAddressInRange returned true, get the index of the message in the range. More... | |
bool | matchBankableAddressInRange (const MIDICNChannelAddress &toMatch, const MIDICNChannelAddress &base, uint8_t length) const |
Check whether a given address is part of the bank relative to the base address and within a range with a given length. More... | |
Static Protected Member Functions | |
static bool | inRange (uint8_t toMatch, uint8_t base, uint8_t length) |
Check whether a given address is within a range of given length starting from the given base address. More... | |
Protected Attributes | |
BankableMIDIInput< N > * | next |
BankableMIDIInput< N > * | previous |
Private Member Functions | |
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 banks of this element. More... | |
setting_t | getSelection () const override |
Get the active bank selection. More... | |
uint8_t | getBankIndex (MIDICNChannelAddress target) const override |
Get the bank index from a MIDI address. More... | |
uint8_t | getRangeIndex (MIDICNChannelAddress target) const override |
void | onBankSettingChange () override |
A function to be executed each time the bank setting changes. More... | |
bool | updateImpl (const ChannelMessageMatcher &midimsg, const MIDICNChannelAddress &target) override |
Static Private Member Functions | |
static uint8_t | getValueFromMIDIMessage (const ChannelMessageMatcher &midimsg) |
Private Attributes | |
Array< Array< uint8_t, RangeLen >, NumBanks > | values = {{}} |
uint8_t | rangeLength |
Bank< N > & | bank |
const BankType | type |
RangeLen | The length of the range. |
NumBanks | The size of the bank. |
Definition at line 164 of file NoteCCRange.hpp.
|
inline |
Definition at line 168 of file NoteCCRange.hpp.
|
inlineoverrideprivate |
Check if the address of the incoming MIDI message is within the range of addresses and in one of the banks of this element.
Definition at line 179 of file NoteCCRange.hpp.
|
inlineoverrideprivatevirtual |
Get the active bank selection.
Reimplemented from NoteCCRange< MIDIInput_t, RangeLen, NumBanks, Callback >.
Definition at line 184 of file NoteCCRange.hpp.
|
inlineoverrideprivatevirtual |
Get the bank index from a MIDI address.
Reimplemented from NoteCCRange< MIDIInput_t, RangeLen, NumBanks, Callback >.
Definition at line 188 of file NoteCCRange.hpp.
|
inlineoverrideprivatevirtual |
Reimplemented from NoteCCRange< MIDIInput_t, RangeLen, NumBanks, Callback >.
Definition at line 192 of file NoteCCRange.hpp.
|
inlineoverrideprivatevirtual |
A function to be executed each time the bank setting changes.
Think of an LED that indicates whether a track is muted or not. If this LED is bankable, let's say with 4 tracks per bank, 2 banks, and a base address of 3, then this LED object keeps the state of tracks 3 and 7. When the bank setting is 0, the LED displays the state of track 3, when the bank setting is 1, the LED displays the state of track 7.
To know when to update the LED, this callback is used.
Reimplemented from BankableMIDIInput< NumBanks >.
Definition at line 197 of file NoteCCRange.hpp.
|
inlineoverridevirtualinherited |
|
inherited |
|
inlineinherited |
Definition at line 16 of file NoteCCRange.hpp.
|
inlineinherited |
Definition at line 16 of file NoteCCRange.hpp.
|
inlineoverrideinherited |
Initialize.
Definition at line 57 of file NoteCCRange.hpp.
|
inlineoverrideinherited |
Reset all values to zero.
Definition at line 59 of file NoteCCRange.hpp.
|
inlineoverrideprivateinherited |
Definition at line 65 of file NoteCCRange.hpp.
|
inlinestaticprivateinherited |
Definition at line 77 of file NoteCCRange.hpp.
|
inlinestaticconstexprinherited |
Definition at line 98 of file NoteCCRange.hpp.
|
inlineinherited |
Definition at line 14 of file NoteCCRange.hpp.
|
inlineinherited |
Calculate the bank setting of a given MIDI address, relative to a base address.
target | The MIDI address to calculate the bank setting of. |
base | The base address to compare it to (the address of bank setting 0). |
Definition at line 71 of file BankableMIDIInput.hpp.
|
inlineprotectedinherited |
Check if the given address is part of the bank relative to the base address.
Consider the following example:
A Bank with 4 tracks per bank (T), 2 bank settings (N), and a base address of 3.
Addresses before the base adddress are not matched (0, 1, 2).
Addresses after N * T are not matched (8, 9, 10, 11, 12).
Addresses with a distance to the base address that is not a multiple of N are not matched (4, 5, 6).
toMatch | The address to check. |
base | The base address (the address of bank setting 0). |
matchBankableInRange(toMatch, base, 1)
. Definition at line 113 of file BankableMIDIInput.hpp.
|
inlineprotectedinherited |
Check whether a given address is part of the bank relative to the base address.
toMatch | The address to check. |
base | The base address (the address of bank setting 0). |
Definition at line 175 of file BankableMIDIInput.hpp.
|
inlineprotectedinherited |
Check if the given address is part of the bank relative to the base address.
toMatch | The address to check. |
base | The base address (the address of bank setting 0). |
length | The length of the range. |
Definition at line 132 of file BankableMIDIInput.hpp.
|
inlineprotectedinherited |
If matchBankableAddressInRange returned true, get the index of the message in the range.
Definition at line 143 of file BankableMIDIInput.hpp.
|
inlinestaticprotectedinherited |
Check whether a given address is within a range of given length starting from the given base address.
toMatch | The address to check |
base | The base address, start of the range. |
length | The length of the range. |
Definition at line 162 of file BankableMIDIInput.hpp.
|
inlineprotectedinherited |
Check whether a given address is part of the bank relative to the base address and within a range with a given length.
toMatch | The address to check. |
base | The base address (the address of bank setting 0). |
length | The length of the range. |
Definition at line 212 of file BankableMIDIInput.hpp.
|
privateinherited |
Definition at line 94 of file NoteCCRange.hpp.
|
inherited |
Definition at line 97 of file NoteCCRange.hpp.
|
privateinherited |
Definition at line 19 of file NoteCCRange.hpp.
|
privateinherited |
Definition at line 242 of file BankableMIDIInput.hpp.
|
privateinherited |
Definition at line 243 of file BankableMIDIInput.hpp.
|
protectedinherited |
Definition at line 305 of file LinkedList.hpp.
|
protectedinherited |
Definition at line 306 of file LinkedList.hpp.