123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #ifndef UI_H
- #define UI_H
- #include <stdint.h>
- void ui_init(void);
- #define ENTRY_TYPE_TEXT 0
- #define ENTRY_TYPE_BOOL 1
- #define ENTRY_TYPE_DEC 2
- #define ENTRY_TYPE_HEX 3
- #define MAX_ENTRY 8
- struct display_menu {
- struct display_menu *next;
- int entry_n;
- struct display_menu_entry {
- int type;
- char label[16];
- void (*action)(struct display_menu_entry *item, uint8_t button);
- int min, max, step;
- int *var;
- const void *arg;
- } entry[MAX_ENTRY];
- void (*render)(struct display_menu *menu);
- };
- void ui_display_menu(const struct display_menu *menu);
- void ui_button_press(uint8_t b, int hold);
- struct display_menu *CurrentMenu;
- /* Defined in main to intercept input controls */
- void set_input_callback(void (*cb)(uint8_t press, int hold));
- void clear_input_callback(void);
- void set_keepalive(void (*cb)(void));
- void clear_keepalive(void);
- int ui_get_menu_selection(void);
- #endif
|