2007-12-23 20:12:37 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								# ifndef foopulseproplisthfoo 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define foopulseproplisthfoo 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/***
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  This  file  is  part  of  PulseAudio . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  Copyright  2007  Lennart  Poettering 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  PulseAudio  is  free  software ;  you  can  redistribute  it  and / or  modify 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  it  under  the  terms  of  the  GNU  Lesser  General  Public  License  as 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  published  by  the  Free  Software  Foundation ;  either  version  2.1  of  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  License ,  or  ( at  your  option )  any  later  version . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  PulseAudio  is  distributed  in  the  hope  that  it  will  be  useful ,  but 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  WITHOUT  ANY  WARRANTY ;  without  even  the  implied  warranty  of 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  MERCHANTABILITY  or  FITNESS  FOR  A  PARTICULAR  PURPOSE .  See  the  GNU 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  Lesser  General  Public  License  for  more  details . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  You  should  have  received  a  copy  of  the  GNU  Lesser  General  Public 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  License  along  with  PulseAudio ;  if  not ,  write  to  the  Free  Software 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  Foundation ,  Inc . ,  59  Temple  Place ,  Suite  330 ,  Boston ,  MA  02111 - 1307 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  USA . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								* * */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-06-16 18:43:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# include  <sys/types.h> 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# include  <pulse/cdecl.h> 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# include  <pulse/gccmacro.h> 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-27 02:36:42 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# include  <pulse/version.h> 
 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								PA_C_DECL_BEGIN 
							 
						 
					
						
							
								
									
										
										
										
											2007-12-23 20:12:37 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** For streams: localized media name, formatted as UTF-8. e.g. "Guns'N'Roses: Civil War".*/ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_MEDIA_NAME                     "media.name" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For streams: localized media title if applicable, formatted as UTF-8. e.g. "Civil War" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_MEDIA_TITLE                    "media.title" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For streams: localized media artist if applicable, formatted as UTF-8. e.g. "Guns'N'Roses" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_MEDIA_ARTIST                   "media.artist" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-05-25 23:52:31 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** For streams: localized media copyright string if applicable, formatted as UTF-8. e.g. "Evil Record Corp." */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define PA_PROP_MEDIA_COPYRIGHT                "media.copyright" 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For streams: localized media generator software string if applicable, formatted as UTF-8. e.g. "Foocrop AudioFrobnicator" */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define PA_PROP_MEDIA_SOFTWARE                 "media.software" 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** For streams: media language if applicable, in standard POSIX format. e.g. "de_DE" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_MEDIA_LANGUAGE                 "media.language" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For streams: source filename if applicable, in URI format or local path. e.g. "/home/lennart/music/foobar.ogg" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_MEDIA_FILENAME                 "media.filename" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-01 21:36:19 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** \cond fulldocs */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** For streams: icon for the media. A binary blob containing PNG image data */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_MEDIA_ICON                     "media.icon" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-01 21:36:19 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** \endcond */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For streams: an XDG icon name for the media. e.g. "audio-x-mp3" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_MEDIA_ICON_NAME                "media.icon_name" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-24 01:44:46 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** For streams: logic role of this media. One of the strings "video", "music", "game", "event", "phone", "animation", "production", "a11y" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_MEDIA_ROLE                     "media.role" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For event sound streams: XDG event sound name. e.g. "message-new-email" (Event sound streams are those with media.role set to "event") */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_EVENT_ID                       "event.id" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For event sound streams: localized human readable one-line description of the event, formatted as UTF-8. e.g. "Email from lennart@example.com received." */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-21 18:55:17 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_EVENT_DESCRIPTION              "event.description" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For event sound streams: absolute horizontal mouse position on the screen if the event sound was triggered by a mouse click, integer formatted as text string. e.g. "865" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_EVENT_MOUSE_X                  "event.mouse.x" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For event sound streams: absolute vertical mouse position on the screen if the event sound was triggered by a mouse click, integer formatted as text string. e.g. "432" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_EVENT_MOUSE_Y                  "event.mouse.y" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For event sound streams: relative horizontal mouse position on the screen if the event sound was triggered by a mouse click, float formatted as text string, ranging from 0.0 (left side of the screen) to 1.0 (right side of the screen). e.g. "0.65" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-06-11 00:37:10 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_EVENT_MOUSE_HPOS               "event.mouse.hpos" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For event sound streams: relative vertical mouse position on the screen if the event sound was triggered by a mouse click, float formatted as text string, ranging from 0.0 (top of the screen) to 1.0 (bottom of the screen). e.g. "0.43" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-06-11 00:37:10 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_EVENT_MOUSE_VPOS               "event.mouse.vpos" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For event sound streams: mouse button that triggered the event if applicable, integer formatted as string with 0=left, 1=middle, 2=right. e.g. "0" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_EVENT_MOUSE_BUTTON             "event.mouse.button" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For streams that belong to a window on the screen: localized window title. e.g. "Totem Music Player" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-29 15:17:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_WINDOW_NAME                    "window.name" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For streams that belong to a window on the screen: a textual id for identifying a window logically. e.g. "org.gnome.Totem.MainWindow" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-29 15:17:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_WINDOW_ID                      "window.id" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-01 21:36:19 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** \cond fulldocs */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** For streams that belong to a window on the screen: window icon. A binary blob containing PNG image data */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-29 15:17:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_WINDOW_ICON                    "window.icon" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-01 21:36:19 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** \endcond */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For streams that belong to a window on the screen: an XDG icon name for the window. e.g. "totem" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-29 15:17:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_WINDOW_ICON_NAME               "window.icon_name" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For streams that belong to an X11 window on the screen: the X11 display string. e.g. ":0.0" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-29 15:17:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_WINDOW_X11_DISPLAY             "window.x11.display" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For streams that belong to an X11 window on the screen: the X11 screen the window is on, an integer formatted as string. e.g. "0" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-06-11 00:37:10 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_WINDOW_X11_SCREEN              "window.x11.screen" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For streams that belong to an X11 window on the screen: the X11 monitor the window is on, an integer formatted as string. e.g. "0" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-06-11 00:37:10 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_WINDOW_X11_MONITOR             "window.x11.monitor" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For streams that belong to an X11 window on the screen: the window XID, an integer formatted as string. e.g. "25632" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-29 15:17:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_WINDOW_X11_XID                 "window.x11.xid" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For clients/streams: localized human readable application name. e.g. "Totem Music Player" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_APPLICATION_NAME               "application.name" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For clients/streams: a textual id for identifying an application logically. e.g. "org.gnome.Totem" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_APPLICATION_ID                 "application.id" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For clients/streams: a version string e.g. "0.6.88" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_APPLICATION_VERSION            "application.version" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-01 21:36:19 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** \cond fulldocs */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** For clients/streams: application icon. A binary blob containing PNG image data */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_APPLICATION_ICON               "application.icon" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-01 21:36:19 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** \endcond */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For clients/streams: an XDG icon name for the application. e.g. "totem" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_APPLICATION_ICON_NAME          "application.icon_name" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For clients/streams: application language if applicable, in standard POSIX format. e.g. "de_DE" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_APPLICATION_LANGUAGE           "application.language" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For clients/streams on UNIX: application process PID, an integer formatted as string. e.g. "4711" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_APPLICATION_PROCESS_ID         "application.process.id" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For clients/streams: application process name. e.g. "totem" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_APPLICATION_PROCESS_BINARY     "application.process.binary" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For clients/streams: application user name. e.g. "lennart" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_APPLICATION_PROCESS_USER       "application.process.user" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For clients/streams: host name the application runs on. e.g. "omega" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_APPLICATION_PROCESS_HOST       "application.process.host" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For clients/streams: the D-Bus host id the application runs on. e.g. "543679e7b01393ed3e3e650047d78f6e" */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-02 00:21:41 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_APPLICATION_PROCESS_MACHINE_ID "application.process.machine_id" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-21 16:26:09 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** For clients/streams: an id for the login session the application runs in. On Unix the value of $XDG_SESSION_COOKIE. e.g. "543679e7b01393ed3e3e650047d78f6e-1235159798.76193-190367717" */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define PA_PROP_APPLICATION_PROCESS_SESSION_ID "application.process.session_id" 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** For devices: device string in the underlying audio layer's format. e.g. "surround51:0" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_DEVICE_STRING                  "device.string" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For devices: API this device is access with. e.g. "alsa" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_DEVICE_API                     "device.api" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For devices: localized human readable device one-line description, e.g. "Foobar Industries USB Headset 2000+ Ultra" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_DEVICE_DESCRIPTION             "device.description" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For devices: bus path to the device in the OS' format. e.g. "/sys/bus/pci/devices/0000:00:1f.2" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_DEVICE_BUS_PATH                "device.bus_path" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For devices: serial number if applicable. e.g. "4711-0815-1234" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_DEVICE_SERIAL                  "device.serial" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-01 20:28:58 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** For devices: vendor ID if applicable. e.g. 1274 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define PA_PROP_DEVICE_VENDOR_ID               "device.vendor.id" 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For devices: vendor name if applicable. e.g. "Foocorp Heavy Industries" */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define PA_PROP_DEVICE_VENDOR_NAME             "device.vendor.name" 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For devices: product ID if applicable. e.g. 4565 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define PA_PROP_DEVICE_PRODUCT_ID              "device.product.id" 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For devices: product name if applicable. e.g. "SuperSpeakers 2000 Pro" */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define PA_PROP_DEVICE_PRODUCT_NAME            "device.product.name" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For devices: device class. One of "sound", "modem", "monitor", "filter" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_DEVICE_CLASS                   "device.class" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-01 20:30:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** For devices: form factor if applicable. One of "internal", "speaker", "handset", "tv", "webcam", "microphone", "headset", "headphone", "hands-free", "car", "hifi", "computer", "portable" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_DEVICE_FORM_FACTOR             "device.form_factor" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-01 20:32:32 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** For devices: bus of the device if applicable. One of "isa", "pci", "usb", "firewire", "bluetooth" */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define PA_PROP_DEVICE_BUS                     "device.bus" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-01 21:36:19 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** \cond fulldocs */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-01 21:34:01 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** For devices: icon for the device. A binary blob containing PNG image data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define PA_PROP_DEVICE_ICON                    "device.icon" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-01 21:36:19 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** \endcond */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-01 21:34:01 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For devices: an XDG icon name for the device. e.g. "sound-card-speakers-usb" */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define PA_PROP_DEVICE_ICON_NAME               "device.icon_name" 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** For devices: access mode of the device if applicable. One of "mmap", "mmap_rewrite", "serial" */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_DEVICE_ACCESS_MODE             "device.access_mode" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For filter devices: master device id if applicable. */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_DEVICE_MASTER_DEVICE           "device.master_device" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For devices: buffer size in bytes, integer formatted as string.. */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_DEVICE_BUFFERING_BUFFER_SIZE   "device.buffering.buffer_size" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For devices: fragment size in bytes, integer formatted as string. */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_DEVICE_BUFFERING_FRAGMENT_SIZE "device.buffering.fragment_size" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For devices: profile identifier for the profile this devices is in. e.g. "analog-stereo", "analog-surround-40", "iec958-stereo", ...*/ 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-15 23:46:42 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_DEVICE_PROFILE_NAME            "device.profile.name" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-06-08 16:58:45 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** For devices: intended use. A comma seperated list of roles (see PA_PROP_MEDIA_ROLE) this device is particularly well suited for, due to latency, quality or form factor. \since 0.9.16 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define PA_PROP_DEVICE_INTENDED_ROLES          "device.intended_roles" 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** For devices: human readable one-line description of the profile this device is in. e.g. "Analog Stereo", ... */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-15 23:46:42 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_DEVICE_PROFILE_DESCRIPTION     "device.profile.description" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For modules: the author's name, formatted as UTF-8 string. e.g. "Lennart Poettering" */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-19 22:02:28 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_MODULE_AUTHOR                  "module.author" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For modules: a human readable one-line description of the module's purpose formatted as UTF-8. e.g. "Frobnicate sounds with a flux compensator" */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-19 22:02:28 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_MODULE_DESCRIPTION             "module.description" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For modules: a human readable usage description of the module's arguments formatted as UTF-8. */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-19 22:02:28 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_MODULE_USAGE                   "module.usage" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** For modules: a version string for the module. e.g. "0.9.15" */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-19 22:02:28 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define PA_PROP_MODULE_VERSION                 "module.version" 
 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-04 17:14:59 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** A property list object. Basically a dictionary with ASCII strings
 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								 *  as  keys  and  arbitrary  data  as  values .  \ since  0.9 .11  */ 
							 
						 
					
						
							
								
									
										
										
										
											2007-12-23 20:12:37 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								typedef  struct  pa_proplist  pa_proplist ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** Allocate a property list. \since 0.9.11 */ 
							 
						 
					
						
							
								
									
										
										
										
											2007-12-23 20:12:37 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								pa_proplist *  pa_proplist_new ( void ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** Free the property list. \since 0.9.11 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								void  pa_proplist_free ( pa_proplist *  p ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2007-12-23 20:12:37 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** Append a new string entry to the property list, possibly
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  overwriting  an  already  existing  entry  with  the  same  key .  An 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  internal  copy  of  the  data  passed  is  made .  Will  accept  only  valid 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  UTF - 8.  \ since  0.9 .11  */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								int  pa_proplist_sets ( pa_proplist  * p ,  const  char  * key ,  const  char  * value ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-05-25 23:50:18 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** Append a new string entry to the property list, possibly
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  overwriting  an  already  existing  entry  with  the  same  key .  An 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  internal  copy  of  the  data  passed  is  made .  Will  accept  only  valid 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  UTF - 8.  The  string  passed  in  must  contain  a  ' = ' .  Left  hand  side  of 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  the  ' = '  is  used  as  key  name ,  the  right  hand  side  as  string 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  data .  \ since  0.9 .16  */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								int  pa_proplist_setp ( pa_proplist  * p ,  const  char  * pair ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** Append a new string entry to the property list, possibly
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  overwriting  an  already  existing  entry  with  the  same  key .  An 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  internal  copy  of  the  data  passed  is  made .  Will  accept  only  valid 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  UTF - 8.  The  data  can  be  passed  as  printf ( ) - style  format  string  with 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  arguments .  \ since  0.9 .11  */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								int  pa_proplist_setf ( pa_proplist  * p ,  const  char  * key ,  const  char  * format ,  . . . )  PA_GCC_PRINTF_ATTR ( 3 , 4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** Append a new arbitrary data entry to the property list, possibly
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  overwriting  an  already  existing  entry  with  the  same  key .  An 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  internal  copy  of  the  data  passed  is  made .  \ since  0.9 .11  */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								int  pa_proplist_set ( pa_proplist  * p ,  const  char  * key ,  const  void  * data ,  size_t  nbytes ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-27 02:37:13 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** Return a string entry for the specified key. Will return NULL if
 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								 *  the  data  is  not  valid  UTF - 8.  Will  return  a  NUL - terminated  string  in 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  an  internally  allocated  buffer .  The  caller  should  make  a  copy  of 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  the  data  before  accessing  the  property  list  again .  \ since  0.9 .11  */ 
							 
						 
					
						
							
								
									
										
										
										
											2007-12-23 20:12:37 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								const  char  * pa_proplist_gets ( pa_proplist  * p ,  const  char  * key ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** Return the the value for the specified key. Will return a
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  NUL - terminated  string  for  string  entries .  The  pointer  returned  will 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  point  to  an  internally  allocated  buffer .  The  caller  should  make  a 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  copy  of  the  data  before  the  property  list  is  accessed  again .  \ since 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  0.9 .11  */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								int  pa_proplist_get ( pa_proplist  * p ,  const  char  * key ,  const  void  * * data ,  size_t  * nbytes ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2007-12-23 20:12:37 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** Update mode enum for pa_proplist_update(). \since 0.9.11 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								typedef  enum  pa_update_mode  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    PA_UPDATE_SET 
							 
						 
					
						
							
								
									
										
										
										
											2009-04-01 12:35:44 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    /**< Replace the entire property list with the new one. Don't keep
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								     *   any  of  the  old  data  around  */ , 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-03 18:51:46 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    PA_UPDATE_MERGE 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    /**< Merge new property list into the existing one, not replacing
 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-03 18:51:46 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								     *   any  old  entries  if  they  share  a  common  key  with  the  new 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								     *   property  list .  */ , 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-03 18:51:46 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    PA_UPDATE_REPLACE 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-13 23:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    /**< Merge new property list into the existing one, replacing all
 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-03 18:51:46 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								     *   old  entries  that  share  a  common  key  with  the  new  property 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *   list .  */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								}  pa_update_mode_t ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-06 02:01:17 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** \cond fulldocs */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define PA_UPDATE_SET PA_UPDATE_SET 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define PA_UPDATE_MERGE PA_UPDATE_MERGE 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define PA_UPDATE_REPLACE PA_UPDATE_REPLACE 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** \endcond */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** Merge property list "other" into "p", adhering the merge mode as
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  specified  in  " mode " .  \ since  0.9 .11  */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								void  pa_proplist_update ( pa_proplist  * p ,  pa_update_mode_t  mode ,  pa_proplist  * other ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** Removes a single entry from the property list, identified be the
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  specified  key  name .  \ since  0.9 .11  */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								int  pa_proplist_unset ( pa_proplist  * p ,  const  char  * key ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** Similar to pa_proplist_remove() but takes an array of keys to
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  remove .  The  array  should  be  terminated  by  a  NULL  pointer .  Return  - 1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  on  failure ,  otherwise  the  number  of  entries  actually  removed  ( which 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  might  even  be  0 ,  if  there  where  no  matching  entries  to 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  remove ) .  \ since  0.9 .11  */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								int  pa_proplist_unset_many ( pa_proplist  * p ,  const  char  *  const  keys [ ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** Iterate through the property list. The user should allocate a
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  state  variable  of  type  void *  and  initialize  it  with  NULL .  A  pointer 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  to  this  variable  should  then  be  passed  to  pa_proplist_iterate ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  which  should  be  called  in  a  loop  until  it  returns  NULL  which 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  signifies  EOL .  The  property  list  should  not  be  modified  during 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-29 15:17:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								 *  iteration  through  the  list  - -  except  for  deleting  the  current 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  looked  at  entry .  On  each  invication  this  function  will  return  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  key  string  for  the  next  entry .  The  keys  in  the  property  list  do  not 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  have  any  particular  order .  \ since  0.9 .11  */ 
							 
						 
					
						
							
								
									
										
										
										
											2007-12-23 20:12:37 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								const  char  * pa_proplist_iterate ( pa_proplist  * p ,  void  * * state ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-17 01:59:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** Format the property list nicely as a human readable string. This
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  works  very  much  like  pa_proplist_to_string_sep ( )  and  uses  a  newline 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  as  seperator  and  appends  one  final  one .  Call  pa_xfree ( )  on  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  result .  \ since  0.9 .11  */ 
							 
						 
					
						
							
								
									
										
										
										
											2007-12-23 20:12:37 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								char  * pa_proplist_to_string ( pa_proplist  * p ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-17 01:59:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** Format the property list nicely as a human readable string and
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  choose  the  seperator .  Call  pa_xfree ( )  on  the  result .  \ since 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 00:05:54 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								 *  0.9 .15  */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-17 01:59:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								char  * pa_proplist_to_string_sep ( pa_proplist  * p ,  const  char  * sep ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** Allocate a new property list and assign key/value from a human
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  readable  string .  \ since  0.9 .15  */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-10-27 21:14:50 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								pa_proplist  * pa_proplist_from_string ( const  char  * str ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  /** Returns 1 if an entry for the specified key is existant in the
 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								 *  property  list .  \ since  0.9 .11  */ 
							 
						 
					
						
							
								
									
										
										
										
											2007-12-29 18:03:53 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								int  pa_proplist_contains ( pa_proplist  * p ,  const  char  * key ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** Remove all entries from the property list object. \since 0.9.11 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								void  pa_proplist_clear ( pa_proplist  * p ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** Allocate a new property list and copy over every single entry from
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  the  specific  list .  \ since  0.9 .11  */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								pa_proplist *  pa_proplist_copy ( pa_proplist  * t ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 00:06:26 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** Return the number of entries on the property list. \since 0.9.15 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								unsigned  pa_proplist_size ( pa_proplist  * t ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/** Returns 0 when the proplist is empty, positive otherwise \since 0.9.15 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								int  pa_proplist_isempty ( pa_proplist  * t ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-09 07:59:06 +03:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/** Return non-zero when a and b have the same keys and values. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								int  pa_proplist_equal ( pa_proplist  * a ,  pa_proplist  * b ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-05-15 23:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								PA_C_DECL_END 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2007-12-23 20:12:37 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								# endif