2004-09-17 19:45:44 +00:00
# ifndef fooconfparserhfoo
# define fooconfparserhfoo
/* $Id$ */
/***
2006-06-19 21:53:48 +00:00
This file is part of PulseAudio .
2004-09-17 19:45:44 +00:00
2006-06-19 21:53:48 +00:00
PulseAudio is free software ; you can redistribute it and / or modify
2004-11-14 14:58:54 +00:00
it under the terms of the GNU Lesser General Public License as published
2004-09-17 19:45:44 +00:00
by the Free Software Foundation ; either version 2 of the License ,
or ( at your option ) any later version .
2006-06-19 21:53:48 +00:00
PulseAudio is distributed in the hope that it will be useful , but
2004-09-17 19:45:44 +00:00
WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU
General Public License for more details .
2004-11-14 14:58:54 +00:00
You should have received a copy of the GNU Lesser General Public License
2006-06-19 21:53:48 +00:00
along with PulseAudio ; if not , write to the Free Software
2004-09-17 19:45:44 +00:00
Foundation , Inc . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307
USA .
* * */
2004-11-04 21:27:12 +00:00
# include <stdio.h>
2004-11-21 21:31:28 +00:00
/* An abstract parser for simple, line based, shallow configuration
* files consisting of variable assignments only . */
/* Wraps info for parsing a specific configuration variable */
2006-01-11 01:17:39 +00:00
typedef struct pa_config_item {
2004-11-21 21:31:28 +00:00
const char * lvalue ; /* name of the variable */
int ( * parse ) ( const char * filename , unsigned line , const char * lvalue , const char * rvalue , void * data , void * userdata ) ; /* Function that is called to parse the variable's value */
void * data ; /* Where to store the variable's data */
2006-01-11 01:17:39 +00:00
} pa_config_item ;
2004-09-17 19:45:44 +00:00
2004-11-21 21:31:28 +00:00
/* The configuration file parsing routine. Expects a table of
* pa_config_items in * t that is terminated by an item where lvalue is
* NULL */
2006-01-11 01:17:39 +00:00
int pa_config_parse ( const char * filename , FILE * f , const pa_config_item * t , void * userdata ) ;
2004-09-17 19:45:44 +00:00
2004-11-21 21:31:28 +00:00
/* Generic parsers for integers, booleans and strings */
2004-09-17 19:45:44 +00:00
int pa_config_parse_int ( const char * filename , unsigned line , const char * lvalue , const char * rvalue , void * data , void * userdata ) ;
int pa_config_parse_bool ( const char * filename , unsigned line , const char * lvalue , const char * rvalue , void * data , void * userdata ) ;
int pa_config_parse_string ( const char * filename , unsigned line , const char * lvalue , const char * rvalue , void * data , void * userdata ) ;
# endif