Control Surface  1.1.0
MIDI Control Surface library for Arduino
Bankable/PCButton.hpp
Go to the documentation of this file.
1 #pragma once
2 
6 
8 
9 namespace Bankable {
10 
11 /**
12  * @brief A class of MIDIOutputElement%s that read the input of a **momentary
13  * push button or switch**, and send out MIDI **Program Change**
14  * events.
15  *
16  * A Program Change event is sent when the button is pressed.
17  * The button is debounced in software.
18  * This version can be banked.
19  *
20  * @ingroup BankableMIDIOutputElements
21  */
22 class PCButton : public MIDIButton<SingleAddress, ProgramChangeSender> {
23  public:
24  /**
25  * @brief Create a new PCButton object with the given pin, program number
26  * and channel.
27  *
28  * @param config
29  * The bank configuration to use: the bank to add this element to,
30  * and whether to change the address, channel or cable number.
31  * @param pin
32  * The digital input pin to read from.
33  * The internal pull-up resistor will be enabled.
34  * @param address
35  * The MIDI address containing the program number [0, 127],
36  * channel [CHANNEL_1, CHANNEL_16], and optional cable number
37  * [0, 15].
38  * @param sender
39  * The MIDI sender to use.
40  */
41  PCButton(const OutputBankConfig &config, pin_t pin,
43  const ProgramChangeSender &sender = {})
44  : MIDIButton({config, address}, pin, sender) {}
45 };
46 
47 } // namespace Bankable
48 
MIDIButton.hpp
Bankable::MIDIButton< SingleAddress, ProgramChangeSender >::address
SingleAddress address
Definition: Bankable/Abstract/MIDIButton.hpp:55
ProgramChangeSender.hpp
Bankable
A namespace for MIDI elements that can be added to a Bank, to change their address or channel.
Definition: BankAddresses.hpp:7
BEGIN_CS_NAMESPACE
#define BEGIN_CS_NAMESPACE
Definition: Settings/NamespaceSettings.hpp:9
Bankable::MIDIButton
An abstract class for momentary push buttons that send MIDI events.
Definition: Bankable/Abstract/MIDIButton.hpp:20
BankAddresses.hpp
END_CS_NAMESPACE
#define END_CS_NAMESPACE
Definition: Settings/NamespaceSettings.hpp:10
MIDICNChannelAddress
A type-safe utility class for saving a MIDI address consisting of a 7-bit address,...
Definition: MIDICNChannelAddress.hpp:82
AH::pin_t
uint16_t pin_t
The type for Arduino pins (and ExtendedIOElement pins).
Definition: Hardware-Types.hpp:17
Bankable::MIDIButton< SingleAddress, ProgramChangeSender >::sender
ProgramChangeSender sender
Definition: Bankable/Abstract/MIDIButton.hpp:59
ProgramChangeSender
Definition: ProgramChangeSender.hpp:7
Bankable::PCButton
A class of MIDIOutputElements that read the input of a momentary push button or switch,...
Definition: Bankable/PCButton.hpp:22
OutputBankConfig
A struct for selecting the bank of BankableMIDIOutputs and the bank type.
Definition: BankConfig.hpp:50
Bankable::PCButton::PCButton
PCButton(const OutputBankConfig &config, pin_t pin, const MIDICNChannelAddress &address, const ProgramChangeSender &sender={})
Create a new PCButton object with the given pin, program number and channel.
Definition: Bankable/PCButton.hpp:41
Bankable::MIDIButton< SingleAddress, ProgramChangeSender >::MIDIButton
MIDIButton(const SingleAddress &bankAddress, pin_t pin, const ProgramChangeSender &sender)
Construct a new bankable MIDIButton.
Definition: Bankable/Abstract/MIDIButton.hpp:33