template<fl::u8 DATA_PIN, fl::u8 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, fl::u32 FREQ> \
struct CONTROLLER_CLASS_WITH_ORDER_AND_FREQ { \
typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN, RGB_ORDER, FREQ> ControllerType; \
}; \
};
452 #define _FL_MAP_CLOCKED_CHIPSET(CHIPSET_ENUM, CONTROLLER_CLASS) \
453 template<fl::u8 DATA_PIN, fl::u8 CLOCK_PIN> \
454 struct ClockedChipsetHelper<CHIPSET_ENUM, DATA_PIN, CLOCK_PIN> { \
455 static const bool IS_VALID = true; \
456 typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN> ControllerType; \
457 \
458 template<EOrder RGB_ORDER> \
459 struct CONTROLLER_CLASS_WITH_ORDER { \
460 typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN, RGB_ORDER> ControllerType; \
461 }; \
462 \
463 template<EOrder RGB_ORDER, fl::u32 FREQ> \
464 struct CONTROLLER_CLASS_WITH_ORDER_AND_FREQ { \
465 typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN, RGB_ORDER, FREQ> ControllerType; \
466 }; \
467 };