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"
This commit is contained in:
Newsdee
2019-11-07 22:53:16 +08:00
committed by sorgelig
parent e8290adc5e
commit bbbc20f7eb
3 changed files with 24 additions and 3 deletions

View File

@@ -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);

View File

@@ -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);

View File

@@ -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())