FILE *conf_handle;
struct config_file config;
+extern uint8_t *enable_list;
+void list_patches_build(char *name, int desc_is_fname);
void
regenerate_config()
}
}
+ list_patches_build(PATH_PATCHES, 0);
+
if (!config.options[OPTION_SILENCE])
fprintf(BOTTOM_SCREEN, "Config file loaded.\n");
}
{
fprintf(stderr, "Saving config.\n");
+ write_file(enable_list, PATH_TEMP "/PATCHENABLE", FCRAM_SPACING / 2);
+
f_unlink(PATH_CONFIG);
if (!(conf_handle = fopen(PATH_CONFIG, "w")))
fwrite(&config, 1, sizeof(config), conf_handle);
fclose(conf_handle);
+
+ config.options[OPTION_RECONFIGURED] = 1; // Save caches on boot.
}
#include "common.h"
#include "firm/firm.h"
#include "firm/headers.h"
-#define MENU_MAIN 1
+#define MENU_MAIN 1
#define MENU_OPTIONS 2
#define MENU_PATCHES 3
-#define MENU_INFO 4
-#define MENU_HELP 5
-#define MENU_RESET 6
-#define MENU_POWER 7
-#define MENU_BOOTME 8
+#define MENU_INFO 4
+#define MENU_HELP 5
+#define MENU_RESET 6
+#define MENU_POWER 7
+#define MENU_SAVECFG 8
+#define MENU_BOOTME 9
#define MAX_PATCHES ((FCRAM_SPACING / 2) / sizeof(struct options_s))
struct options_s *patches = (struct options_s *)FCRAM_MENU_LOC;
int
menu_patches()
{
- list_patches_build(PATH_PATCHES, 0);
-
show_menu(patches, enable_list);
- // Remove old settings, save new
- f_unlink(PATH_TEMP "/PATCHENABLE");
- write_file(enable_list, PATH_TEMP "/PATCHENABLE", FCRAM_SPACING / 2);
-
- // TODO - Determine whether it actually changed.
- config.options[OPTION_RECONFIGURED] = 1;
-
return MENU_MAIN;
}
{
show_menu(options, config.options);
- // TODO - Determine whether it actually changed.
- config.options[OPTION_RECONFIGURED] = 1;
-
return MENU_MAIN;
}
int
menu_reset()
{
- write_file(enable_list, PATH_TEMP "/PATCHENABLE", FCRAM_SPACING / 2);
- config.options[OPTION_RECONFIGURED] = 1;
- save_config(); // Save config, including the reconfigured flag.
-
fumount(); // Unmount SD.
// Reboot.
int
menu_poweroff()
{
- write_file(enable_list, PATH_TEMP "/PATCHENABLE", FCRAM_SPACING / 2);
- config.options[OPTION_RECONFIGURED] = 1;
- save_config(); // Save config, including the reconfigured flag.
-
fumount(); // Unmount SD.
// Reboot.
;
}
+int menu_saveconfig() {
+ save_config(); // Save config, including the reconfigured flag.
+
+ return MENU_MAIN;
+}
+
int
menu_main()
{
// TODO - Stop using different menu code here.
set_cursor(TOP_SCREEN, 0, 0);
- const char *list[] = { "Options", "Patches", "Info", "Help/Readme", "Reboot", "Power off", "Boot Firmware" };
- int menu_max = 7;
+ const char *list[] = { "Options", "Patches", "Info", "Help/Readme", "Reboot", "Power off", "Save Configuration", "Boot Firmware" };
+ int menu_max = 8;
header("A:Enter DPAD:Nav");
case MENU_HELP:
to_menu = menu_help();
break;
+ case MENU_SAVECFG:
+ to_menu = menu_saveconfig();
+ break;
case MENU_BOOTME:
return 0;
case MENU_RESET: