Add warning if saved config matches default config

pull/85/head
IanSB 2019-04-10 17:42:00 +01:00
rodzic ce0e4e71d3
commit ef33f99bcc
2 zmienionych plików z 40 dodań i 34 usunięć

Wyświetl plik

@ -280,13 +280,11 @@ unsigned int file_read_profile(char *profile_name, char *sub_profile_name, int u
init_filesystem();
if (sub_profile_name != NULL) {
sprintf(path, "/Saved_Profiles/%s/%s.txt", profile_name, sub_profile_name);
sprintf(path, "%s/%s/%s.txt", SAVED_PROFILE_BASE, profile_name, sub_profile_name);
} else {
sprintf(path, "/Saved_Profiles/%s.txt", profile_name);
sprintf(path, "%s/%s.txt", SAVED_PROFILE_BASE, profile_name);
}
result = f_open(&file, path, FA_READ);
if (result != FR_OK) {
if (sub_profile_name != NULL) {
@ -489,7 +487,7 @@ int file_save(char *dirpath, char *name, char *buffer, unsigned int buffer_size)
char path[256];
char comparison_path[256];
char comparison_buffer[MAX_BUFFER_SIZE];
int status = 0;
init_filesystem();
result = f_mkdir(SAVED_PROFILE_BASE);
@ -516,21 +514,21 @@ int file_save(char *dirpath, char *name, char *buffer, unsigned int buffer_size)
if (result != FR_OK) {
log_warn("Failed to open %s (result = %d)", comparison_path, result);
close_filesystem();
return 0;
return result;
}
result = f_read (&file, comparison_buffer, MAX_BUFFER_SIZE - 1, &bytes_read);
if (result != FR_OK) {
log_warn("Failed to read %s (result = %d)", comparison_path, result);
close_filesystem();
return 0;
return result;
}
result = f_close(&file);
if (result != FR_OK) {
log_warn("Failed to close %s (result = %d)", comparison_path, result);
close_filesystem();
return 0;
return result;
}
comparison_buffer[bytes_read] = 0;
@ -540,13 +538,11 @@ int file_save(char *dirpath, char *name, char *buffer, unsigned int buffer_size)
if (strcmp(buffer, comparison_buffer) !=0) {
log_info("Saving file %s", path);
result = f_open(&file, path, FA_WRITE | FA_CREATE_ALWAYS);
if (result != FR_OK) {
log_warn("Failed to open %s (result = %d)", path, result);
close_filesystem();
return 0;
return result;
}
result = f_write(&file, buffer, buffer_size, &num_written);
@ -554,19 +550,16 @@ int file_save(char *dirpath, char *name, char *buffer, unsigned int buffer_size)
if (result != FR_OK) {
log_warn("Failed to read %s (result = %d)", path, result);
close_filesystem();
return 0;
return result;
}
result = f_close(&file);
if (result != FR_OK) {
log_warn("Failed to close %s (result = %d)", path, result);
close_filesystem();
return 0;
return result;
}
close_filesystem();
log_info("%s writing complete", path);
return num_written;
} else {
log_info("File matches default deleting %s", path);
@ -574,11 +567,13 @@ int file_save(char *dirpath, char *name, char *buffer, unsigned int buffer_size)
if (result != FR_OK && result != FR_NO_FILE) {
log_warn("Failed to delete %s (result = %d)", path, result);
close_filesystem();
return 0;
return result;
}
log_info("%s deleting complete", path);
status = -1;
}
close_filesystem();
return num_written;
return status;
}
int file_restore(char *dirpath, char *name) {
FRESULT result;

Wyświetl plik

@ -1242,7 +1242,7 @@ void osd_clear() {
}
void save_profile(char *path, char *name, char *buffer, char *default_buffer, char *sub_default_buffer)
int save_profile(char *path, char *name, char *buffer, char *default_buffer, char *sub_default_buffer)
{
char *pointer = buffer;
char param_string[80];
@ -1359,7 +1359,7 @@ void save_profile(char *path, char *name, char *buffer, char *default_buffer, ch
i++;
}
*pointer = 0;
file_save(path, name, buffer, pointer - buffer);
return file_save(path, name, buffer, pointer - buffer);
}
void process_single_profile(char *buffer) {
@ -1660,8 +1660,6 @@ int osd_key(int key) {
int ret = -1;
static int cal_count;
static int last_vsync;
char path[256];
char msg[256];
switch (osd_state) {
case IDLE:
@ -1793,19 +1791,32 @@ int osd_key(int key) {
redraw_menu();
}
break;
case I_SAVE:
if (has_sub_profiles[get_feature(F_PROFILE)]) {
save_profile(profile_names[get_feature(F_PROFILE)], "Default", save_buffer, NULL, NULL);
save_profile(profile_names[get_feature(F_PROFILE)], sub_profile_names[get_feature(F_SUBPROFILE)], save_buffer, default_buffer, sub_default_buffer);
sprintf(path, "%s/%s.txt", profile_names[get_feature(F_PROFILE)], sub_profile_names[get_feature(F_SUBPROFILE)]);
} else {
save_profile(NULL, profile_names[get_feature(F_PROFILE)], save_buffer, default_buffer, NULL);
sprintf(path, "%s.txt", profile_names[get_feature(F_PROFILE)]);
case I_SAVE: {
int result = 0;
char msg[256];
char path[256];
if (has_sub_profiles[get_feature(F_PROFILE)]) {
save_profile(profile_names[get_feature(F_PROFILE)], "Default", save_buffer, NULL, NULL);
result = save_profile(profile_names[get_feature(F_PROFILE)], sub_profile_names[get_feature(F_SUBPROFILE)], save_buffer, default_buffer, sub_default_buffer);
sprintf(path, "%s/%s.txt", profile_names[get_feature(F_PROFILE)], sub_profile_names[get_feature(F_SUBPROFILE)]);
} else {
result = save_profile(NULL, profile_names[get_feature(F_PROFILE)], save_buffer, default_buffer, NULL);
sprintf(path, "%s.txt", profile_names[get_feature(F_PROFILE)]);
}
if (result == 0) {
sprintf(msg, "Saved: %s", path);
} else {
if (result == -1) {
sprintf(msg, "Not saved (same as default)");
} else {
sprintf(msg, "Error %d saving file", result);
}
}
set_status_message(msg);
load_profiles(get_feature(F_PROFILE));
break;
}
sprintf(msg, "Saved: %s", path);
set_status_message(msg);
load_profiles(get_feature(F_PROFILE));
break;
case I_RESTORE:
if (has_sub_profiles[get_feature(F_PROFILE)]) {
file_restore(profile_names[get_feature(F_PROFILE)], "Default");