diff --git a/applications/main/subghz/scenes/subghz_scene_signal_settings.c b/applications/main/subghz/scenes/subghz_scene_signal_settings.c index 1bbe6f2c8..3c3e83f6f 100644 --- a/applications/main/subghz/scenes/subghz_scene_signal_settings.c +++ b/applications/main/subghz/scenes/subghz_scene_signal_settings.c @@ -1,20 +1,63 @@ #include "../subghz_i.h" #include "subghz/types.h" #include "../helpers/subghz_custom_event.h" -#include -#include #include -#include +#include + +#define COUNTER_MODE_COUNT 7 +const char* const counter_mode_text[COUNTER_MODE_COUNT] = { + "System", + "Mode 1", + "Mode 2", + "Mode 3", + "Mode 4", + "Mode 5", + "Mode 6", +}; + +int8_t counter_mode = 0; + +const int32_t counter_mode_value[COUNTER_MODE_COUNT] = { + 0, + 1, + 2, + 3, + 4, + 5, + 6, +}; + +void subghz_scene_signal_settings_counter_mode_changed (VariableItem* item){ + SubGhz* subghz = variable_item_get_context(item); + UNUSED (subghz); + uint8_t index = variable_item_get_current_value_index(item); + variable_item_set_current_value_text(item, counter_mode_text[index]); + counter_mode = counter_mode_value[index]; -void subghz_scene_signal_settings_text_input_callback(void* context) { - furi_assert(context); - SubGhz* subghz = context; - view_dispatcher_send_custom_event(subghz->view_dispatcher, SubGhzCustomEventSceneSignalSettings); } void subghz_scene_signal_settings_on_enter(void* context) { SubGhz* subghz = context; + VariableItemList* variable_item_list = subghz->variable_item_list; + int32_t value_index; + VariableItem* item; + int32_t available_count = COUNTER_MODE_COUNT; + + item = variable_item_list_add( + variable_item_list, + "Counter Mode", + available_count, + subghz_scene_signal_settings_counter_mode_changed, + subghz); + value_index = value_index_int32( + counter_mode, + counter_mode_value, + available_count); + + variable_item_set_current_value_index(item, value_index); + variable_item_set_current_value_text(item, counter_mode_text[value_index]); + view_dispatcher_switch_to_view(subghz->view_dispatcher, SubGhzViewIdVariableItemList); } @@ -30,5 +73,6 @@ bool subghz_scene_signal_settings_on_event(void* context, SceneManagerEvent even void subghz_scene_signal_settings_on_exit(void* context) { SubGhz* subghz = context; - + variable_item_list_set_selected_item(subghz->variable_item_list, 0); + variable_item_list_reset(subghz->variable_item_list); }