A class of MIDIOutputElements that read the input of a collection of momentary push buttons or switches, and send out MIDI Control Change events. More...
#include <MIDI_Outputs/CCButtons.hpp>
Public Member Functions | |
CCButtons (const Array< AH::Button, NUMBER_OF_BUTTONS > &buttons, const MIDICNChannelAddress &baseAddress, const RelativeMIDICNChannelAddress &incrementAddress, const DigitalCCSender &sender={}) | |
Create a new CCButtons object with the given pins, the given controller number and channel. More... | |
void | begin () final override |
Initialize this updatable. More... | |
void | update () final override |
Update this updatable. More... | |
void | invert () |
AH::Button::State | getButtonState (size_t index) const |
RelativeMIDICNChannelAddress | getAddressOffset () const |
Get the offset relative to the base address. More... | |
setting_t | getRawBankSetting () const |
Get the actual bank setting (no matter whether the element is locked or not). More... | |
setting_t | getSelection () const |
Get the bank setting. More... | |
void | lock () |
Lock the bank setting. More... | |
void | unlock () |
Unlock the bank setting. More... | |
void | enable () |
Enable this updatable: insert it into the linked list of instances, so it gets updated automatically. More... | |
void | disable () |
Disable this updatable: remove it from the linked list of instances, so it no longer gets updated automatically. More... | |
bool | isEnabled () |
Check if this updatable is enabled. More... | |
Static Public Member Functions | |
static void | enable (Updatable *element) |
static void | enable (Updatable &element) |
static void | enable (U(&array)[N]) |
static void | disable (Updatable< NormalUpdatable > *element) |
static void | disable (Updatable< NormalUpdatable > &element) |
static void | disable (U(&array)[N]) |
static void | beginAll () |
Begin all enabled instances of this class. More... | |
static void | updateAll () |
Update all enabled instances of this class. More... | |
Public Attributes | |
DigitalCCSender | sender |
Protected Attributes | |
const OutputBank & | bank |
Updatable< NormalUpdatable > * | next |
Updatable< NormalUpdatable > * | previous |
Private Attributes | |
Array< AH::Button, NUMBER_OF_BUTTONS > | buttons |
const MIDICNChannelAddress | baseAddress |
const RelativeMIDICNChannelAddress | incrementAddress |
uint8_t | activeButtons |
const BankType | type |
setting_t | lockedSetting = UNLOCKED |
Static Private Attributes | |
constexpr static setting_t | UNLOCKED = NO_SETTING |
static DoublyLinkedList< Updatable< NormalUpdatable > > | updatables |
A class of MIDIOutputElements that read the input of a collection of momentary push buttons or switches, and send out MIDI Control Change events.
A value of 0x7F is sent when a button is pressed, and a value of 0x00 is sent when a button is released.
The buttons are debounced in software.
This version cannot be banked.
NUMBER_OF_BUTTONS | The number of buttons in the collection. |
Definition at line 24 of file CCButtons.hpp.
|
inline |
Create a new CCButtons object with the given pins, the given controller number and channel.
buttons | An list of digital input pins with the buttons connected. The internal pull-up resistors will be enabled. |
baseAddress | The MIDI address of the first button, containing the controller number [0, 119], channel [CHANNEL_1, CHANNEL_16], and optional cable number [0, 15]. |
incrementAddress | The number of addresses to increment for each next button. E.g. if baseAddress is 8, and incrementAddress is 2, then the first button will send on address 8, the second button will send on address 10, button three on address 12, etc. |
sender | The MIDI sender to use. |
Definition at line 45 of file CCButtons.hpp.
|
inlinefinaloverridevirtualinherited |
Initialize this updatable.
Implements Updatable<>.
Definition at line 40 of file Bankable/Abstract/MIDIButtons.hpp.
|
inlinefinaloverridevirtualinherited |
Update this updatable.
Implements Updatable<>.
Definition at line 44 of file Bankable/Abstract/MIDIButtons.hpp.
|
inlineinherited |
Definition at line 66 of file Bankable/Abstract/MIDIButtons.hpp.
|
inlineinherited |
Definition at line 72 of file Bankable/Abstract/MIDIButtons.hpp.
|
inlineinherited |
Get the offset relative to the base address.
Definition at line 111 of file BankableMIDIOutput.hpp.
|
inlineinherited |
Get the actual bank setting (no matter whether the element is locked or not).
Definition at line 26 of file BankableMIDIOutput.hpp.
|
inlineinherited |
Get the bank setting.
If the element is locked, the bank setting from the moment it was locked is returned.
Definition at line 34 of file BankableMIDIOutput.hpp.
|
inlineinherited |
Lock the bank setting.
As long as it's locked, getSelection
will return the current setting, independent from the actual bank setting.
Definition at line 44 of file BankableMIDIOutput.hpp.
|
inlineinherited |
Unlock the bank setting.
After unlocking, getSelection
will return the actual bank setting again.
Definition at line 55 of file BankableMIDIOutput.hpp.
|
inlineinherited |
Enable this updatable: insert it into the linked list of instances, so it gets updated automatically.
Definition at line 45 of file Updatable.hpp.
|
inlinestaticinherited |
Definition at line 85 of file Updatable.hpp.
|
inlinestaticinherited |
Definition at line 87 of file Updatable.hpp.
|
inlinestaticinherited |
Definition at line 90 of file Updatable.hpp.
|
inlineinherited |
Disable this updatable: remove it from the linked list of instances, so it no longer gets updated automatically.
Definition at line 55 of file Updatable.hpp.
|
inlinestaticinherited |
Definition at line 95 of file Updatable.hpp.
|
inlinestaticinherited |
Definition at line 97 of file Updatable.hpp.
|
inlinestaticinherited |
Definition at line 100 of file Updatable.hpp.
|
inlineinherited |
Check if this updatable is enabled.
Definition at line 69 of file Updatable.hpp.
|
inlinestaticinherited |
Begin all enabled instances of this class.
Definition at line 73 of file Updatable.hpp.
|
inlinestaticinherited |
Update all enabled instances of this class.
Definition at line 80 of file Updatable.hpp.
|
privateinherited |
Definition at line 77 of file Bankable/Abstract/MIDIButtons.hpp.
|
privateinherited |
Definition at line 78 of file Bankable/Abstract/MIDIButtons.hpp.
|
privateinherited |
Definition at line 79 of file Bankable/Abstract/MIDIButtons.hpp.
|
privateinherited |
Definition at line 80 of file Bankable/Abstract/MIDIButtons.hpp.
|
inherited |
Definition at line 83 of file Bankable/Abstract/MIDIButtons.hpp.
|
privateinherited |
Definition at line 122 of file BankableMIDIOutput.hpp.
|
protectedinherited |
Definition at line 58 of file BankableMIDIOutput.hpp.
|
staticconstexprprivateinherited |
Definition at line 61 of file BankableMIDIOutput.hpp.
Definition at line 62 of file BankableMIDIOutput.hpp.
|
staticprivateinherited |
Definition at line 106 of file Updatable.hpp.
|
protectedinherited |
Definition at line 305 of file LinkedList.hpp.
|
protectedinherited |
Definition at line 306 of file LinkedList.hpp.