2004-09-17 19:45:44 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								# ifndef fooconfparserhfoo 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define fooconfparserhfoo 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/***
 
							 
						 
					
						
							
								
									
										
										
										
											2006-06-19 21:53:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  This  file  is  part  of  PulseAudio . 
							 
						 
					
						
							
								
									
										
										
										
											2004-09-17 19:45:44 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2007-02-13 15:35:19 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  Copyright  2004 - 2006  Lennart  Poettering 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											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 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-10-01 01:14:36 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/* Generic parsers for integers, size_t, 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 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-10-21 18:38:55 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								int  pa_config_parse_unsigned ( const  char  * filename ,  unsigned  line ,  const  char  * lvalue ,  const  char  * rvalue ,  void  * data ,  void  * userdata ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-10-01 01:14:36 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								int  pa_config_parse_size ( const  char  * filename ,  unsigned  line ,  const  char  * lvalue ,  const  char  * rvalue ,  void  * data ,  void  * userdata ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2004-09-17 19:45:44 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								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