/* LED MODULE */ #pragma once #include "espurna.h" namespace led { namespace build { constexpr size_t preconfiguredLeds() { return 0ul #if LED1_PIN != GPIO_NONE + 1ul #endif #if LED2_PIN != GPIO_NONE + 1ul #endif #if LED3_PIN != GPIO_NONE + 1ul #endif #if LED4_PIN != GPIO_NONE + 1ul #endif #if LED5_PIN != GPIO_NONE + 1ul #endif #if LED6_PIN != GPIO_NONE + 1ul #endif #if LED7_PIN != GPIO_NONE + 1ul #endif #if LED8_PIN != GPIO_NONE + 1ul #endif ; } constexpr unsigned char pin(size_t index) { return ( (index == 0) ? LED1_PIN : (index == 1) ? LED2_PIN : (index == 2) ? LED3_PIN : (index == 3) ? LED4_PIN : (index == 4) ? LED5_PIN : (index == 5) ? LED6_PIN : (index == 6) ? LED7_PIN : (index == 7) ? LED8_PIN : GPIO_NONE ); } constexpr LedMode mode(size_t index) { return ( (index == 0) ? LED1_MODE : (index == 1) ? LED2_MODE : (index == 2) ? LED3_MODE : (index == 3) ? LED4_MODE : (index == 4) ? LED5_MODE : (index == 5) ? LED6_MODE : (index == 6) ? LED7_MODE : (index == 7) ? LED8_MODE : LedMode::Manual ); } constexpr unsigned char relay(size_t index) { return ( (index == 0) ? (LED1_RELAY - 1) : (index == 1) ? (LED2_RELAY - 1) : (index == 2) ? (LED3_RELAY - 1) : (index == 3) ? (LED4_RELAY - 1) : (index == 4) ? (LED5_RELAY - 1) : (index == 5) ? (LED6_RELAY - 1) : (index == 6) ? (LED7_RELAY - 1) : (index == 7) ? (LED8_RELAY - 1) : RELAY_NONE ); } constexpr bool inverse(size_t index) { return ( (index == 0) ? (1 == LED1_PIN_INVERSE) : (index == 1) ? (1 == LED2_PIN_INVERSE) : (index == 2) ? (1 == LED3_PIN_INVERSE) : (index == 3) ? (1 == LED4_PIN_INVERSE) : (index == 4) ? (1 == LED5_PIN_INVERSE) : (index == 5) ? (1 == LED6_PIN_INVERSE) : (index == 6) ? (1 == LED7_PIN_INVERSE) : (index == 7) ? (1 == LED8_PIN_INVERSE) : false ); } } // namespace build } // namespace led