Option for filename prefix after (and time before)

This commit is contained in:
Willy-JL
2024-01-24 01:39:34 +00:00
parent 695bc65d5c
commit 411a65a42e
4 changed files with 70 additions and 18 deletions
@@ -36,6 +36,14 @@ static void xtreme_app_scene_protocols_subghz_extend_changed(VariableItem* item)
app->save_subghz = true;
}
static void xtreme_app_scene_protocols_file_naming_prefix_changed(VariableItem* item) {
XtremeApp* app = variable_item_get_context(item);
bool value = variable_item_get_current_value_index(item);
variable_item_set_current_value_text(item, value ? "After" : "Before");
xtreme_settings.file_naming_prefix_after = value;
app->save_settings = true;
}
void xtreme_app_scene_protocols_on_enter(void* context) {
XtremeApp* app = context;
VariableItemList* var_item_list = app->var_item_list;
@@ -66,6 +74,16 @@ void xtreme_app_scene_protocols_on_enter(void* context) {
item = variable_item_list_add(var_item_list, "GPIO Pins", 0, NULL, app);
variable_item_set_current_value_text(item, ">");
item = variable_item_list_add(
var_item_list,
"File Naming Prefix",
2,
xtreme_app_scene_protocols_file_naming_prefix_changed,
app);
variable_item_set_current_value_index(item, xtreme_settings.file_naming_prefix_after);
variable_item_set_current_value_text(
item, xtreme_settings.file_naming_prefix_after ? "After" : "Before");
variable_item_list_set_enter_callback(
var_item_list, xtreme_app_scene_protocols_var_item_list_callback, app);
+43 -18
View File
@@ -6,6 +6,7 @@
#include <stdlib.h>
#include <stdbool.h>
#include <furi.h>
#include <xtreme/xtreme.h>
const char* const name_generator_left[] = {
"super",
@@ -59,14 +60,25 @@ void name_generator_make_random_prefixed(char* name, size_t max_name_size, const
uint8_t name_generator_left_i = rand() % COUNT_OF(name_generator_left);
uint8_t name_generator_right_i = rand() % COUNT_OF(name_generator_right);
snprintf(
name,
max_name_size,
"%s%s%s-%s",
prefix ? prefix : "",
prefix ? "_" : "",
name_generator_left[name_generator_left_i],
name_generator_right[name_generator_right_i]);
if(xtreme_settings.file_naming_prefix_after) {
snprintf(
name,
max_name_size,
"%s-%s%s%s",
name_generator_left[name_generator_left_i],
name_generator_right[name_generator_right_i],
prefix ? "_" : "",
prefix ? prefix : "");
} else {
snprintf(
name,
max_name_size,
"%s%s%s-%s",
prefix ? prefix : "",
prefix ? "_" : "",
name_generator_left[name_generator_left_i],
name_generator_right[name_generator_right_i]);
}
// Set first symbol to upper case
if(islower((int)name[0])) name[0] = name[0] - 0x20;
@@ -84,16 +96,29 @@ void name_generator_make_detailed(char* name, size_t max_name_size, const char*
FuriHalRtcDateTime dateTime;
furi_hal_rtc_get_datetime(&dateTime);
snprintf(
name,
max_name_size,
"%s_%.4d-%.2d-%.2d_%.2d,%.2d",
prefix,
dateTime.year,
dateTime.month,
dateTime.day,
dateTime.hour,
dateTime.minute);
if(xtreme_settings.file_naming_prefix_after) {
snprintf(
name,
max_name_size,
"%.4d-%.2d-%.2d_%.2d,%.2d_%s",
dateTime.year,
dateTime.month,
dateTime.day,
dateTime.hour,
dateTime.minute,
prefix);
} else {
snprintf(
name,
max_name_size,
"%s_%.4d-%.2d-%.2d_%.2d,%.2d",
prefix,
dateTime.year,
dateTime.month,
dateTime.day,
dateTime.hour,
dateTime.minute);
}
// Set first symbol to upper case
if(islower((int)name[0])) name[0] = name[0] - 0x20;
+8
View File
@@ -42,6 +42,7 @@ XtremeSettings xtreme_settings = {
.uart_esp_channel = FuriHalSerialIdUsart, // pin 13,14
.uart_nmea_channel = FuriHalSerialIdUsart, // pin 13,14
.uart_general_channel = FuriHalSerialIdUsart, // pin 13,14
.file_naming_prefix_after = false, // Before
};
void XTREME_SETTINGS_LOAD() {
@@ -233,6 +234,11 @@ void XTREME_SETTINGS_LOAD() {
} else {
flipper_format_rewind(file);
}
if(flipper_format_read_bool(file, "file_naming_prefix_after", &b, 1)) {
x->file_naming_prefix_after = b;
} else {
flipper_format_rewind(file);
}
furi_string_free(s);
}
flipper_format_free(file);
@@ -291,6 +297,8 @@ void XTREME_SETTINGS_SAVE() {
flipper_format_write_uint32(file, "uart_nmea_channel", &e, 1);
e = x->uart_general_channel;
flipper_format_write_uint32(file, "uart_general_channel", &e, 1);
flipper_format_write_bool(
file, "file_naming_prefix_after", &x->file_naming_prefix_after, 1);
}
flipper_format_free(file);
furi_record_close(RECORD_STORAGE);
+1
View File
@@ -82,6 +82,7 @@ typedef struct {
FuriHalSerialId uart_esp_channel;
FuriHalSerialId uart_nmea_channel;
FuriHalSerialId uart_general_channel;
bool file_naming_prefix_after;
} XtremeSettings;
typedef enum {