main_view.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #pragma once
  2. #include <gui/view.h>
  3. #include "lightmeter_icons.h"
  4. #include "../../lightmeter_config.h"
  5. typedef struct MainView MainView;
  6. typedef enum {
  7. FIXED_APERTURE,
  8. FIXED_SPEED,
  9. MODES_SIZE
  10. } MainViewMode;
  11. typedef struct {
  12. uint8_t recv[2];
  13. MainViewMode current_mode;
  14. float lux;
  15. float EV;
  16. float aperture_val;
  17. float speed_val;
  18. int iso_val;
  19. bool response;
  20. int iso;
  21. int nd;
  22. int aperture;
  23. int speed;
  24. bool dome;
  25. bool lux_only;
  26. } MainViewModel;
  27. typedef void (*LightMeterMainViewButtonCallback)(void* context);
  28. void lightmeter_main_view_set_left_callback(
  29. MainView* lightmeter_main_view,
  30. LightMeterMainViewButtonCallback callback,
  31. void* context);
  32. MainView* main_view_alloc();
  33. void main_view_free(MainView* main_view);
  34. View* main_view_get_view(MainView* main_view);
  35. void main_view_set_lux(MainView* main_view, float val);
  36. void main_view_set_EV(MainView* main_view_, float val);
  37. void main_view_set_response(MainView* main_view_, bool val);
  38. void main_view_set_iso(MainView* main_view, int val);
  39. void main_view_set_nd(MainView* main_view, int val);
  40. void main_view_set_aperture(MainView* main_view, int val);
  41. void main_view_set_speed(MainView* main_view, int val);
  42. void main_view_set_dome(MainView* main_view, bool val);
  43. void main_view_set_lux_only(MainView* main_view, bool val);
  44. bool main_view_get_dome(MainView* main_view);
  45. void draw_top_row(Canvas* canvas, MainViewModel* context);
  46. void draw_aperture(Canvas* canvas, MainViewModel* context);
  47. void draw_speed(Canvas* canvas, MainViewModel* context);
  48. void draw_mode_indicator(Canvas* canvas, MainViewModel* context);
  49. void draw_nd_number(Canvas* canvas, MainViewModel* context);
  50. void draw_EV_number(Canvas* canvas, MainViewModel* context);
  51. void draw_lux_only_mode(Canvas* canvas, MainViewModel* context);