You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

hook.h 2.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /*
  2. Copyright 2016 Jun Wako <[email protected]>
  3. This program is free software: you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation, either version 2 of the License, or
  6. (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with this program. If not, see <http://www.gnu.org/licenses/>.
  13. */
  14. #ifndef _HOOKS_H_
  15. #define _HOOKS_H_
  16. #include "keyboard.h"
  17. #include "led.h"
  18. /* -------------------------------------
  19. * Protocol hooks
  20. * ------------------------------------- */
  21. /* Called once, very early stage of initialization, just after processor startup. */
  22. /* Default behaviour: do nothing. */
  23. void hook_early_init(void);
  24. /* Called once, very last stage of initialization, just before keyboard loop. */
  25. /* Default behaviour: do nothing. */
  26. void hook_late_init(void);
  27. /* Called once, on getting SUSPEND event from USB. */
  28. /* Default behaviour: do nothing. */
  29. void hook_usb_suspend_entry(void);
  30. /* Called repeatedly during the SUSPENDed state. */
  31. /* Default behaviour: power down and periodically check
  32. * the matrix, cause wakeup if needed. */
  33. void hook_usb_suspend_loop(void);
  34. /* Called once, on getting WAKE event from USB. */
  35. /* Default behaviour: disables sleep LED breathing and restores
  36. * the "normal" indicator LED status by default. */
  37. void hook_usb_wakeup(void);
  38. /* -------------------------------------
  39. * Keyboard hooks
  40. * ------------------------------------- */
  41. /* Called periodically from the keyboard loop (very often!) */
  42. /* Default behaviour: do nothing. */
  43. void hook_keyboard_loop(void);
  44. /* Called on matrix state change event (every keypress => often!) */
  45. /* Default behaviour: do nothing. */
  46. void hook_matrix_change(keyevent_t event);
  47. /* Called on default layer state change event. */
  48. /* Default behaviour: do nothing. */
  49. void hook_default_layer_change(uint32_t default_layer_state);
  50. /* Called on layer state change event. */
  51. /* Default behaviour: do nothing. */
  52. void hook_layer_change(uint32_t layer_state);
  53. /* Called on indicator LED update event (when reported from host). */
  54. /* Default behaviour: calls keyboard_set_leds. */
  55. void hook_keyboard_leds_change(uint8_t led_status);
  56. /* Called once, on checking the bootmagic combos. */
  57. /* Default behaviour: do nothing. */
  58. void hook_bootmagic(void);
  59. #endif /* _HOOKS_H_ */