1 /***************************************************************************
4 * Thu Mar 10 15:02:49 2005
5 * Copyright 2005 Simon Morlat
6 * Email simon.morlat@linphone.org
7 ****************************************************************************/
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU Library General Public License for more details.
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
29 * The LpConfig object is used to manipulate a configuration file.
32 * The format of the configuration file is a .ini like format:
33 * - sections are defined in []
34 * - each section contains a sequence of key=value pairs.
40 * playback_dev=ALSA: Default device
46 typedef struct _LpConfig LpConfig;
52 LpConfig * lp_config_new(const char *filename);
53 int lp_config_read_file(LpConfig *lpconfig, const char *filename);
55 * Retrieves a configuration item as a string, given its section, key, and default value.
58 * The default value string is returned if the config item isn't found.
60 const char *lp_config_get_string(LpConfig *lpconfig, const char *section, const char *key, const char *default_string);
61 int lp_config_read_file(LpConfig *lpconfig, const char *filename);
63 * Retrieves a configuration item as an integer, given its section, key, and default value.
66 * The default integer value is returned if the config item isn't found.
68 int lp_config_get_int(LpConfig *lpconfig,const char *section, const char *key, int default_value);
69 int lp_config_read_file(LpConfig *lpconfig, const char *filename);
71 * Retrieves a configuration item as a float, given its section, key, and default value.
74 * The default float value is returned if the config item isn't found.
76 float lp_config_get_float(LpConfig *lpconfig,const char *section, const char *key, float default_value);
78 * Sets a string config item
82 void lp_config_set_string(LpConfig *lpconfig,const char *section, const char *key, const char *value);
84 * Sets an integer config item
88 void lp_config_set_int(LpConfig *lpconfig,const char *section, const char *key, int value);
90 * Writes the config file to disk.
94 int lp_config_sync(LpConfig *lpconfig);
96 * Returns 1 if a given section is present in the configuration.
100 int lp_config_has_section(LpConfig *lpconfig, const char *section);
102 * Removes every pair of key,value in a section and remove the section.
106 void lp_config_clean_section(LpConfig *lpconfig, const char *section);
107 /*tells whether uncommited (with lp_config_sync()) modifications exist*/
108 int lp_config_needs_commit(const LpConfig *lpconfig);
109 void lp_config_destroy(LpConfig *cfg);