Control Surface  1.2.0
MIDI Control Surface library for Arduino
ManyAddresses/CCRotaryEncoder.hpp
Go to the documentation of this file.
1 #pragma once
2 
6 
8 
9 namespace Bankable {
10 namespace ManyAddresses {
11 
25 template <setting_t NumBanks>
27  : public MIDIRotaryEncoder<ManyAddresses<NumBanks>, RelativeCCSender> {
28  public:
58  CCRotaryEncoder(const Bank<NumBanks> &bank, const EncoderPinList &pins,
59  const Array<MIDIAddress, NumBanks> &addresses,
60  int8_t speedMultiply = 1, uint8_t pulsesPerStep = 4)
62  {bank, addresses}, pins, speedMultiply, pulsesPerStep, {}) {}
63 
64 // For tests only (PJRC Encoder library's copy constructor doesn't work)
65 #ifndef ARDUINO
66  CCRotaryEncoder(const Bank<NumBanks> &bank, const Encoder &encoder,
67  const Array<MIDIAddress, NumBanks> &addresses,
68  int8_t speedMultiply = 1, uint8_t pulsesPerStep = 4)
69  : MIDIRotaryEncoder<ManyAddresses<NumBanks>, RelativeCCSender>(
70  {bank, addresses}, encoder, speedMultiply, pulsesPerStep, {}) {}
71 #endif
72 };
73 
74 } // namespace ManyAddresses
75 } // namespace Bankable
76 
Bank
A class that groups Bankable BankableMIDIOutputs and BankableMIDIInputs, and allows the user to chang...
Definition: Bank.hpp:75
MIDIRotaryEncoder
An abstract class for rotary encoders that send MIDI events.
Definition: Abstract/MIDIRotaryEncoder.hpp:19
MIDIRotaryEncoder.hpp
Bankable
A namespace for MIDI elements that can be added to a Bank, to change their address or channel.
Definition: BankAddresses.hpp:7
Bankable::MIDIRotaryEncoder< ManyAddresses< NumBanks >, RelativeCCSender >::speedMultiply
const uint8_t speedMultiply
Definition: Bankable/Abstract/MIDIRotaryEncoder.hpp:63
Bankable::ManyAddresses::CCRotaryEncoder
A class of MIDIOutputElements that read the input of a quadrature (rotary) encoder and send out relat...
Definition: ManyAddresses/CCRotaryEncoder.hpp:27
Bankable::ManyAddresses::ManyAddresses
Definition: BankAddresses.hpp:106
Bankable::MIDIRotaryEncoder< ManyAddresses< NumBanks >, RelativeCCSender >::encoder
Encoder encoder
Definition: Bankable/Abstract/MIDIRotaryEncoder.hpp:62
BEGIN_CS_NAMESPACE
#define BEGIN_CS_NAMESPACE
Definition: Settings/NamespaceSettings.hpp:9
BankAddresses.hpp
END_CS_NAMESPACE
#define END_CS_NAMESPACE
Definition: Settings/NamespaceSettings.hpp:10
Bankable::MIDIRotaryEncoder< ManyAddresses< NumBanks >, RelativeCCSender >::pulsesPerStep
const uint8_t pulsesPerStep
Definition: Bankable/Abstract/MIDIRotaryEncoder.hpp:64
Bankable::MIDIRotaryEncoder
An abstract class for rotary encoders that send MIDI events and that can be added to a Bank.
Definition: Bankable/Abstract/MIDIRotaryEncoder.hpp:23
AH::Array
An array wrapper for easy copying, comparing, and iterating.
Definition: Array.hpp:36
EncoderPinList
A struct for the pins of a rotary (quadrature) encoder without a switch.
Definition: Def.hpp:44
RelativeCCSender.hpp
RelativeCCSender
Class that sends relative/incremental MIDI control change messages.
Definition: RelativeCCSender.hpp:88
Bankable::ManyAddresses::CCRotaryEncoder::CCRotaryEncoder
CCRotaryEncoder(const Bank< NumBanks > &bank, const EncoderPinList &pins, const Array< MIDIAddress, NumBanks > &addresses, int8_t speedMultiply=1, uint8_t pulsesPerStep=4)
Construct a new Bankable CCRotaryEncoder object with the given pins, controller, channel,...
Definition: ManyAddresses/CCRotaryEncoder.hpp:58