encoder_utils.h 844 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #pragma once
  2. #include <stdbool.h>
  3. #include "quantum.h"
  4. typedef enum {
  5. ENC_MODE_VOLUME = 0,
  6. ENC_MODE_WORD_NAV,
  7. ENC_MODE_LEFT_RIGHT,
  8. ENC_MODE_UP_DOWN,
  9. ENC_MODE_PAGING,
  10. _ENC_MODE_LAST // Do not use, except for looping through enum values
  11. } encoder_mode_t;
  12. encoder_mode_t encoder_left_mode;
  13. encoder_mode_t encoder_right_mode;
  14. void encoder_utils_init(void);
  15. void set_encoder_mode(bool left, encoder_mode_t mode);
  16. encoder_mode_t get_encoder_mode(bool left);
  17. void cycle_encoder_mode(bool left, bool reverse);
  18. void encoder_action_volume(uint8_t clockwise);
  19. void encoder_action_word_nav(uint8_t clockwise);
  20. void encoder_action_left_right(uint8_t clockwise);
  21. void encoder_action_up_down(uint8_t clockwise);
  22. void encoder_action_paging(uint8_t clockwise);
  23. void encoder_action(encoder_mode_t mode, uint8_t clockwise);