Line data Source code
1 : #pragma once 2 : 3 : #include <MIDI_Outputs/Abstract/MIDIButton.hpp> 4 : #include <MIDI_Senders/ProgramChangeSender.hpp> 5 : 6 : BEGIN_CS_NAMESPACE 7 : 8 : /** 9 : * @brief A class of MIDIOutputElement%s that read the input of a **momentary 10 : * push button or switch**, and send out MIDI **Program Change** 11 : * events. 12 : * 13 : * A Program Change event is sent when the button is pressed. 14 : * The button is debounced in software. 15 : * This version cannot be banked. 16 : * 17 : * @ingroup MIDIOutputElements 18 : */ 19 1 : class PCButton : public MIDIButton<ProgramChangeSender> { 20 : public: 21 : /** 22 : * @brief Create a new PCButton object with the given pin, program number 23 : * and channel. 24 : * 25 : * @param pin 26 : * The digital input pin to read from. 27 : * The internal pull-up resistor will be enabled. 28 : * @param address 29 : * The MIDI address containing the program number [0, 127], 30 : * channel [CHANNEL_1, CHANNEL_16], and optional cable number 31 : * [0, 15]. 32 : * @param sender 33 : * The MIDI sender to use. 34 : */ 35 1 : PCButton(pin_t pin, const MIDICNChannelAddress &address, 36 : const ProgramChangeSender &sender = {}) 37 1 : : MIDIButton(pin, address, sender) {} 38 : }; 39 : 40 : END_CS_NAMESPACE