| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- #include "../scope_app_i.h"
- void scope_scene_setup_widget_callback(GuiButtonType result, InputType type, void* context) {
- ScopeApp* app = context;
- if(type == InputTypeShort) {
- view_dispatcher_send_custom_event(app->view_dispatcher, result);
- }
- }
- static void timeperiod_cb(VariableItem* item) {
- ScopeApp* app = variable_item_get_context(item);
- furi_assert(app);
- uint8_t index = variable_item_get_current_value_index(item);
- variable_item_set_current_value_text(item, time_list[index].str);
- app->time = time_list[index].time;
- }
- static void scale_cb(VariableItem* item) {
- ScopeApp* app = variable_item_get_context(item);
- furi_assert(app);
- uint8_t index = variable_item_get_current_value_index(item);
- variable_item_set_current_value_text(item, scale_list[index].str);
- app->scale = scale_list[index].scale;
- }
- static void fft_cb(VariableItem* item) {
- ScopeApp* app = variable_item_get_context(item);
- furi_assert(app);
- uint8_t index = variable_item_get_current_value_index(item);
- variable_item_set_current_value_text(item, fft_list[index].str);
- app->fft = fft_list[index].window;
- }
- static void measurement_cb(VariableItem* item) {
- ScopeApp* app = variable_item_get_context(item);
- furi_assert(app);
- uint8_t index = variable_item_get_current_value_index(item);
- variable_item_set_current_value_text(item, measurement_list[index].str);
- app->measurement = measurement_list[index].type;
- }
- void scope_scene_setup_on_enter(void* context) {
- ScopeApp* app = context;
- VariableItemList* var_item_list = app->variable_item_list;
- VariableItem* item;
- item = variable_item_list_add(
- var_item_list, "Time period", COUNT_OF(time_list), timeperiod_cb, app);
- for(uint32_t i = 0; i < COUNT_OF(time_list); i++) {
- if(time_list[i].time == app->time) {
- variable_item_set_current_value_index(item, i);
- variable_item_set_current_value_text(item, time_list[i].str);
- break;
- }
- }
- item = variable_item_list_add(
- var_item_list, "FFT window", COUNT_OF(fft_list), fft_cb, app);
- for(uint32_t i = 0; i < COUNT_OF(fft_list); i++) {
- if(fft_list[i].window == app->fft) {
- variable_item_set_current_value_index(item, i);
- variable_item_set_current_value_text(item, fft_list[i].str);
- break;
- }
- }
- item = variable_item_list_add(
- var_item_list, "Scale", COUNT_OF(scale_list), scale_cb, app);
- for(uint32_t i = 0; i < COUNT_OF(scale_list); i++) {
- if(scale_list[i].scale == app->scale) {
- variable_item_set_current_value_index(item, i);
- variable_item_set_current_value_text(item, scale_list[i].str);
- break;
- }
- }
- item = variable_item_list_add(
- var_item_list, "Measurement", COUNT_OF(measurement_list), measurement_cb, app);
- for(uint32_t i = 0; i < COUNT_OF(measurement_list); i++) {
- if(measurement_list[i].type == app->measurement) {
- variable_item_set_current_value_index(item, i);
- variable_item_set_current_value_text(item, measurement_list[i].str);
- break;
- }
- }
- view_dispatcher_switch_to_view(app->view_dispatcher, ScopeViewVariableItemList);
- }
- bool scope_scene_setup_on_event(void* context, SceneManagerEvent event) {
- ScopeApp* app = context;
- bool consumed = false;
- UNUSED(app);
- UNUSED(event);
- return consumed;
- }
- void scope_scene_setup_on_exit(void* context) {
- ScopeApp* app = context;
- variable_item_list_reset(app->variable_item_list);
- // Clear views
- widget_reset(app->widget);
- }
|