Control Surface main
MIDI Control Surface library for Arduino
ManyAddresses/PBAbsoluteEncoder.hpp
Go to the documentation of this file.
1#pragma once
2
7
9
11
12namespace Bankable {
13namespace ManyAddresses {
14
28template <size_t NumBanks>
30 : public MIDIAbsoluteEncoder<NumBanks, ManyAddresses<NumBanks>,
31 PitchBendSender<14>> {
32 public:
62 const Array<MIDIChannelCable, NumBanks> &addresses,
63 int16_t speedMultiply = 1, uint8_t pulsesPerStep = 4)
64 : MIDIAbsoluteEncoder<NumBanks, ManyAddresses<NumBanks>,
65 PitchBendSender<14>>(
66 {bank, AH::copyAs<MIDIAddress>(addresses)}, std::move(encoder),
67 speedMultiply, pulsesPerStep, {}) {}
68};
69
70} // namespace ManyAddresses
71} // namespace Bankable
72
74
#define END_CS_NAMESPACE
#define BEGIN_CS_NAMESPACE
#define AH_DIAGNOSTIC_POP()
Definition: Warnings.hpp:37
#define AH_DIAGNOSTIC_WERROR()
Definition: Warnings.hpp:36
Class for reading quadrature encoders, heavily influenced by http://www.pjrc.com/teensy/td_libs_Encod...
Definition: AHEncoder.hpp:21
A class that groups Bankable MIDI Output Elements and Bankable MIDI Input Elements,...
Definition: Bank.hpp:91
An abstract class for rotary encoders that send absolute MIDI events.
A class of MIDIOutputElements that read the input of a quadrature (rotary) encoder and send out absol...
PBAbsoluteEncoder(const Bank< NumBanks > &bank, AHEncoder &&encoder, const Array< MIDIChannelCable, NumBanks > &addresses, int16_t speedMultiply=1, uint8_t pulsesPerStep=4)
Construct a new Bankable PBAbsoluteEncoder object with the given pins, channel, speed factor,...
Class that sends continuous MIDI pitch bend messages with a resolution of 14 bits.
A namespace for MIDI elements that can be added to a Bank, to change their address or channel.
An array wrapper for easy copying, comparing, and iterating.
Definition: Array.hpp:36