scope_scene_setup.c 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #include "../scope_app_i.h"
  2. void scope_scene_setup_widget_callback(GuiButtonType result, InputType type, void* context) {
  3. ScopeApp* app = context;
  4. if(type == InputTypeShort) {
  5. view_dispatcher_send_custom_event(app->view_dispatcher, result);
  6. }
  7. }
  8. static void timeperiod_cb(VariableItem* item) {
  9. ScopeApp* app = variable_item_get_context(item);
  10. furi_assert(app);
  11. uint8_t index = variable_item_get_current_value_index(item);
  12. variable_item_set_current_value_text(item, time_list[index].str);
  13. app->time = time_list[index].time;
  14. }
  15. static void measurement_cb(VariableItem* item) {
  16. ScopeApp* app = variable_item_get_context(item);
  17. furi_assert(app);
  18. uint8_t index = variable_item_get_current_value_index(item);
  19. variable_item_set_current_value_text(item, measurement_list[index].str);
  20. app->measurement = measurement_list[index].type;
  21. }
  22. void scope_scene_setup_on_enter(void* context) {
  23. ScopeApp* app = context;
  24. VariableItemList* var_item_list = app->variable_item_list;
  25. VariableItem* item;
  26. item = variable_item_list_add(
  27. var_item_list, "Time period", COUNT_OF(time_list), timeperiod_cb, app);
  28. for(uint32_t i = 0; i < COUNT_OF(time_list); i++) {
  29. if(time_list[i].time == app->time) {
  30. variable_item_set_current_value_index(item, i);
  31. variable_item_set_current_value_text(item, time_list[i].str);
  32. break;
  33. }
  34. }
  35. item = variable_item_list_add(
  36. var_item_list, "Measurement", COUNT_OF(measurement_list), measurement_cb, app);
  37. for(uint32_t i = 0; i < COUNT_OF(measurement_list); i++) {
  38. if(measurement_list[i].type == app->measurement) {
  39. variable_item_set_current_value_index(item, i);
  40. variable_item_set_current_value_text(item, measurement_list[i].str);
  41. break;
  42. }
  43. }
  44. view_dispatcher_switch_to_view(app->view_dispatcher, ScopeViewVariableItemList);
  45. }
  46. bool scope_scene_setup_on_event(void* context, SceneManagerEvent event) {
  47. ScopeApp* app = context;
  48. bool consumed = false;
  49. UNUSED(app);
  50. UNUSED(event);
  51. return consumed;
  52. }
  53. void scope_scene_setup_on_exit(void* context) {
  54. ScopeApp* app = context;
  55. variable_item_list_reset(app->variable_item_list);
  56. // Clear views
  57. widget_reset(app->widget);
  58. }