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; \
}; \
};
412 #define _FL_MAP_CLOCKED_CHIPSET(CHIPSET_ENUM, CONTROLLER_CLASS) \
413 template<uint8_t DATA_PIN, uint8_t CLOCK_PIN> \
414 struct ClockedChipsetHelper<CHIPSET_ENUM, DATA_PIN, CLOCK_PIN> { \
415 static const bool IS_VALID = true; \
416 typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN> ControllerType; \
417 \
418 template<EOrder RGB_ORDER> \
419 struct CONTROLLER_CLASS_WITH_ORDER { \
420 typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN, RGB_ORDER> ControllerType; \
421 }; \
422 \
423 template<EOrder RGB_ORDER, uint32_t FREQ> \
424 struct CONTROLLER_CLASS_WITH_ORDER_AND_FREQ { \
425 typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN, RGB_ORDER, FREQ> ControllerType; \
426 }; \
427 };