-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathSettings Api.c
More file actions
114 lines (95 loc) · 3.06 KB
/
Copy pathSettings Api.c
File metadata and controls
114 lines (95 loc) · 3.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include <stdio.h>
#include <sys/locking.h>
#include <time.h>
#include <Windows.h>
#include "Settings Api.h"
#include "FileHandler.h"
void Settings_GetDirectory (int select, char *Directory, int len) {
char path_buffer[_MAX_PATH], drive[_MAX_DRIVE], dir[_MAX_DIR];
char *default_path, *use_default, *search, *ret;
switch (select) {
case RomDir:
default_path = DEF_ROM_PATH;
use_default = USE_DEF_ROM_PATH;
search = DEF_ROM_NAME;
break;
case AutoSaveDir:
default_path = DEF_AUTOSAVE_PATH;
use_default = USE_DEF_AUTOSAVE_PATH;
search = DEF_AUTOSAVE_NAME;
break;
case InstantSaveDir:
default_path = DEF_SAVE_PATH;
use_default = USE_DEF_SAVE_PATH;
search = DEF_SAVE_NAME;
break;
case PluginDir:
default_path = DEF_PLUGIN_PATH;
use_default = USE_DEF_PLUGIN_PATH;
search = DEF_PLUGIN_NAME;
break;
case SnapShotDir:
default_path = DEF_SNAPSHOT_PATH;
use_default = USE_DEF_SNAPSHOT_PATH;
search = DEF_SNAPSHOT_NAME;
break;
default:
return;
}
GetModuleFileName(NULL, path_buffer, sizeof(path_buffer));
_splitpath(path_buffer, drive, dir, NULL, NULL);
sprintf(Directory, default_path, drive, dir);
Settings_Read(APPS_NAME, DIRECTORIES, use_default, STR_FALSE, &ret);
if (strcmp(ret, STR_TRUE) != 0 || select == RomDir) { // Rom Directory is a special case, it is always read.
free (ret);
Settings_Read(APPS_NAME, DIRECTORIES, search, Directory, &ret);
if (ret) {
strncpy(Directory, ret, len);
free(ret);
}
}
}
void Settings_Read(char *filename, char *id, char *setting, char *defaultvalue, char **value) {
*value = ReadStr(filename, id, setting, defaultvalue);
}
BOOL Settings_ReadBool(char *filename, char *id, char *setting, BOOL defaultvalue) {
char *value;
BOOL ret;
value = ReadStr(filename, id, setting, defaultvalue ? STR_TRUE : STR_FALSE);
ret = strcmp(value, STR_TRUE) == 0 ? TRUE : FALSE;
if (value) free(value);
return ret;
}
int Settings_ReadInt(char *filename, char *id, char *setting, int defaultvalue) {
return FetchIntValue(filename, id, setting, defaultvalue);
}
BOOL Settings_HasSetting(char *filename, char *id, char *setting) {
return IsSet(filename, id, setting);
}
void Settings_Write(char *filename, char *id, char *setting, char *value) {
Write(filename, id, setting, value);
}
void Settings_Delete(char *filename, char *id, char *setting) {
Delete(filename, id, setting);
}
void Settings_DeleteEntry(char *filename, char *id) {
DeleteAll(filename, id);
}
void Settings_FetchKeyNames(char *filename, char *id, char **keys) {
*keys = ReadStr(filename, id, NULL, NULL);
}
void Settings_ChangeKey(char* filename, char* id, char* oldkey, char* newkey) {
ChangeKey(filename, id, oldkey, newkey);
}
void Settings_ReadLine(char* filename, char* id, int line_number, char** line) {
*line = ReadLine(filename, id, line_number);
}
void Settings_DeleteLine(char* filename, char* id, char* line) {
DeleteLine(filename, id, line);
}
void Settings_WriteLine(char* filename, char* id, char* line) {
WriteLine(filename, id, line);
}
BOOL Settings_EntryExists(char* filename, char* id) {
return EntryExists(filename, id);
}