rockbox/apps/plugins/lib/configfile.h
Daniel Stenberg 2acc0ac542 Updated our source code header to explicitly mention that we are GPL v2 or
later. We still need to hunt down snippets used that are not. 1324 modified
files...
http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-06/0060.shtml


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17847 a1c6a512-1295-4272-9138-f99709370657
2008-06-28 18:10:04 +00:00

80 lines
2.9 KiB
C

/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2002 Linus Nielsen Feltzing
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef CONFIGFILE_H
#define CONFIGFILE_H
#define TYPE_INT 1
#define TYPE_ENUM 2
#define TYPE_STRING 3
struct configdata
{
int type; /* See TYPE_ macros above */
int min; /* Min value for integers, should be 0 for enums */
int max; /* Max value for enums and integers,
buffer size for strings */
int *val; /* Pointer to integer/enum value,
NULL if the item is a string */
char *name; /* Pointer to the name of the item */
char **values; /* List of strings for enums, NULL if not enum */
char *string; /* Pointer to a string buffer if the item is a string,
NULL otherwise */
};
void configfile_init(const struct plugin_api* newrb);
/* configfile_save - Given configdata entries this function will
create a config file with these entries, destroying any
previous config file of the same name */
int configfile_save(const char *filename, struct configdata *cfg,
int num_items, int version);
int configfile_load(const char *filename, struct configdata *cfg,
int num_items, int min_version);
/* configfile_get_value - Given a key name, this function will
return the integer value for that key.
Input:
filename = config file filename
name = (name/value) pair name entry
Return:
value if (name/value) pair is found
-1 if entry is not found
*/
int configfile_get_value(const char* filename, const char* name);
/* configure_update_entry - Given a key name and integer value
this function will update the entry if found, or add it if
not found.
Input:
filename = config file filename
name = (name/value) pair name entry
val = new value for (name/value) pair
Return:
1 if the (name/value) pair was found and updated with the new value
0 if the (name/value) pair was added as a new entry
-1 if error
*/
int configfile_update_entry(const char* filename, const char* name, int val);
#endif