diff options
author | Andrew Mahone <andrew.mahone@gmail.com> | 2009-01-17 22:53:12 +0000 |
---|---|---|
committer | Andrew Mahone <andrew.mahone@gmail.com> | 2009-01-17 22:53:12 +0000 |
commit | 0b41f0599f62ec9099197bbe6f4dd7144cebe0df (patch) | |
tree | 927f23ea1a943777baa0e7cf1f8070608c3847d7 /apps/plugins/lib/configfile.c | |
parent | 2fecb713ea07f06b5219a75c95909b986c2468a5 (diff) | |
download | rockbox-0b41f0599f62ec9099197bbe6f4dd7144cebe0df.tar.gz rockbox-0b41f0599f62ec9099197bbe6f4dd7144cebe0df.zip |
unify pointers to value for configfile, and add TYPE_BOOL type, used by
pictureflow
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19786 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/lib/configfile.c')
-rw-r--r-- | apps/plugins/lib/configfile.c | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/apps/plugins/lib/configfile.c b/apps/plugins/lib/configfile.c index 419109f904..063efdde2e 100644 --- a/apps/plugins/lib/configfile.c +++ b/apps/plugins/lib/configfile.c | |||
@@ -59,15 +59,21 @@ int configfile_save(const char *filename, struct configdata *cfg, | |||
59 | /* pre-allocate 10 bytes for INT */ | 59 | /* pre-allocate 10 bytes for INT */ |
60 | rb->fdprintf(fd, "%s: %10d\n", | 60 | rb->fdprintf(fd, "%s: %10d\n", |
61 | cfg[i].name, | 61 | cfg[i].name, |
62 | *cfg[i].val); | 62 | *cfg[i].int_p); |
63 | break; | ||
64 | |||
65 | case TYPE_BOOL: | ||
66 | rb->fdprintf(fd, "%s: 10%d\n", | ||
67 | cfg[i].name, | ||
68 | (int)*cfg[i].bool_p); | ||
63 | break; | 69 | break; |
64 | 70 | ||
65 | case TYPE_ENUM: | 71 | case TYPE_ENUM: |
66 | rb->fdprintf(fd, "%s: %s\n", | 72 | rb->fdprintf(fd, "%s: %s\n", |
67 | cfg[i].name, | 73 | cfg[i].name, |
68 | cfg[i].values[*cfg[i].val]); | 74 | cfg[i].values[*cfg[i].int_p]); |
69 | break; | 75 | break; |
70 | 76 | ||
71 | case TYPE_STRING: | 77 | case TYPE_STRING: |
72 | rb->fdprintf(fd, "%s: %s\n", | 78 | rb->fdprintf(fd, "%s: %s\n", |
73 | cfg[i].name, | 79 | cfg[i].name, |
@@ -116,17 +122,22 @@ int configfile_load(const char *filename, struct configdata *cfg, | |||
116 | tmp = rb->atoi(val); | 122 | tmp = rb->atoi(val); |
117 | /* Only set it if it's within range */ | 123 | /* Only set it if it's within range */ |
118 | if(tmp >= cfg[i].min && tmp <= cfg[i].max) | 124 | if(tmp >= cfg[i].min && tmp <= cfg[i].max) |
119 | *cfg[i].val = tmp; | 125 | *cfg[i].int_p = tmp; |
120 | break; | 126 | break; |
121 | 127 | ||
128 | case TYPE_BOOL: | ||
129 | tmp = rb->atoi(val); | ||
130 | *cfg[i].bool_p = (bool)tmp; | ||
131 | break; | ||
132 | |||
122 | case TYPE_ENUM: | 133 | case TYPE_ENUM: |
123 | for(j = 0;j < cfg[i].max;j++) { | 134 | for(j = 0;j < cfg[i].max;j++) { |
124 | if(!rb->strcmp(cfg[i].values[j], val)) { | 135 | if(!rb->strcmp(cfg[i].values[j], val)) { |
125 | *cfg[i].val = j; | 136 | *cfg[i].int_p = j; |
126 | } | 137 | } |
127 | } | 138 | } |
128 | break; | 139 | break; |
129 | 140 | ||
130 | case TYPE_STRING: | 141 | case TYPE_STRING: |
131 | rb->strncpy(cfg[i].string, val, cfg[i].max); | 142 | rb->strncpy(cfg[i].string, val, cfg[i].max); |
132 | break; | 143 | break; |