/*
|
|
|
|
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
|