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 "
30 static_assert(std::is_unsigned<pin_t>::value,
31 "Error: pin_t should be an unsigned integer type");
32 ERROR(
F(
"Error: the pin number (")
34 <<
F(
") is greater than the number of pins of this "
35 "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.
virtual ~ExtendedIOElement()
#define AH_DIAGNOSTIC_POP()
An abstract base class for Extended Input/Output 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.
pin_t operator[](pin_t pin) const
Get the extended IO pin number of a given physical pin of this extended IO element.
A class for doubly linked lists.
#define AH_DIAGNOSTIC_WERROR()
#define BEGIN_AH_NAMESPACE
static DoublyLinkedList< ExtendedIOElement > elements