PulseAudio 1.1
|
00001 #ifndef foopulseproplisthfoo 00002 #define foopulseproplisthfoo 00003 00004 /*** 00005 This file is part of PulseAudio. 00006 00007 Copyright 2007 Lennart Poettering 00008 00009 PulseAudio is free software; you can redistribute it and/or modify 00010 it under the terms of the GNU Lesser General Public License as 00011 published by the Free Software Foundation; either version 2.1 of the 00012 License, or (at your option) any later version. 00013 00014 PulseAudio is distributed in the hope that it will be useful, but 00015 WITHOUT ANY WARRANTY; without even the implied warranty of 00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00017 Lesser General Public License for more details. 00018 00019 You should have received a copy of the GNU Lesser General Public 00020 License along with PulseAudio; if not, write to the Free Software 00021 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 00022 USA. 00023 ***/ 00024 00025 #include <sys/types.h> 00026 00027 #include <pulse/cdecl.h> 00028 #include <pulse/gccmacro.h> 00029 #include <pulse/version.h> 00030 00031 PA_C_DECL_BEGIN 00032 00034 #define PA_PROP_MEDIA_NAME "media.name" 00035 00037 #define PA_PROP_MEDIA_TITLE "media.title" 00038 00040 #define PA_PROP_MEDIA_ARTIST "media.artist" 00041 00043 #define PA_PROP_MEDIA_COPYRIGHT "media.copyright" 00044 00046 #define PA_PROP_MEDIA_SOFTWARE "media.software" 00047 00049 #define PA_PROP_MEDIA_LANGUAGE "media.language" 00050 00052 #define PA_PROP_MEDIA_FILENAME "media.filename" 00053 00056 #define PA_PROP_MEDIA_ICON "media.icon" 00057 00060 #define PA_PROP_MEDIA_ICON_NAME "media.icon_name" 00061 00063 #define PA_PROP_MEDIA_ROLE "media.role" 00064 00066 #define PA_PROP_FILTER_WANT "filter.want" 00067 00069 #define PA_PROP_FILTER_APPLY "filter.apply" 00070 00072 #define PA_PROP_FILTER_SUPPRESS "filter.suppress" 00073 00075 #define PA_PROP_EVENT_ID "event.id" 00076 00078 #define PA_PROP_EVENT_DESCRIPTION "event.description" 00079 00081 #define PA_PROP_EVENT_MOUSE_X "event.mouse.x" 00082 00084 #define PA_PROP_EVENT_MOUSE_Y "event.mouse.y" 00085 00087 #define PA_PROP_EVENT_MOUSE_HPOS "event.mouse.hpos" 00088 00090 #define PA_PROP_EVENT_MOUSE_VPOS "event.mouse.vpos" 00091 00093 #define PA_PROP_EVENT_MOUSE_BUTTON "event.mouse.button" 00094 00096 #define PA_PROP_WINDOW_NAME "window.name" 00097 00099 #define PA_PROP_WINDOW_ID "window.id" 00100 00103 #define PA_PROP_WINDOW_ICON "window.icon" 00104 00107 #define PA_PROP_WINDOW_ICON_NAME "window.icon_name" 00108 00110 #define PA_PROP_WINDOW_X "window.x" 00111 00113 #define PA_PROP_WINDOW_Y "window.y" 00114 00116 #define PA_PROP_WINDOW_WIDTH "window.width" 00117 00119 #define PA_PROP_WINDOW_HEIGHT "window.height" 00120 00122 #define PA_PROP_WINDOW_HPOS "window.hpos" 00123 00125 #define PA_PROP_WINDOW_VPOS "window.vpos" 00126 00128 #define PA_PROP_WINDOW_DESKTOP "window.desktop" 00129 00131 #define PA_PROP_WINDOW_X11_DISPLAY "window.x11.display" 00132 00134 #define PA_PROP_WINDOW_X11_SCREEN "window.x11.screen" 00135 00137 #define PA_PROP_WINDOW_X11_MONITOR "window.x11.monitor" 00138 00140 #define PA_PROP_WINDOW_X11_XID "window.x11.xid" 00141 00143 #define PA_PROP_APPLICATION_NAME "application.name" 00144 00146 #define PA_PROP_APPLICATION_ID "application.id" 00147 00149 #define PA_PROP_APPLICATION_VERSION "application.version" 00150 00153 #define PA_PROP_APPLICATION_ICON "application.icon" 00154 00157 #define PA_PROP_APPLICATION_ICON_NAME "application.icon_name" 00158 00160 #define PA_PROP_APPLICATION_LANGUAGE "application.language" 00161 00163 #define PA_PROP_APPLICATION_PROCESS_ID "application.process.id" 00164 00166 #define PA_PROP_APPLICATION_PROCESS_BINARY "application.process.binary" 00167 00169 #define PA_PROP_APPLICATION_PROCESS_USER "application.process.user" 00170 00172 #define PA_PROP_APPLICATION_PROCESS_HOST "application.process.host" 00173 00175 #define PA_PROP_APPLICATION_PROCESS_MACHINE_ID "application.process.machine_id" 00176 00178 #define PA_PROP_APPLICATION_PROCESS_SESSION_ID "application.process.session_id" 00179 00181 #define PA_PROP_DEVICE_STRING "device.string" 00182 00184 #define PA_PROP_DEVICE_API "device.api" 00185 00187 #define PA_PROP_DEVICE_DESCRIPTION "device.description" 00188 00190 #define PA_PROP_DEVICE_BUS_PATH "device.bus_path" 00191 00193 #define PA_PROP_DEVICE_SERIAL "device.serial" 00194 00196 #define PA_PROP_DEVICE_VENDOR_ID "device.vendor.id" 00197 00199 #define PA_PROP_DEVICE_VENDOR_NAME "device.vendor.name" 00200 00202 #define PA_PROP_DEVICE_PRODUCT_ID "device.product.id" 00203 00205 #define PA_PROP_DEVICE_PRODUCT_NAME "device.product.name" 00206 00208 #define PA_PROP_DEVICE_CLASS "device.class" 00209 00211 #define PA_PROP_DEVICE_FORM_FACTOR "device.form_factor" 00212 00214 #define PA_PROP_DEVICE_BUS "device.bus" 00215 00218 #define PA_PROP_DEVICE_ICON "device.icon" 00219 00222 #define PA_PROP_DEVICE_ICON_NAME "device.icon_name" 00223 00225 #define PA_PROP_DEVICE_ACCESS_MODE "device.access_mode" 00226 00228 #define PA_PROP_DEVICE_MASTER_DEVICE "device.master_device" 00229 00231 #define PA_PROP_DEVICE_BUFFERING_BUFFER_SIZE "device.buffering.buffer_size" 00232 00234 #define PA_PROP_DEVICE_BUFFERING_FRAGMENT_SIZE "device.buffering.fragment_size" 00235 00237 #define PA_PROP_DEVICE_PROFILE_NAME "device.profile.name" 00238 00240 #define PA_PROP_DEVICE_INTENDED_ROLES "device.intended_roles" 00241 00243 #define PA_PROP_DEVICE_PROFILE_DESCRIPTION "device.profile.description" 00244 00246 #define PA_PROP_MODULE_AUTHOR "module.author" 00247 00249 #define PA_PROP_MODULE_DESCRIPTION "module.description" 00250 00252 #define PA_PROP_MODULE_USAGE "module.usage" 00253 00255 #define PA_PROP_MODULE_VERSION "module.version" 00256 00258 #define PA_PROP_FORMAT_SAMPLE_FORMAT "format.sample_format" 00259 00261 #define PA_PROP_FORMAT_RATE "format.rate" 00262 00264 #define PA_PROP_FORMAT_CHANNELS "format.channels" 00265 00267 #define PA_PROP_FORMAT_CHANNEL_MAP "format.channel_map" 00268 00271 typedef struct pa_proplist pa_proplist; 00272 00274 pa_proplist* pa_proplist_new(void); 00275 00277 void pa_proplist_free(pa_proplist* p); 00278 00283 int pa_proplist_sets(pa_proplist *p, const char *key, const char *value); 00284 00291 int pa_proplist_setp(pa_proplist *p, const char *pair); 00292 00298 int pa_proplist_setf(pa_proplist *p, const char *key, const char *format, ...) PA_GCC_PRINTF_ATTR(3,4); 00299 00303 int pa_proplist_set(pa_proplist *p, const char *key, const void *data, size_t nbytes); 00304 00309 const char *pa_proplist_gets(pa_proplist *p, const char *key); 00310 00316 int pa_proplist_get(pa_proplist *p, const char *key, const void **data, size_t *nbytes); 00317 00319 typedef enum pa_update_mode { 00320 PA_UPDATE_SET, 00323 00324 PA_UPDATE_MERGE, 00328 00329 PA_UPDATE_REPLACE 00333 } pa_update_mode_t; 00334 00336 #define PA_UPDATE_SET PA_UPDATE_SET 00337 #define PA_UPDATE_MERGE PA_UPDATE_MERGE 00338 #define PA_UPDATE_REPLACE PA_UPDATE_REPLACE 00339 00343 void pa_proplist_update(pa_proplist *p, pa_update_mode_t mode, pa_proplist *other); 00344 00347 int pa_proplist_unset(pa_proplist *p, const char *key); 00348 00354 int pa_proplist_unset_many(pa_proplist *p, const char * const keys[]); 00355 00365 const char *pa_proplist_iterate(pa_proplist *p, void **state); 00366 00371 char *pa_proplist_to_string(pa_proplist *p); 00372 00376 char *pa_proplist_to_string_sep(pa_proplist *p, const char *sep); 00377 00380 pa_proplist *pa_proplist_from_string(const char *str); 00381 00384 int pa_proplist_contains(pa_proplist *p, const char *key); 00385 00387 void pa_proplist_clear(pa_proplist *p); 00388 00391 pa_proplist* pa_proplist_copy(pa_proplist *t); 00392 00394 unsigned pa_proplist_size(pa_proplist *t); 00395 00397 int pa_proplist_isempty(pa_proplist *t); 00398 00401 int pa_proplist_equal(pa_proplist *a, pa_proplist *b); 00402 00403 PA_C_DECL_END 00404 00405 #endif