template<uint8_t DATA_PIN, uint8_t CLOCK_PIN> \
static const bool IS_VALID = true; \
typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN> ControllerType; \
\
template<EOrder RGB_ORDER> \
struct CONTROLLER_CLASS_WITH_ORDER { \
typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN, RGB_ORDER> ControllerType; \
}; \
\
template<EOrder RGB_ORDER, uint32_t FREQ> \
struct CONTROLLER_CLASS_WITH_ORDER_AND_FREQ { \
typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN, RGB_ORDER, FREQ> ControllerType; \
}; \
};
429 #define _FL_MAP_CLOCKED_CHIPSET(CHIPSET_ENUM, CONTROLLER_CLASS) \
430 template<uint8_t DATA_PIN, uint8_t CLOCK_PIN> \
431 struct ClockedChipsetHelper<CHIPSET_ENUM, DATA_PIN, CLOCK_PIN> { \
432 static const bool IS_VALID = true; \
433 typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN> ControllerType; \
434 \
435 template<EOrder RGB_ORDER> \
436 struct CONTROLLER_CLASS_WITH_ORDER { \
437 typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN, RGB_ORDER> ControllerType; \
438 }; \
439 \
440 template<EOrder RGB_ORDER, uint32_t FREQ> \
441 struct CONTROLLER_CLASS_WITH_ORDER_AND_FREQ { \
442 typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN, RGB_ORDER, FREQ> ControllerType; \
443 }; \
444 };