main_view.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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. } MainViewModel;
  26. typedef void (*LightMeterMainViewButtonCallback)(void* context);
  27. void lightmeter_main_view_set_left_callback(
  28. MainView* lightmeter_main_view,
  29. LightMeterMainViewButtonCallback callback,
  30. void* context);
  31. MainView* main_view_alloc();
  32. void main_view_free(MainView* main_view);
  33. View* main_view_get_view(MainView* main_view);
  34. void main_view_set_lux(MainView* main_view, float val);
  35. void main_view_set_EV(MainView* main_view_, float val);
  36. void main_view_set_response(MainView* main_view_, bool val);
  37. void main_view_set_iso(MainView* main_view, int val);
  38. void main_view_set_nd(MainView* main_view, int val);
  39. void main_view_set_aperture(MainView* main_view, int val);
  40. void main_view_set_speed(MainView* main_view, int val);
  41. void main_view_set_dome(MainView* main_view, bool val);
  42. bool main_view_get_dome(MainView* main_view);
  43. void draw_top_row(Canvas* canvas, MainViewModel* context);
  44. void draw_aperture(Canvas* canvas, MainViewModel* context);
  45. void draw_speed(Canvas* canvas, MainViewModel* context);
  46. void draw_mode_indicator(Canvas* canvas, MainViewModel* context);
  47. void draw_nd_number(Canvas* canvas, MainViewModel* context);
  48. void draw_EV_number(Canvas* canvas, MainViewModel* context);