dolphin_views.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #pragma once
  2. #include <stdint.h>
  3. #include <stdbool.h>
  4. #include <gui/canvas.h>
  5. #include <input/input.h>
  6. #include <furi.h>
  7. #ifndef MAX
  8. #define MAX(x, y) (((x) > (y)) ? (x) : (y))
  9. #endif
  10. #ifndef MIN
  11. #define MIN(x, y) (((x) < (y)) ? (x) : (y))
  12. #endif
  13. #ifndef CLAMP
  14. #define CLAMP(x, upper, lower) (MIN(upper, MAX(x, lower)))
  15. #endif
  16. // Idle screen
  17. typedef enum {
  18. DolphinViewIdleMain,
  19. DolphinViewFirstStart,
  20. DolphinViewStats,
  21. DolphinViewHwMismatch,
  22. DolphinViewLockMenu,
  23. } DolphinViewIdle;
  24. // Debug info
  25. typedef enum {
  26. DolphinViewStatsFw,
  27. DolphinViewStatsBoot,
  28. DolphinViewStatsMeta,
  29. DolphinViewStatsTotalCount,
  30. } DolphinViewStatsScreens;
  31. typedef struct {
  32. uint32_t page;
  33. } DolphinViewFirstStartModel;
  34. void dolphin_view_first_start_draw(Canvas* canvas, void* model);
  35. bool dolphin_view_first_start_input(InputEvent* event, void* context);
  36. typedef struct {
  37. uint32_t icounter;
  38. uint32_t butthurt;
  39. DolphinViewStatsScreens screen;
  40. } DolphinViewStatsModel;
  41. typedef struct {
  42. uint8_t idx;
  43. int8_t door_left_x;
  44. int8_t door_right_x;
  45. uint8_t exit_timeout;
  46. bool locked;
  47. } DolphinViewLockMenuModel;
  48. typedef struct {
  49. Icon* animation;
  50. uint8_t scene_num;
  51. uint8_t hint_timeout;
  52. } DolphinViewMainModel;
  53. void dolphin_view_idle_main_draw(Canvas* canvas, void* model);
  54. bool dolphin_view_idle_main_input(InputEvent* event, void* context);
  55. void dolphin_view_idle_up_draw(Canvas* canvas, void* model);
  56. void dolphin_view_lockmenu_draw(Canvas* canvas, void* model);
  57. void dolphin_view_idle_down_draw(Canvas* canvas, void* model);
  58. void dolphin_view_hw_mismatch_draw(Canvas* canvas, void* model);
  59. uint32_t dolphin_view_idle_back(void* context);