annotate th_config.h @ 10:a25f5d22483e

Updates.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 20 Apr 2009 00:01:43 +0300
parents 5a327a2988fa
children e467b3586e4d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
1 /*
10
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
2 * Very simple configuration file handling
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
3 * Programmed and designed by Matti 'ccr' Hamalainen
3
5a327a2988fa Breaking the API a bit, cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
4 * (C) Copyright 2004-2008 Tecnic Software productions (TNSP)
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
5 *
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
6 * Please read file 'COPYING' for information on license and distribution.
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
7 */
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
8 #ifndef _TH_CONFIG_H
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
9 #define _TH_CONFIG_H
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
10
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
11 #ifdef __cplusplus
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
12 extern "C" {
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
13 #endif
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
14
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
15 #include "th_util.h"
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
16 #include <stdio.h>
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
17
10
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
18
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
19 /* Definitions
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
20 */
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
21 enum ITEM_TYPE {
10
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
22 ITEM_BLOCK = 1,
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
23 ITEM_STRING,
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
24 ITEM_INT,
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
25 ITEM_UINT,
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
26 ITEM_BOOL,
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
27 ITEM_FLOAT
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
28 };
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
29
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
30
10
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
31 typedef struct _cfgitem_t {
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
32 char *name; /* Config item name */
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
33 int type; /* Type of the item */
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
34 void *data; /* Data / value */
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
35
10
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
36 BOOL (*validate)(struct _cfgitem_t *);
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
37
10
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
38 struct _cfgitem_t *next, *prev;
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
39 } cfgitem_t;
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
40
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
41
10
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
42 /* Functions
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
43 */
10
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
44 cfgitem_t * th_config_new(void);
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
45 int th_config_read(char *, cfgitem_t **);
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
46 void th_config_free(cfgitem_t *);
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
47 int th_config_write(FILE *, cfgitem_t *);
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
48
10
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
49 int th_config_add_block(cfgitem_t *cfg, char *name, BOOL (*validate)(cfgitem_t *));
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
50 int th_config_add_int(cfgitem_t *cfg, char *name, BOOL (*validate)(cfgitem_t *), int *data, int itemDef);
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
51 int th_config_add_uint(cfgitem_t *cfg, char *name, BOOL (*validate)(cfgitem_t *), unsigned int *data, unsigned int itemDef);
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
52 int th_config_add_str(cfgitem_t *cfg, char *name, BOOL (*validate)(cfgitem_t *), char **data, char *itemDef);
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
53 int th_config_add_bool(cfgitem_t *cfg, char *name, BOOL (*validate)(cfgitem_t *), BOOL *data, BOOL itemDef);
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
54 int th_config_add_float(cfgitem_t *cfg, char *name, BOOL (*validate)(cfgitem_t *), float *data, float itemDef);
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
55
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
56 #ifdef __cplusplus
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
57 }
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
58 #endif
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
59 #endif /* _TH_CONFIG_H */