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; \
}; \
};
1088 #define _FL_MAP_CLOCKED_CHIPSET(CHIPSET_ENUM, CONTROLLER_CLASS) \
1089 template<fl::u8 DATA_PIN, fl::u8 CLOCK_PIN> \
1090 struct ClockedChipsetHelper<CHIPSET_ENUM, DATA_PIN, CLOCK_PIN> { \
1091 static const bool IS_VALID = true; \
1092 typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN> ControllerType; \
1093 \
1094 template<fl::EOrder RGB_ORDER> \
1095 struct CONTROLLER_CLASS_WITH_ORDER { \
1096 typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN, RGB_ORDER> ControllerType; \
1097 }; \
1098 \
1099 template<fl::EOrder RGB_ORDER, fl::u32 FREQ> \
1100 struct CONTROLLER_CLASS_WITH_ORDER_AND_FREQ { \
1101 typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN, RGB_ORDER, FREQ> ControllerType; \
1102 }; \
1103 };