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.

ledmap.h 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #ifndef LEDMAP_H
  2. #define LEDMAP_H
  3. #include "stdint.h"
  4. #include "stdbool.h"
  5. #include "led.h"
  6. typedef led_pack_t led_state_t;
  7. typedef led_pack_t led_binding_t;
  8. enum ledmap_binding {
  9. LEDMAP_BINDING_NO = 0,
  10. LEDMAP_BINDING_DEFAULT_LAYER,
  11. LEDMAP_BINDING_LAYER,
  12. LEDMAP_BINDING_USB_LED
  13. };
  14. enum ledmap_usb_led {
  15. LEDMAP_USB_LED_NUM_LOCK = 0,
  16. LEDMAP_USB_LED_CAPS_LOCK,
  17. LEDMAP_USB_LED_SCROLL_LOCK,
  18. LEDMAP_USB_LED_COMPOSE,
  19. LEDMAP_USB_LED_KANA,
  20. };
  21. typedef union {
  22. uint16_t code;
  23. struct {
  24. uint8_t param: 8;
  25. uint8_t binding: 4;
  26. bool reverse: 1;
  27. bool backlight: 1;
  28. uint8_t reserved: 2;
  29. };
  30. } ledmap_t;
  31. #define LEDMAP_DEFAULT_LAYER(layer) (LEDMAP_BINDING_DEFAULT_LAYER<<8 | layer)
  32. #define LEDMAP_LAYER(layer) (LEDMAP_BINDING_LAYER<<8 | layer )
  33. #define LEDMAP_NUM_LOCK (LEDMAP_BINDING_USB_LED<<8 | LEDMAP_USB_LED_NUM_LOCK)
  34. #define LEDMAP_CAPS_LOCK (LEDMAP_BINDING_USB_LED<<8 | LEDMAP_USB_LED_CAPS_LOCK)
  35. #define LEDMAP_SCROLL_LOCK (LEDMAP_BINDING_USB_LED<<8 | LEDMAP_USB_LED_SCROLL_LOCK)
  36. #define LEDMAP_REVERSE (1<<12)
  37. #define LEDMAP_BACKLIGHT (1<<13)
  38. void ledmap_init(void);
  39. #ifdef LEDMAP_ENABLE
  40. ledmap_t ledmap_get_code(uint8_t index);
  41. void ledmap_led_init(void);
  42. void ledmap_led_on(uint8_t index);
  43. void ledmap_led_off(uint8_t index);
  44. #else
  45. #define ledmap_get_code()
  46. #define ledmap_led_init()
  47. #define ledmap_led_on()
  48. #define ledmap_led_off()
  49. #endif
  50. #endif