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.

преди 13 години
преди 13 години
преди 13 години
преди 13 години
преди 13 години
преди 13 години
преди 13 години
преди 13 години
12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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. // TODO: move to usb_keycodes.h ?
  11. // modifier bits
  12. #define MOD_LCTRL (1<<0)
  13. #define MOD_LSHIFT (1<<1)
  14. #define MOD_LALT (1<<2)
  15. #define MOD_LGUI (1<<3)
  16. #define MOD_RCTRL (1<<4)
  17. #define MOD_RSHIFT (1<<5)
  18. #define MOD_RALT (1<<6)
  19. #define MOD_RGUI (1<<7)
  20. // TODO: change variable name: usb_keyboard_ or usb_kb_
  21. extern uint8_t keyboard_modifier_keys;
  22. extern uint8_t keyboard_keys[6];
  23. extern uint8_t keyboard_protocol;
  24. extern uint8_t keyboard_idle_config;
  25. extern uint8_t keyboard_idle_count;
  26. extern volatile uint8_t keyboard_leds; // TODO: delete NOT USED?
  27. int8_t usb_keyboard_press(uint8_t key, uint8_t modifier);
  28. int8_t usb_keyboard_send(void);
  29. void usb_keyboard_init(void);
  30. void usb_keyboard_clear(void);
  31. void usb_keyboard_clear_key(void);
  32. void usb_keyboard_clear_mod(void);
  33. bool usb_keyboard_is_sent(void);
  34. bool usb_keyboard_has_key(void);
  35. bool usb_keyboard_has_mod(void);
  36. void usb_keyboard_print(void);
  37. #endif