From bbbc20f7eb6728f6ba71b26925770edea114f21d Mon Sep 17 00:00:00 2001 From: Newsdee Date: Thu, 7 Nov 2019 22:53:16 +0800 Subject: [PATCH] Save input map files to /config/inputs/ * Save input map files to /config/inputs/ (old folder is still compatible, will revert if file not found) * Reverted label to "undefine" --- file_io.cpp | 18 ++++++++++++++++++ file_io.h | 3 +++ input.cpp | 6 +++--- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/file_io.cpp b/file_io.cpp index ea37bfd..023289f 100644 --- a/file_io.cpp +++ b/file_io.cpp @@ -543,6 +543,14 @@ int FileSaveConfig(const char *name, void *pBuffer, int size) return FileSave(path, pBuffer, size); } +int FileSaveJoymap(const char *name, void *pBuffer, int size) +{ + char path[256] = { CONFIG_DIR"/inputs/" }; + FileCreatePath(path); + strcat(path, name); + return FileSave(path, pBuffer, size); +} + int FileLoad(const char *name, void *pBuffer, int size) { if (name[0] != '/') sprintf(full_path, "%s/%s", getRootDir(), name); @@ -589,6 +597,16 @@ int FileLoadConfig(const char *name, void *pBuffer, int size) return FileLoad(path, pBuffer, size); } +int FileLoadJoymap(const char *name, void *pBuffer, int size) +{ + char path[256] = { CONFIG_DIR"/inputs/" }; + strcat(path, name); + int ret = FileLoad(path, pBuffer, size); + if (!ret) + return FileLoadConfig(name, pBuffer, size); + return ret; +} + int FileExists(const char *name) { return isPathRegularFile(name); diff --git a/file_io.h b/file_io.h index 1d5b3f6..8a388ca 100644 --- a/file_io.h +++ b/file_io.h @@ -88,6 +88,9 @@ int FileLoad(const char *name, void *pBuffer, int size); // supply pBuffer = 0 t #define CONFIG_DIR "config" int FileSaveConfig(const char *name, void *pBuffer, int size); int FileLoadConfig(const char *name, void *pBuffer, int size); // supply pBuffer = 0 to get the file size without loading +int FileSaveJoymap(const char *name, void *pBuffer, int size); +int FileLoadJoymap(const char *name, void *pBuffer, int size); // supply pBuffer = 0 to get the file size without loading + void AdjustDirectory(char *path); int ScanDirectory(char* path, int mode, const char *extension, int options, const char *prefix = NULL); diff --git a/input.cpp b/input.cpp index 57e6cde..1b7bccc 100644 --- a/input.cpp +++ b/input.cpp @@ -1256,7 +1256,7 @@ void finish_map_setting(int dismiss) { for (int i = 0; i < NUMDEV; i++) input[i].has_map = 0; - if (!dismiss) FileSaveConfig(get_map_name(mapping_dev, 0), &input[mapping_dev].map, sizeof(input[mapping_dev].map)); + if (!dismiss) FileSaveJoymap(get_map_name(mapping_dev, 0), &input[mapping_dev].map, sizeof(input[mapping_dev].map)); if (is_menu_core()) input[mapping_dev].has_mmap = 0; } } @@ -1727,7 +1727,7 @@ static void input_cb(struct input_event *ev, struct input_absinfo *absinfo, int if (!input[dev].has_mmap) { - if (!FileLoadConfig(get_map_name(dev, 1), &input[dev].mmap, sizeof(input[dev].mmap))) + if (!FileLoadJoymap(get_map_name(dev, 1), &input[dev].mmap, sizeof(input[dev].mmap))) { memset(input[dev].mmap, 0, sizeof(input[dev].mmap)); input[dev].has_mmap++; @@ -1738,7 +1738,7 @@ static void input_cb(struct input_event *ev, struct input_absinfo *absinfo, int if (!input[dev].has_map) { - if (!FileLoadConfig(get_map_name(dev, 0), &input[dev].map, sizeof(input[dev].map))) + if (!FileLoadJoymap(get_map_name(dev, 0), &input[dev].map, sizeof(input[dev].map))) { memset(input[dev].map, 0, sizeof(input[dev].map)); if (!is_menu_core())