SubGhz use system filename gen with proto names

This commit is contained in:
Willy-JL
2024-01-24 01:07:17 +00:00
parent f821c4cdc0
commit e545942e00
4 changed files with 29 additions and 69 deletions

View File

@@ -162,13 +162,13 @@ static void subghz_scene_receiver_config_set_gps(VariableItem* item) {
}
}
static void subghz_scene_receiver_config_set_timestamp_file_names(VariableItem* item) {
static void subghz_scene_receiver_config_set_protocol_file_names(VariableItem* item) {
SubGhz* subghz = variable_item_get_context(item);
uint8_t index = variable_item_get_current_value_index(item);
variable_item_set_current_value_text(item, timestamp_names_text[index]);
subghz->last_settings->timestamp_file_names = (index == 1);
subghz->last_settings->protocol_file_names = (index == 1);
subghz_last_settings_save(subghz->last_settings);
}
@@ -221,9 +221,9 @@ void subghz_scene_radio_settings_on_enter(void* context) {
variable_item_list,
"Protocol Names",
TIMESTAMP_NAMES_COUNT,
subghz_scene_receiver_config_set_timestamp_file_names,
subghz_scene_receiver_config_set_protocol_file_names,
subghz);
value_index = subghz->last_settings->timestamp_file_names;
value_index = subghz->last_settings->protocol_file_names;
variable_item_set_current_value_index(item, value_index);
variable_item_set_current_value_text(item, timestamp_names_text[value_index]);

View File

@@ -12,36 +12,6 @@ void subghz_scene_save_name_text_input_callback(void* context) {
view_dispatcher_send_custom_event(subghz->view_dispatcher, SubGhzCustomEventSceneSaveName);
}
void subghz_scene_save_name_get_timefilename(
FuriString* name,
const char* proto_name,
bool fulldate) {
FuriHalRtcDateTime datetime = {0};
furi_hal_rtc_get_datetime(&datetime);
if(fulldate) {
furi_string_printf(
name,
"%s_%.4d%.2d%.2d-%.2d%.2d%.2d",
proto_name,
datetime.year,
datetime.month,
datetime.day,
datetime.hour,
datetime.minute,
datetime.second);
} else {
furi_string_printf(
name,
"%s_%.2d%.2d-%.2d%.2d%.2d",
proto_name,
datetime.month,
datetime.day,
datetime.hour,
datetime.minute,
datetime.second);
}
}
void subghz_scene_save_name_on_enter(void* context) {
SubGhz* subghz = context;
@@ -52,35 +22,19 @@ void subghz_scene_save_name_on_enter(void* context) {
FuriString* file_name = furi_string_alloc();
FuriString* dir_name = furi_string_alloc();
char file_name_buf[SUBGHZ_MAX_LEN_NAME] = {0};
if(!subghz_path_is_file(subghz->file_path)) {
char file_name_buf[SUBGHZ_MAX_LEN_NAME] = {0};
if(subghz->last_settings->timestamp_file_names) {
SubGhzProtocolDecoderBase* decoder_result = subghz_txrx_get_decoder(subghz->txrx);
if(decoder_result != 0x0) {
if(decoder_result != NULL) {
if(strlen(decoder_result->protocol->name) != 0) {
if(scene_manager_has_previous_scene(
subghz->scene_manager, SubGhzSceneSetType)) {
subghz_scene_save_name_get_timefilename(file_name, "S", true);
} else {
subghz_scene_save_name_get_timefilename(
file_name, decoder_result->protocol->name, false);
}
} else {
subghz_scene_save_name_get_timefilename(file_name, "S", true);
}
} else {
subghz_scene_save_name_get_timefilename(file_name, "S", true);
}
} else {
subghz_scene_save_name_get_timefilename(file_name, "S", true);
}
SubGhzProtocolDecoderBase* decoder_result = subghz_txrx_get_decoder(subghz->txrx);
if(subghz->last_settings->protocol_file_names && decoder_result != NULL &&
strlen(decoder_result->protocol->name) != 0 &&
!scene_manager_has_previous_scene(subghz->scene_manager, SubGhzSceneSetType)) {
name_generator_make_auto(
file_name_buf, SUBGHZ_MAX_LEN_NAME, decoder_result->protocol->name);
} else {
name_generator_make_auto(
file_name_buf, SUBGHZ_MAX_LEN_NAME, SUBGHZ_APP_FILENAME_PREFIX);
furi_string_set(file_name, file_name_buf);
}
furi_string_set(file_name, file_name_buf);
furi_string_set(subghz->file_path, SUBGHZ_APP_FOLDER);
//highlighting the entire filename by default
dev_name_empty = true;
@@ -94,7 +48,13 @@ void subghz_scene_save_name_on_enter(void* context) {
if(scene_manager_get_scene_state(subghz->scene_manager, SubGhzSceneReadRAW) ==
SubGhzCustomEventManagerSetRAW) {
dev_name_empty = true;
subghz_scene_save_name_get_timefilename(file_name, "RAW", true);
if(subghz->last_settings->protocol_file_names) {
name_generator_make_auto(file_name_buf, SUBGHZ_MAX_LEN_NAME, "RAW");
} else {
name_generator_make_auto(
file_name_buf, SUBGHZ_MAX_LEN_NAME, SUBGHZ_APP_FILENAME_PREFIX);
}
furi_string_set(file_name, file_name_buf);
}
}
furi_string_set(subghz->file_path, dir_name);