diff --git a/applications/main/subghz/scenes/subghz_scene_read_raw.c b/applications/main/subghz/scenes/subghz_scene_read_raw.c index f4749df65..e7e93ad24 100644 --- a/applications/main/subghz/scenes/subghz_scene_read_raw.c +++ b/applications/main/subghz/scenes/subghz_scene_read_raw.c @@ -140,7 +140,7 @@ bool subghz_scene_read_raw_on_event(void* context, SceneManagerEvent event) { } else { //Restore default setting if(subghz->raw_send_only) { - subghz_set_defalut_preset(subghz); + subghz_set_default_preset(subghz); } else { subghz_txrx_set_preset( subghz->txrx, "AM650", subghz->last_settings->frequency, NULL, 0); diff --git a/applications/main/subghz/scenes/subghz_scene_receiver_config.c b/applications/main/subghz/scenes/subghz_scene_receiver_config.c index d65778b01..3edde712e 100644 --- a/applications/main/subghz/scenes/subghz_scene_receiver_config.c +++ b/applications/main/subghz/scenes/subghz_scene_receiver_config.c @@ -93,15 +93,14 @@ uint8_t subghz_scene_receiver_config_next_frequency(const uint32_t value, void* furi_assert(context); SubGhz* subghz = context; uint8_t index = 0; - for(uint8_t i = 0; - i < subghz_setting_get_frequency_count(subghz_txrx_get_setting(subghz->txrx)); - i++) { - if(value == subghz_setting_get_frequency(subghz_txrx_get_setting(subghz->txrx), i)) { + SubGhzSetting* setting = subghz_txrx_get_setting(subghz->txrx); + + for(uint8_t i = 0; i < subghz_setting_get_frequency_count(setting); i++) { + if(value == subghz_setting_get_frequency(setting, i)) { index = i; break; } else { - index = - subghz_setting_get_frequency_default_index(subghz_txrx_get_setting(subghz->txrx)); + index = subghz_setting_get_frequency_default_index(setting); } } return index; @@ -111,15 +110,14 @@ uint8_t subghz_scene_receiver_config_next_preset(const char* preset_name, void* furi_assert(context); SubGhz* subghz = context; uint8_t index = 0; - for(uint8_t i = 0; i < subghz_setting_get_preset_count(subghz_txrx_get_setting(subghz->txrx)); - i++) { - if(!strcmp( - subghz_setting_get_preset_name(subghz_txrx_get_setting(subghz->txrx), i), - preset_name)) { + SubGhzSetting* setting = subghz_txrx_get_setting(subghz->txrx); + + for(uint8_t i = 0; i < subghz_setting_get_preset_count(setting); i++) { + if(!strcmp(subghz_setting_get_preset_name(setting, i), preset_name)) { index = i; break; } else { - // index = subghz_setting_get_frequency_default_index(subghz_txrx_get_setting(subghz->txrx)); + // index = subghz_setting_get_frequency_default_index(setting); } } return index; @@ -148,6 +146,7 @@ uint8_t subghz_scene_receiver_config_hopper_value_index( static void subghz_scene_receiver_config_set_frequency(VariableItem* item) { SubGhz* subghz = variable_item_get_context(item); uint8_t index = variable_item_get_current_value_index(item); + SubGhzSetting* setting = subghz_txrx_get_setting(subghz->txrx); if(subghz_txrx_hopper_get_state(subghz->txrx) == SubGhzHopperStateOFF) { char text_buf[10] = {0}; @@ -155,10 +154,8 @@ static void subghz_scene_receiver_config_set_frequency(VariableItem* item) { text_buf, sizeof(text_buf), "%lu.%02lu", - subghz_setting_get_frequency(subghz_txrx_get_setting(subghz->txrx), index) / 1000000, - (subghz_setting_get_frequency(subghz_txrx_get_setting(subghz->txrx), index) % - 1000000) / - 10000); + subghz_setting_get_frequency(setting, index) / 1000000, + (subghz_setting_get_frequency(setting, index) % 1000000) / 10000); variable_item_set_current_value_text(item, text_buf); SubGhzRadioPreset preset = subghz_txrx_get_preset(subghz->txrx); @@ -166,19 +163,17 @@ static void subghz_scene_receiver_config_set_frequency(VariableItem* item) { subghz_txrx_set_preset( subghz->txrx, furi_string_get_cstr(preset.name), - subghz_setting_get_frequency(subghz_txrx_get_setting(subghz->txrx), index), + subghz_setting_get_frequency(setting, index), preset.data, preset.data_size); preset = subghz_txrx_get_preset(subghz->txrx); subghz->last_settings->frequency = preset.frequency; - subghz_setting_set_default_frequency( - subghz_txrx_get_setting(subghz->txrx), preset.frequency); + subghz_setting_set_default_frequency(setting, preset.frequency); } else { variable_item_set_current_value_index( - item, - subghz_setting_get_frequency_default_index(subghz_txrx_get_setting(subghz->txrx))); + item, subghz_setting_get_frequency_default_index(setting)); } } @@ -202,42 +197,34 @@ static void subghz_scene_receiver_config_set_preset(VariableItem* item) { static void subghz_scene_receiver_config_set_hopping_running(VariableItem* item) { SubGhz* subghz = variable_item_get_context(item); uint8_t index = variable_item_get_current_value_index(item); + SubGhzSetting* setting = subghz_txrx_get_setting(subghz->txrx); + VariableItem* frequency_item = (VariableItem*)scene_manager_get_scene_state( + subghz->scene_manager, SubGhzSceneReceiverConfig); variable_item_set_current_value_text(item, hopping_text[index]); if(hopping_value[index] == SubGhzHopperStateOFF) { char text_buf[10] = {0}; + uint32_t frequency = subghz_setting_get_default_frequency(setting); snprintf( text_buf, sizeof(text_buf), "%lu.%02lu", - subghz_setting_get_default_frequency(subghz_txrx_get_setting(subghz->txrx)) / 1000000, - (subghz_setting_get_default_frequency(subghz_txrx_get_setting(subghz->txrx)) % - 1000000) / - 10000); - variable_item_set_current_value_text( - (VariableItem*)scene_manager_get_scene_state( - subghz->scene_manager, SubGhzSceneReceiverConfig), - text_buf); + frequency / 1000000, + (frequency % 1000000) / 10000); + variable_item_set_current_value_text(frequency_item, text_buf); SubGhzRadioPreset preset = subghz_txrx_get_preset(subghz->txrx); subghz_txrx_set_preset( subghz->txrx, furi_string_get_cstr(preset.name), - subghz_setting_get_default_frequency(subghz_txrx_get_setting(subghz->txrx)), + frequency, preset.data, preset.data_size); variable_item_set_current_value_index( - (VariableItem*)scene_manager_get_scene_state( - subghz->scene_manager, SubGhzSceneReceiverConfig), - subghz_setting_get_frequency_default_index(subghz_txrx_get_setting(subghz->txrx))); + frequency_item, subghz_setting_get_frequency_default_index(setting)); } else { - variable_item_set_current_value_text( - (VariableItem*)scene_manager_get_scene_state( - subghz->scene_manager, SubGhzSceneReceiverConfig), - " -----"); + variable_item_set_current_value_text(frequency_item, " -----"); variable_item_set_current_value_index( - (VariableItem*)scene_manager_get_scene_state( - subghz->scene_manager, SubGhzSceneReceiverConfig), - subghz_setting_get_frequency_default_index(subghz_txrx_get_setting(subghz->txrx))); + frequency_item, subghz_setting_get_frequency_default_index(setting)); } subghz_txrx_hopper_set_state(subghz->txrx, hopping_value[index]); @@ -411,8 +398,8 @@ void subghz_scene_receiver_config_on_enter(void* context) { SPEAKER_COUNT, subghz_scene_receiver_config_set_speaker, subghz); - value_index = - value_index_uint32(subghz_txrx_speaker_get_state(subghz->txrx), speaker_value, SPEAKER_COUNT); + value_index = value_index_uint32( + subghz_txrx_speaker_get_state(subghz->txrx), speaker_value, SPEAKER_COUNT); variable_item_set_current_value_index(item, value_index); variable_item_set_current_value_text(item, speaker_text[value_index]); diff --git a/applications/main/subghz/scenes/subghz_scene_transmitter.c b/applications/main/subghz/scenes/subghz_scene_transmitter.c index 72ba4ffc0..c1bbd2343 100644 --- a/applications/main/subghz/scenes/subghz_scene_transmitter.c +++ b/applications/main/subghz/scenes/subghz_scene_transmitter.c @@ -15,16 +15,16 @@ void subghz_scene_transmitter_callback(SubGhzCustomEvent event, void* context) { bool subghz_scene_transmitter_update_data_show(void* context) { SubGhz* subghz = context; bool ret = false; - if(subghz_txrx_get_decoder(subghz->txrx)) { + SubGhzProtocolDecoderBase* decoder = subghz_txrx_get_decoder(subghz->txrx); + + if(decoder) { FuriString* key_str = furi_string_alloc(); FuriString* frequency_str = furi_string_alloc(); FuriString* modulation_str = furi_string_alloc(); if(subghz_protocol_decoder_base_deserialize( - subghz_txrx_get_decoder(subghz->txrx), subghz_txtx_get_fff_data(subghz->txrx)) == - SubGhzProtocolStatusOk) { - subghz_protocol_decoder_base_get_string( - subghz_txrx_get_decoder(subghz->txrx), key_str); + decoder, subghz_txtx_get_fff_data(subghz->txrx)) == SubGhzProtocolStatusOk) { + subghz_protocol_decoder_base_get_string(decoder, key_str); subghz_txrx_get_frequency_modulation( subghz->txrx, frequency_str, modulation_str, false); diff --git a/applications/main/subghz/subghz_i.c b/applications/main/subghz/subghz_i.c index 96b75e5b7..d17c6858f 100644 --- a/applications/main/subghz/subghz_i.c +++ b/applications/main/subghz/subghz_i.c @@ -18,7 +18,7 @@ #define TAG "SubGhz" -void subghz_set_defalut_preset(SubGhz* subghz) { +void subghz_set_default_preset(SubGhz* subghz) { furi_assert(subghz); subghz_txrx_set_preset( subghz->txrx, diff --git a/applications/main/subghz/subghz_i.h b/applications/main/subghz/subghz_i.h index b0157b672..785a6708f 100644 --- a/applications/main/subghz/subghz_i.h +++ b/applications/main/subghz/subghz_i.h @@ -120,7 +120,7 @@ struct SubGhz { void* rpc_ctx; }; -void subghz_set_defalut_preset(SubGhz* subghz); +void subghz_set_default_preset(SubGhz* subghz); void subghz_blink_start(SubGhz* subghz); void subghz_blink_stop(SubGhz* subghz);