Control Surface  1.2.0
MIDI Control Surface library for Arduino
ShiftRegisterOutBase.ipp
Go to the documentation of this file.
4 
6 
7 template <uint8_t N>
9  BitOrder_t bitOrder)
10  : latchPin(latchPin), bitOrder(bitOrder) {}
11 
12 template <uint8_t N>
14  buffer.set(pin, val);
15  dirty = true;
16  this->updateBufferedOutputs(); // TODO: should I always update?
17 }
18 
19 template <uint8_t N>
21  buffer.set(pin, val);
22  dirty = true;
23 }
24 
25 template <uint8_t N>
27  return buffer.get(pin);
28 }
29 
30 template <uint8_t N>
32  return this->pin(3 * id + ShiftRegisterOutRGB::greenBit);
33 }
34 
35 template <uint8_t N>
37  return generateIncrementalArray<pin_t, N / 3>(
38  this->pin(ShiftRegisterOutRGB::greenBit), 3);
39 }
40 
41 template <uint8_t N>
43  return this->pin(3 * id + ShiftRegisterOutRGB::redBit);
44 }
45 
46 template <uint8_t N>
48  return generateIncrementalArray<pin_t, N / 3>(
49  this->pin(ShiftRegisterOutRGB::redBit), 3);
50 }
51 
52 template <uint8_t N>
54  return this->pin(3 * id + ShiftRegisterOutRGB::blueBit);
55 }
56 
57 template <uint8_t N>
59  return generateIncrementalArray<pin_t, N / 3>(
60  this->pin(ShiftRegisterOutRGB::blueBit), 3);
61 }
62 
ShiftRegisterOutRGB.hpp
AH::ShiftRegisterOutBase
A class for serial-in/parallel-out shift registers, like the 74HC595.
Definition: ShiftRegisterOutBase.hpp:26
AH::pin_t
uint16_t pin_t
The type for Arduino pins (and ExtendedIOElement pins).
Definition: Hardware-Types.hpp:17
AH::generateIncrementalArray
Array< T, N > generateIncrementalArray(U start=0, V increment=V(1))
Generate an array where the first value is given, and the subsequent values are calculated as the pre...
Definition: ArrayHelpers.hpp:183
AH::ShiftRegisterOutBase::digitalWrite
void digitalWrite(pin_t pin, PinStatus_t val) override
Set the state of a given output pin.
Definition: ShiftRegisterOutBase.ipp:13
AH::ShiftRegisterOutRGB::greenBit
static const uint8_t greenBit
The position of the green output pin for 3-color LEDs.
Definition: ShiftRegisterOutRGB.hpp:26
AH::ShiftRegisterOutRGB::redBit
static const uint8_t redBit
The position of the red output pin for 3-color LEDs.
Definition: ShiftRegisterOutRGB.hpp:21
ExtendedInputOutput.hpp
AH::ShiftRegisterOutBase::digitalWriteBuffered
void digitalWriteBuffered(pin_t pin, PinStatus_t val) override
Set the output of a given pin in the software buffer.
Definition: ShiftRegisterOutBase.ipp:20
AH::ShiftRegisterOutBase::greenPins
Array< pin_t, N/3 > greenPins()
Get an array containing all pins with green LEDs.
Definition: ShiftRegisterOutBase.ipp:36
AH::ShiftRegisterOutBase::digitalRead
int digitalRead(pin_t pin) override
Get the current state of a given output pin.
Definition: ShiftRegisterOutBase.ipp:26
AH::Array
An array wrapper for easy copying, comparing, and iterating.
Definition: Array.hpp:36
PinStatus_t
uint8_t PinStatus_t
Definition: ExtendedInputOutput.hpp:48
AH::ShiftRegisterOutBase::redPins
Array< pin_t, N/3 > redPins()
Get an array containing all pins with red LEDs.
Definition: ShiftRegisterOutBase.ipp:47
ShiftRegisterOutBase.hpp
BitOrder_t
uint8_t BitOrder_t
Definition: ExtendedInputOutput.hpp:53
AH::ShiftRegisterOutRGB::blueBit
static const uint8_t blueBit
The position of the blue output pin for 3-color LEDs.
Definition: ShiftRegisterOutRGB.hpp:31
BEGIN_AH_NAMESPACE
#define BEGIN_AH_NAMESPACE
Definition: AH/Settings/NamespaceSettings.hpp:9
END_AH_NAMESPACE
#define END_AH_NAMESPACE
Definition: AH/Settings/NamespaceSettings.hpp:10
AH::ShiftRegisterOutBase::green
pin_t green(pin_t id)
Get the green output pin of the given LED.
Definition: ShiftRegisterOutBase.ipp:31
AH::ShiftRegisterOutBase::blue
pin_t blue(pin_t id)
Get the blue output pin of the given LED.
Definition: ShiftRegisterOutBase.ipp:53
AH::ShiftRegisterOutBase::red
pin_t red(pin_t id)
Get the red output pin of the given LED.
Definition: ShiftRegisterOutBase.ipp:42
AH::ShiftRegisterOutBase::bluePins
Array< pin_t, N/3 > bluePins()
Get an array containing all pins with blue LEDs.
Definition: ShiftRegisterOutBase.ipp:58