@@ -116,8 +116,17 @@ public:
}
};
-#define REGISTER_CONVERTER(name, converter, compatibles) \
+#define __REGISTER_CONVERTER(name, converter, compatibles, features) \
static ConverterFactory<converter> global_##converter##Factory(name, compatibles, \
- Converter::Feature::None);
+ features);
+#define __REGISTER_CONVERTER_NO_FEAT(name, converter, compatibles) \
+ __REGISTER_CONVERTER(name, converter, compatibles, Converter::Feature::None);
+
+#define __register_converter_expand(_1, _2, _3, _4, EXT, ...) \
+ __REGISTER_CONVERTER ## EXT
+
+#define REGISTER_CONVERTER(name, converter, compatibles, ...) \
+ __register_converter_expand(name, converter, compatibles, ##__VA_ARGS__, , _NO_FEAT) \
+ (name, converter, compatibles, ##__VA_ARGS__)
} /* namespace libcamera */
Provide a way to overload the REGISTER_CONVERTER() macro to allow it to be called with or without an optional set of features. Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> --- include/libcamera/internal/converter.h | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-)