ui.h 945 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #ifndef UI_H
  2. #define UI_H
  3. #include <stdint.h>
  4. void ui_init(void);
  5. #define ENTRY_TYPE_TEXT 0
  6. #define ENTRY_TYPE_BOOL 1
  7. #define ENTRY_TYPE_DEC 2
  8. #define ENTRY_TYPE_HEX 3
  9. #define MAX_ENTRY 8
  10. struct display_menu {
  11. struct display_menu *next;
  12. int entry_n;
  13. struct display_menu_entry {
  14. int type;
  15. char label[16];
  16. void (*action)(struct display_menu_entry *item, uint8_t button);
  17. int min, max, step;
  18. int *var;
  19. const void *arg;
  20. } entry[MAX_ENTRY];
  21. void (*render)(struct display_menu *menu);
  22. };
  23. void ui_display_menu(const struct display_menu *menu);
  24. void ui_button_press(uint8_t b, int hold);
  25. struct display_menu *CurrentMenu;
  26. /* Defined in main to intercept input controls */
  27. void set_input_callback(void (*cb)(uint8_t press, int hold));
  28. void clear_input_callback(void);
  29. void set_keepalive(void (*cb)(void));
  30. void clear_keepalive(void);
  31. int ui_get_menu_selection(void);
  32. #endif