#pragma once #include "Cable.hpp" #include "Channel.hpp" #include #include #include #include #include #include #include BEGIN_CS_NAMESPACE using ::ArduinoPin_t; using AH::analog_t; using AH::NO_PIN; using AH::pin_t; using AH::PinList; using MappingFunction = analog_t (*)(analog_t); using AH::Array; using AH::Array2D; template using AddressMatrix = Array2D; struct EncoderSwitchPinList { EncoderSwitchPinList(uint8_t A, uint8_t B, pin_t switchPin) : A(A), B(B), switchPin(switchPin) {} EncoderSwitchPinList(uint8_t A, uint8_t B) : A(A), B(B), switchPin(NO_PIN) {} uint8_t A; uint8_t B; pin_t switchPin; }; struct EncoderPinList { uint8_t A; uint8_t B; }; using setting_t = uint8_t; constexpr setting_t NoSetting = (std::numeric_limits::max() >> 1) + 1; struct Potentiometer {}; struct MotorFader {}; struct Display {}; struct PixelLocation { int16_t x; int16_t y; }; END_CS_NAMESPACE