Mercurial > audlegacy
annotate src/libaudacious/configdb_libmcs.c @ 2358:9c84ab3eb2c6 trunk
[svn] - add configdb backend based on libmcs.
author | nenolod |
---|---|
date | Wed, 17 Jan 2007 12:51:12 -0800 |
parents | src/libaudacious/configdb_rcfile.c@0b98ad8c8b17 |
children | 75598f596c92 |
rev | line source |
---|---|
2313 | 1 /* This program is free software; you can redistribute it and/or modify |
2 * it under the terms of the GNU General Public License as published by | |
3 * the Free Software Foundation; either version 2 of the License, or | |
4 * (at your option) any later version. | |
5 * | |
6 * This program is distributed in the hope that it will be useful, | |
7 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
8 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
9 * GNU General Public License for more details. | |
10 * | |
11 * You should have received a copy of the GNU General Public License | |
12 * along with this program; if not, write to the Free Software | |
13 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |
14 */ | |
15 | |
16 #ifdef HAVE_CONFIG_H | |
17 # include "config.h" | |
18 #endif | |
19 | |
20 #include "configdb.h" | |
21 | |
2314
d5d95a459a19
[svn] - fix: E:configdb_rcfile.c(45) [bmp_cfg_db_open]:Autoconversion of integer to pointer is not allowed in C99
nenolod
parents:
2313
diff
changeset
|
22 #include <stdlib.h> |
2313 | 23 #include <string.h> |
2358 | 24 |
25 #include <libmcs/mcs.h> | |
2313 | 26 |
27 | |
28 #define RCFILE_DEFAULT_SECTION_NAME "audacious" | |
29 | |
2358 | 30 static gboolean mcs_initted = FALSE; |
2313 | 31 |
32 struct _ConfigDb | |
33 { | |
2358 | 34 mcs_handle_t *handle; |
2313 | 35 }; |
36 | |
37 | |
38 ConfigDb * | |
39 bmp_cfg_db_open() | |
40 { | |
41 ConfigDb *db; | |
42 char *tmp; | |
43 | |
44 db = g_new(ConfigDb, 1); | |
45 | |
2358 | 46 if (!mcs_initted) |
47 { | |
48 mcs_init(); | |
49 mcs_initted = TRUE; | |
2325
63c9a2724e73
[svn] - revert r3646 because it is not a user-friendly method of transitioning.
nenolod
parents:
2318
diff
changeset
|
50 } |
2313 | 51 |
2358 | 52 db->handle = mcs_new(RCFILE_DEFAULT_SECTION_NAME); |
2313 | 53 |
54 return db; | |
55 } | |
56 | |
57 void | |
58 bmp_cfg_db_close(ConfigDb * db) | |
59 { | |
2358 | 60 mcs_destroy(db->handle); |
61 g_free(db); | |
2313 | 62 } |
63 | |
64 gboolean | |
65 bmp_cfg_db_get_string(ConfigDb * db, | |
66 const gchar * section, | |
67 const gchar * key, | |
68 gchar ** value) | |
69 { | |
70 if (!section) | |
71 section = RCFILE_DEFAULT_SECTION_NAME; | |
72 | |
2358 | 73 return mcs_get_string(db->handle, section, key, value); |
2313 | 74 } |
75 | |
76 gboolean | |
77 bmp_cfg_db_get_int(ConfigDb * db, | |
78 const gchar * section, const gchar * key, gint * value) | |
79 { | |
80 if (!section) | |
81 section = RCFILE_DEFAULT_SECTION_NAME; | |
82 | |
2358 | 83 return mcs_get_int(db->handle, section, key, value); |
2313 | 84 } |
85 | |
86 gboolean | |
87 bmp_cfg_db_get_bool(ConfigDb * db, | |
88 const gchar * section, | |
89 const gchar * key, | |
90 gboolean * value) | |
91 { | |
92 if (!section) | |
93 section = RCFILE_DEFAULT_SECTION_NAME; | |
94 | |
2358 | 95 return mcs_get_bool(db->handle, section, key, value); |
2313 | 96 } |
97 | |
98 gboolean | |
99 bmp_cfg_db_get_float(ConfigDb * db, | |
100 const gchar * section, | |
101 const gchar * key, | |
102 gfloat * value) | |
103 { | |
104 if (!section) | |
105 section = RCFILE_DEFAULT_SECTION_NAME; | |
106 | |
2358 | 107 return mcs_get_float(db->handle, section, key, value); |
2313 | 108 } |
109 | |
110 gboolean | |
111 bmp_cfg_db_get_double(ConfigDb * db, | |
112 const gchar * section, | |
113 const gchar * key, | |
114 gdouble * value) | |
115 { | |
116 if (!section) | |
117 section = RCFILE_DEFAULT_SECTION_NAME; | |
118 | |
2358 | 119 return mcs_get_double(db->handle, section, key, value); |
2313 | 120 } |
121 | |
122 void | |
123 bmp_cfg_db_set_string(ConfigDb * db, | |
124 const gchar * section, | |
125 const gchar * key, | |
2346
0b98ad8c8b17
[svn] removed xmms_create_dirbrowser, small config db fixes
mf0102
parents:
2326
diff
changeset
|
126 const gchar * value) |
2313 | 127 { |
128 if (!section) | |
129 section = RCFILE_DEFAULT_SECTION_NAME; | |
130 | |
2358 | 131 mcs_set_string(db->handle, section, key, value); |
2313 | 132 } |
133 | |
134 void | |
135 bmp_cfg_db_set_int(ConfigDb * db, | |
136 const gchar * section, | |
137 const gchar * key, | |
138 gint value) | |
139 { | |
140 if (!section) | |
141 section = RCFILE_DEFAULT_SECTION_NAME; | |
142 | |
2358 | 143 mcs_set_int(db->handle, section, key, value); |
2313 | 144 } |
145 | |
146 void | |
147 bmp_cfg_db_set_bool(ConfigDb * db, | |
148 const gchar * section, | |
149 const gchar * key, | |
150 gboolean value) | |
151 { | |
152 if (!section) | |
153 section = RCFILE_DEFAULT_SECTION_NAME; | |
154 | |
2358 | 155 mcs_set_boolean(db->handle, section, key, value); |
2313 | 156 } |
157 | |
158 void | |
159 bmp_cfg_db_set_float(ConfigDb * db, | |
160 const gchar * section, | |
161 const gchar * key, | |
162 gfloat value) | |
163 { | |
164 if (!section) | |
165 section = RCFILE_DEFAULT_SECTION_NAME; | |
166 | |
2358 | 167 mcs_set_float(db->handle, section, key, value); |
2313 | 168 } |
169 | |
170 void | |
171 bmp_cfg_db_set_double(ConfigDb * db, | |
172 const gchar * section, | |
173 const gchar * key, | |
174 gdouble value) | |
175 { | |
176 if (!section) | |
177 section = RCFILE_DEFAULT_SECTION_NAME; | |
178 | |
2358 | 179 mcs_set_double(db->handle, section, key, value); |
2313 | 180 } |
181 | |
182 void | |
183 bmp_cfg_db_unset_key(ConfigDb * db, | |
184 const gchar * section, | |
185 const gchar * key) | |
186 { | |
187 g_return_if_fail(db != NULL); | |
188 g_return_if_fail(key != NULL); | |
189 | |
190 if (!section) | |
191 section = RCFILE_DEFAULT_SECTION_NAME; | |
192 | |
2358 | 193 mcs_unset_key(db->handle, section, key); |
2313 | 194 } |