lightmeter_scene_main.c 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #include "../../lightmeter.h"
  2. static void lightmeter_scene_main_on_left(void* context) {
  3. LightMeterApp* app = context;
  4. view_dispatcher_send_custom_event(app->view_dispatcher, LightMeterAppCustomEventConfig);
  5. }
  6. static void lightmeter_scene_main_on_right(void* context) {
  7. LightMeterApp* app = context;
  8. view_dispatcher_send_custom_event(app->view_dispatcher, LightMeterAppCustomEventReset);
  9. }
  10. void lightmeter_scene_main_on_enter(void* context) {
  11. LightMeterApp* app = context;
  12. variable_item_list_reset(app->var_item_list);
  13. main_view_set_iso(app->main_view, app->config->iso);
  14. main_view_set_nd(app->main_view, app->config->nd);
  15. main_view_set_dome(app->main_view, app->config->dome);
  16. main_view_set_lux_only(app->main_view, app->config->lux_only);
  17. main_view_set_measurement_resolution(app->main_view, app->config->measurement_resolution);
  18. lightmeter_main_view_set_left_callback(app->main_view, lightmeter_scene_main_on_left, app);
  19. lightmeter_main_view_set_right_callback(app->main_view, lightmeter_scene_main_on_right, app);
  20. view_dispatcher_switch_to_view(app->view_dispatcher, LightMeterAppViewMainView);
  21. }
  22. bool lightmeter_scene_main_on_event(void* context, SceneManagerEvent event) {
  23. LightMeterApp* app = context;
  24. bool response = false;
  25. switch(event.type) {
  26. case SceneManagerEventTypeCustom:
  27. if(event.event == LightMeterAppCustomEventConfig) {
  28. scene_manager_next_scene(app->scene_manager, LightMeterAppSceneConfig);
  29. response = true;
  30. } else if(event.event == LightMeterAppCustomEventReset) {
  31. lightmeter_app_reset_callback(app);
  32. response = true;
  33. }
  34. break;
  35. case SceneManagerEventTypeTick:
  36. lightmeter_app_i2c_callback(app);
  37. response = true;
  38. break;
  39. default:
  40. break;
  41. }
  42. return response;
  43. }
  44. void lightmeter_scene_main_on_exit(void* context) {
  45. UNUSED(context);
  46. }