template<fl::u8 DATA_PIN, fl::u8 CLOCK_PIN> \
static const bool IS_VALID = true; \
typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN> ControllerType; \
\
template<fl::EOrder RGB_ORDER> \
struct CONTROLLER_CLASS_WITH_ORDER { \
typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN, RGB_ORDER> ControllerType; \
}; \
\
template<fl::EOrder RGB_ORDER, fl::u32 FREQ> \
struct CONTROLLER_CLASS_WITH_ORDER_AND_FREQ { \
typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN, RGB_ORDER, FREQ> ControllerType; \
}; \
};
939 #define _FL_MAP_CLOCKED_CHIPSET(CHIPSET_ENUM, CONTROLLER_CLASS) \
940 template<fl::u8 DATA_PIN, fl::u8 CLOCK_PIN> \
941 struct ClockedChipsetHelper<CHIPSET_ENUM, DATA_PIN, CLOCK_PIN> { \
942 static const bool IS_VALID = true; \
943 typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN> ControllerType; \
944 \
945 template<fl::EOrder RGB_ORDER> \
946 struct CONTROLLER_CLASS_WITH_ORDER { \
947 typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN, RGB_ORDER> ControllerType; \
948 }; \
949 \
950 template<fl::EOrder RGB_ORDER, fl::u32 FREQ> \
951 struct CONTROLLER_CLASS_WITH_ORDER_AND_FREQ { \
952 typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN, RGB_ORDER, FREQ> ControllerType; \
953 }; \
954 };