commit
432f3596bb
@ -0,0 +1,33 @@
|
|||||||
|
#include "KeyboardioFirmware.h"
|
||||||
|
|
||||||
|
Keyboardio_::Keyboardio_(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Keyboardio_::setup(void) {
|
||||||
|
wdt_disable();
|
||||||
|
delay(100);
|
||||||
|
Keyboard.begin();
|
||||||
|
Mouse.begin();
|
||||||
|
AbsoluteMouse.begin();
|
||||||
|
KeyboardHardware.setup();
|
||||||
|
LEDControl.boot_animation();
|
||||||
|
|
||||||
|
temporary_keymap = primary_keymap = Storage.load_primary_keymap(KEYMAPS);
|
||||||
|
}
|
||||||
|
|
||||||
|
custom_loop_t loopHooks[HOOK_MAX] = {NULL};
|
||||||
|
|
||||||
|
void
|
||||||
|
Keyboardio_::loop(void) {
|
||||||
|
for (byte i = 0; loopHooks[i] != NULL && i < HOOK_MAX; i++) {
|
||||||
|
custom_loop_t hook = loopHooks[i];
|
||||||
|
(*hook)();
|
||||||
|
}
|
||||||
|
|
||||||
|
KeyboardHardware.scan_matrix();
|
||||||
|
LEDControl.update(temporary_keymap);
|
||||||
|
Keyboard.sendReport();
|
||||||
|
Keyboard.releaseAll();
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,27 @@
|
|||||||
|
#include "hooks.h"
|
||||||
|
|
||||||
|
void
|
||||||
|
event_handler_hook_add (custom_handler_t hook) {
|
||||||
|
byte i;
|
||||||
|
|
||||||
|
for (i = 0; i < HOOK_MAX && eventHandlers[i] != NULL; i++) {
|
||||||
|
}
|
||||||
|
|
||||||
|
if (i == HOOK_MAX)
|
||||||
|
return;
|
||||||
|
|
||||||
|
eventHandlers[i] = hook;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
loop_hook_add (custom_loop_t hook) {
|
||||||
|
byte i;
|
||||||
|
|
||||||
|
for (i = 0; i < HOOK_MAX && loopHooks[i] != NULL; i++) {
|
||||||
|
}
|
||||||
|
|
||||||
|
if (i == HOOK_MAX)
|
||||||
|
return;
|
||||||
|
|
||||||
|
loopHooks[i] = hook;
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <Arduino.h>
|
||||||
|
|
||||||
|
#define HOOK_MAX 64
|
||||||
|
|
||||||
|
typedef bool (*custom_handler_t)(byte row, byte col, uint8_t currentState, uint8_t previousState);
|
||||||
|
extern custom_handler_t eventHandlers[HOOK_MAX];
|
||||||
|
|
||||||
|
void event_handler_hook_add (custom_handler_t hook);
|
||||||
|
|
||||||
|
typedef void (*custom_loop_t)(void);
|
||||||
|
extern custom_loop_t loopHooks[HOOK_MAX];
|
||||||
|
|
||||||
|
void loop_hook_add (custom_loop_t hook);
|
Loading…
Reference in new issue