commit
66e8d74a32
@ -1,49 +0,0 @@
|
|||||||
#include "hooks.h"
|
|
||||||
|
|
||||||
void
|
|
||||||
event_handler_hook_replace (custom_handler_t oldHook, custom_handler_t newHook) {
|
|
||||||
for (byte i = 0; i < HOOK_MAX; i++) {
|
|
||||||
if (eventHandlers[i] == oldHook) {
|
|
||||||
eventHandlers[i] = newHook;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
event_handler_hook_append (custom_handler_t hook) {
|
|
||||||
event_handler_hook_replace ((custom_handler_t)NULL, hook);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
event_handler_hook_use (custom_handler_t hook) {
|
|
||||||
for (byte i = 0; i < HOOK_MAX; i++) {
|
|
||||||
if (eventHandlers[i] == hook)
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
event_handler_hook_append (hook);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
loop_hook_replace (custom_loop_t oldHook, custom_loop_t newHook) {
|
|
||||||
for (byte i = 0; i < HOOK_MAX; i++) {
|
|
||||||
if (loopHooks[i] == oldHook) {
|
|
||||||
loopHooks[i] = newHook;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
loop_hook_append (custom_loop_t hook) {
|
|
||||||
loop_hook_replace ((custom_loop_t)NULL, hook);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
loop_hook_use (custom_loop_t hook) {
|
|
||||||
for (byte i = 0; i < HOOK_MAX; i++) {
|
|
||||||
if (loopHooks[i] == hook)
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
loop_hook_append (hook);
|
|
||||||
}
|
|
@ -1,34 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include <Arduino.h>
|
|
||||||
#include "key_defs.h"
|
|
||||||
|
|
||||||
#define HOOK_MAX 64
|
|
||||||
|
|
||||||
typedef Key (*custom_handler_t)(Key mappedKey, byte row, byte col, uint8_t keyState);
|
|
||||||
extern custom_handler_t eventHandlers[HOOK_MAX];
|
|
||||||
|
|
||||||
/*
|
|
||||||
* In most cases, one only wants a single copy of a hook. On the other hand,
|
|
||||||
* plugins that depend on other plugins, may want to make it easier for the
|
|
||||||
* end-user to use the plugin, and call the setup function of the dependent
|
|
||||||
* plugins too. In case the end-user calls the same setup function, we'd end up
|
|
||||||
* with hooks registered multiple times.
|
|
||||||
*
|
|
||||||
* To avoid this, protection against double-registration has been introduced.
|
|
||||||
* The `event_handler_hook_use` and `loop_hook_use` functions will only allow
|
|
||||||
* one copy of the hook. The `event_handler_hook_append` and `loop_hook_append`
|
|
||||||
* functions will, on the other hand, just append the hooks, and not care about
|
|
||||||
* protection.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void event_handler_hook_use (custom_handler_t hook);
|
|
||||||
void event_handler_hook_append (custom_handler_t hook);
|
|
||||||
void event_handler_hook_replace (custom_handler_t oldHook, custom_handler_t newHook);
|
|
||||||
|
|
||||||
typedef void (*custom_loop_t)(bool postClear);
|
|
||||||
extern custom_loop_t loopHooks[HOOK_MAX];
|
|
||||||
|
|
||||||
void loop_hook_use (custom_loop_t hook);
|
|
||||||
void loop_hook_append (custom_loop_t hook);
|
|
||||||
void loop_hook_replace (custom_loop_t oldHook, custom_loop_t newHook);
|
|
@ -1,7 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
class KaleidoscopePlugin {
|
|
||||||
public:
|
|
||||||
virtual void begin(void) = 0;
|
|
||||||
};
|
|
||||||
|
|
Loading…
Reference in new issue