| 
   
    MIDI Control Surface library for Arduino 
   | 
 
 
 
 
Go to the documentation of this file.
    4 #include "ExtendedIOElement.hpp" 
    6 #include <AH/STL/type_traits>  
   10 ExtendedIOElement::ExtendedIOElement(
pin_t length)
 
   11     : length(length), start(offset), end(offset + length) {
 
   14                       "Dynamically creating new ExtendedIOElements is not " 
   34         static_assert(std::is_unsigned<pin_t>::value,
 
   35                       "Error: pin_t should be an unsigned integer type");
 
   36         ERROR(
F(
"Error: the pin number (")
 
   38                   << 
F(
") is greater than the number of pins of this " 
   39                        "ExtendedIOElement (")
 
  
pin_t getEnd() const
Get the largest global extended IO pin number that belongs to this extended IO element.
 
static DoublyLinkedList< ExtendedIOElement > & getAll()
Get the list of all Extended IO elements.
 
uint16_t pin_t
The type for Arduino pins (and ExtendedIOElement pins).
 
pin_t getLength() const
Get the number of pins this IO element has.
 
#define AH_DIAGNOSTIC_POP()
 
virtual void begin()=0
Initialize the extended IO element.
 
static void updateAllBufferedInputs()
Read the physical state into the input buffers for all extended IO elements.
 
#define FATAL_ERROR(msg, errc)
Print the error message and error code, and stop the execution.
 
#define ERROR(msg, errc)
Print the error message and error code, and stop the execution if FATAL_ERRORS are enabled.
 
pin_t getStart() const
Get the smallest global extended IO pin number that belongs to this extended IO element.
 
static void beginAll()
Initialize all extended IO elements.
 
pin_t pin(pin_t pin) const
Get the extended IO pin number of a given physical pin of this extended IO element.
 
static void updateAllBufferedOutputs()
Write the internal states to the physical outputs for all extended IO elements.
 
virtual void updateBufferedOutputs()=0
Write the internal state to the physical outputs.
 
pin_t operator[](pin_t pin) const
Get the extended IO pin number of a given physical pin of this extended IO element.
 
#define AH_DIAGNOSTIC_WERROR()
 
virtual void updateBufferedInputs()=0
Read the physical state into the input buffers.
 
#define BEGIN_AH_NAMESPACE
 
static void applyToAll(const LockGuard &, void(Derived::*method)(Args &&...), Args &&... args)
 
static DoublyLinkedList< ExtendedIOElement > updatables