/* LIGHT MODULE */ #pragma once #include "espurna.h" namespace Light { namespace build { constexpr unsigned char enablePin() { return LIGHT_ENABLE_PIN; } constexpr unsigned char channelPin(unsigned char index) { return ( (index == 0) ? LIGHT_CH1_PIN : (index == 1) ? LIGHT_CH2_PIN : (index == 2) ? LIGHT_CH3_PIN : (index == 3) ? LIGHT_CH4_PIN : (index == 4) ? LIGHT_CH5_PIN : GPIO_NONE ); } constexpr bool inverse(unsigned char index) { return ( (index == 0) ? (1 == LIGHT_CH1_INVERSE) : (index == 1) ? (1 == LIGHT_CH2_INVERSE) : (index == 2) ? (1 == LIGHT_CH3_INVERSE) : (index == 3) ? (1 == LIGHT_CH4_INVERSE) : (index == 4) ? (1 == LIGHT_CH5_INVERSE) : false ); } #ifdef MY92XX_MAPPING constexpr unsigned char _my92xx_mapping[LIGHT_CHANNELS] { MY92XX_MAPPING }; constexpr unsigned char my92xxChannel(unsigned char) __attribute__((deprecated("MY92XX_CH# flags should be used instead of MY92XX_MAPPING"))); constexpr unsigned char _lightMy92xxChannel(unsigned char channel) { return _my92xx_mapping[channel]; } #else constexpr unsigned char my92xxChannel(unsigned char channel) { return (channel == 0) ? MY92XX_CH1 : (channel == 1) ? MY92XX_CH2 : (channel == 2) ? MY92XX_CH3 : (channel == 3) ? MY92XX_CH4 : (channel == 4) ? MY92XX_CH5 : 255u; } } // namespace build } // namespace Light #endif