cfg.c 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #include "cfg.h"
  2. #include "config.h"
  3. #include "uart.h"
  4. #include "fileops.h"
  5. cfg_t CFG = {
  6. .cfg_ver_maj = 1,
  7. .cfg_ver_min = 0,
  8. .last_game_valid = 0,
  9. .vidmode_menu = VIDMODE_AUTO,
  10. .vidmode_game = VIDMODE_AUTO,
  11. .pair_mode_allowed = 0,
  12. .bsx_use_systime = 0,
  13. .bsx_time = 0x0619970301180530LL
  14. };
  15. int cfg_save() {
  16. int err = 0;
  17. file_open(CFG_FILE, FA_CREATE_ALWAYS | FA_WRITE);
  18. if(file_writeblock(&CFG, 0, sizeof(CFG)) < sizeof(CFG)) {
  19. err = file_res;
  20. }
  21. file_close();
  22. return err;
  23. }
  24. int cfg_load() {
  25. int err = 0;
  26. file_open(CFG_FILE, FA_READ);
  27. if(file_readblock(&CFG, 0, sizeof(CFG)) < sizeof(CFG)) {
  28. err = file_res;
  29. }
  30. file_close();
  31. return err;
  32. }
  33. int cfg_save_last_game(uint8_t *fn) {
  34. int err = 0;
  35. file_open(LAST_FILE, FA_CREATE_ALWAYS | FA_WRITE);
  36. err = f_puts((const TCHAR*)fn, &file_handle);
  37. file_close();
  38. return err;
  39. }
  40. int cfg_get_last_game(uint8_t *fn) {
  41. int err = 0;
  42. file_open(LAST_FILE, FA_READ);
  43. f_gets((TCHAR*)fn, 255, &file_handle);
  44. file_close();
  45. return err;
  46. }
  47. void cfg_set_last_game_valid(uint8_t valid) {
  48. CFG.last_game_valid = valid;
  49. }
  50. uint8_t cfg_is_last_game_valid() {
  51. return CFG.last_game_valid;
  52. }