Keyboard firmwares for Atmel AVR and Cortex-M
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.

usb_keyboard.h 1.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef USB_KEYBOARD_H
  2. #define USB_KEYBOARD_H 1
  3. #include <stdint.h>
  4. #include <stdbool.h>
  5. #include "usb.h"
  6. #define KEYBOARD_INTERFACE 0
  7. #define KEYBOARD_ENDPOINT 1
  8. #define KEYBOARD_SIZE 8
  9. #define KEYBOARD_BUFFER EP_DOUBLE_BUFFER
  10. #define BIT_LCTRL (1<<0)
  11. #define BIT_LSHIFT (1<<1)
  12. #define BIT_LALT (1<<2)
  13. #define BIT_LGUI (1<<3)
  14. #define BIT_RCTRL (1<<4)
  15. #define BIT_RSHIFT (1<<5)
  16. #define BIT_RALT (1<<6)
  17. #define BIT_RGUI (1<<7)
  18. #define BIT_LCTL BIT_LCTRL
  19. #define BIT_RCTL BIT_RCTRL
  20. #define BIT_LSFT BIT_LSHIFT
  21. #define BIT_RSFT BIT_RSHIFT
  22. // TODO: change variable name: usb_keyboard_ or usb_kb_
  23. extern uint8_t keyboard_modifier_keys;
  24. extern uint8_t keyboard_keys[6];
  25. extern uint8_t keyboard_protocol;
  26. extern uint8_t keyboard_idle_config;
  27. extern uint8_t keyboard_idle_count;
  28. extern volatile uint8_t keyboard_leds; // TODO: delete NOT USED?
  29. int8_t usb_keyboard_press(uint8_t key, uint8_t modifier);
  30. int8_t usb_keyboard_send(void);
  31. void usb_keyboard_init(void);
  32. void usb_keyboard_clear(void);
  33. void usb_keyboard_clear_key(void);
  34. void usb_keyboard_clear_mod(void);
  35. bool usb_keyboard_is_sent(void);
  36. bool usb_keyboard_has_key(void);
  37. bool usb_keyboard_has_mod(void);
  38. void usb_keyboard_print(void);
  39. #endif