Deprecate USE_PLUGINS

`Kaleidoscope.use` is a much better interface, therefore deprecate USE_PLUGINS.
We do this by creating a wrapper function, `__USE_PLUGINS` that will call
`Kaleidoscope.use` under the hood, but has a deprecated attribute attached. We
then make the `USE_PLUGINS` macro call this function.

We do this because we want to make sure that the list is NULL-terminated, and
for that, we need the macro.

Signed-off-by: Gergely Nagy <kaleidoscope@gergo.csillger.hu>
pull/195/head
Gergely Nagy 7 years ago
parent 952ef25177
commit 4ddd3b86d1

@ -144,3 +144,14 @@ void event_handler_hook_use(Kaleidoscope_::eventHandlerHook hook) {
void loop_hook_use(Kaleidoscope_::loopHook hook) {
Kaleidoscope.useLoopHook(hook);
}
void __USE_PLUGINS(KaleidoscopePlugin *plugin, ...) {
va_list ap;
Kaleidoscope.use(plugin);
va_start(ap, plugin);
while ((plugin = (KaleidoscopePlugin *)va_arg(ap, KaleidoscopePlugin *)) != NULL)
Kaleidoscope.use(plugin);
va_end(ap);
}

@ -36,8 +36,6 @@ extern HARDWARE_IMPLEMENTATION KeyboardHardware;
const uint8_t KEYMAP_SIZE
__attribute__((deprecated("Kaleidoscope.setup() does not require KEYMAP_SIZE anymore."))) = 0;
#define USE_PLUGINS(plugins...) Kaleidoscope.use(plugins)
class KaleidoscopePlugin {
public:
virtual void begin(void) = 0;
@ -122,7 +120,13 @@ extern Kaleidoscope_ Kaleidoscope;
"layer.getState")
/* -- DEPRECATED aliases; remove them when there are no more users. -- */
void event_handler_hook_use(Kaleidoscope_::eventHandlerHook hook)
__attribute__((deprecated("Use Kaleidoscope.useEventHandlerHook instead")));
void loop_hook_use(Kaleidoscope_::loopHook hook)
__attribute__((deprecated("Use Kaleidoscope.useLoopHook instead")));
void __USE_PLUGINS(KaleidoscopePlugin *plugin, ...)
__attribute__((deprecated("Use Kaleidoscope.use(...) instead")));
#define USE_PLUGINS(...) __USE_PLUGINS(__VA_ARGS__, NULL)

Loading…
Cancel
Save