mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-06-07 19:01:54 -07:00
Option for filename prefix after (and time before)
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user