PulseAudio 0.9.22-1bP
|
00001 #ifndef foointrospecthfoo 00002 #define foointrospecthfoo 00003 00004 /*** 00005 This file is part of PulseAudio. 00006 00007 Copyright 2004-2006 Lennart Poettering 00008 Copyright 2006 Pierre Ossman <ossman@cendio.se> for Cendio AB 00009 00010 PulseAudio is free software; you can redistribute it and/or modify 00011 it under the terms of the GNU Lesser General Public License as published 00012 by the Free Software Foundation; either version 2.1 of the License, 00013 or (at your option) any later version. 00014 00015 PulseAudio is distributed in the hope that it will be useful, but 00016 WITHOUT ANY WARRANTY; without even the implied warranty of 00017 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00018 General Public License for more details. 00019 00020 You should have received a copy of the GNU Lesser General Public License 00021 along with PulseAudio; if not, write to the Free Software 00022 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 00023 USA. 00024 ***/ 00025 00026 #include <inttypes.h> 00027 00028 #include <pulse/operation.h> 00029 #include <pulse/context.h> 00030 #include <pulse/cdecl.h> 00031 #include <pulse/gccmacro.h> 00032 #include <pulse/channelmap.h> 00033 #include <pulse/volume.h> 00034 #include <pulse/proplist.h> 00035 #include <pulse/version.h> 00036 00194 PA_C_DECL_BEGIN 00195 00201 typedef struct pa_sink_port_info { 00202 const char *name; 00203 const char *description; 00204 uint32_t priority; 00205 } pa_sink_port_info; 00206 00210 typedef struct pa_sink_info { 00211 const char *name; 00212 uint32_t index; 00213 const char *description; 00214 pa_sample_spec sample_spec; 00215 pa_channel_map channel_map; 00216 uint32_t owner_module; 00217 pa_cvolume volume; 00218 int mute; 00219 uint32_t monitor_source; 00220 const char *monitor_source_name; 00221 pa_usec_t latency; 00222 const char *driver; 00223 pa_sink_flags_t flags; 00224 pa_proplist *proplist; 00225 pa_usec_t configured_latency; 00226 pa_volume_t base_volume; 00227 pa_sink_state_t state; 00228 uint32_t n_volume_steps; 00229 uint32_t card; 00230 uint32_t n_ports; 00231 pa_sink_port_info** ports; 00232 pa_sink_port_info* active_port; 00233 } pa_sink_info; 00234 00236 typedef void (*pa_sink_info_cb_t)(pa_context *c, const pa_sink_info *i, int eol, void *userdata); 00237 00239 pa_operation* pa_context_get_sink_info_by_name(pa_context *c, const char *name, pa_sink_info_cb_t cb, void *userdata); 00240 00242 pa_operation* pa_context_get_sink_info_by_index(pa_context *c, uint32_t idx, pa_sink_info_cb_t cb, void *userdata); 00243 00245 pa_operation* pa_context_get_sink_info_list(pa_context *c, pa_sink_info_cb_t cb, void *userdata); 00246 00248 pa_operation* pa_context_set_sink_volume_by_index(pa_context *c, uint32_t idx, const pa_cvolume *volume, pa_context_success_cb_t cb, void *userdata); 00249 00251 pa_operation* pa_context_set_sink_volume_by_name(pa_context *c, const char *name, const pa_cvolume *volume, pa_context_success_cb_t cb, void *userdata); 00252 00254 pa_operation* pa_context_set_sink_mute_by_index(pa_context *c, uint32_t idx, int mute, pa_context_success_cb_t cb, void *userdata); 00255 00257 pa_operation* pa_context_set_sink_mute_by_name(pa_context *c, const char *name, int mute, pa_context_success_cb_t cb, void *userdata); 00258 00260 pa_operation* pa_context_suspend_sink_by_name(pa_context *c, const char *sink_name, int suspend, pa_context_success_cb_t cb, void* userdata); 00261 00263 pa_operation* pa_context_suspend_sink_by_index(pa_context *c, uint32_t idx, int suspend, pa_context_success_cb_t cb, void* userdata); 00264 00266 pa_operation* pa_context_set_sink_port_by_index(pa_context *c, uint32_t idx, const char*port, pa_context_success_cb_t cb, void *userdata); 00267 00269 pa_operation* pa_context_set_sink_port_by_name(pa_context *c, const char*name, const char*port, pa_context_success_cb_t cb, void *userdata); 00270 00278 typedef struct pa_source_port_info { 00279 const char *name; 00280 const char *description; 00281 uint32_t priority; 00282 } pa_source_port_info; 00283 00287 typedef struct pa_source_info { 00288 const char *name; 00289 uint32_t index; 00290 const char *description; 00291 pa_sample_spec sample_spec; 00292 pa_channel_map channel_map; 00293 uint32_t owner_module; 00294 pa_cvolume volume; 00295 int mute; 00296 uint32_t monitor_of_sink; 00297 const char *monitor_of_sink_name; 00298 pa_usec_t latency; 00299 const char *driver; 00300 pa_source_flags_t flags; 00301 pa_proplist *proplist; 00302 pa_usec_t configured_latency; 00303 pa_volume_t base_volume; 00304 pa_source_state_t state; 00305 uint32_t n_volume_steps; 00306 uint32_t card; 00307 uint32_t n_ports; 00308 pa_source_port_info** ports; 00309 pa_source_port_info* active_port; 00310 } pa_source_info; 00311 00313 typedef void (*pa_source_info_cb_t)(pa_context *c, const pa_source_info *i, int eol, void *userdata); 00314 00316 pa_operation* pa_context_get_source_info_by_name(pa_context *c, const char *name, pa_source_info_cb_t cb, void *userdata); 00317 00319 pa_operation* pa_context_get_source_info_by_index(pa_context *c, uint32_t idx, pa_source_info_cb_t cb, void *userdata); 00320 00322 pa_operation* pa_context_get_source_info_list(pa_context *c, pa_source_info_cb_t cb, void *userdata); 00323 00325 pa_operation* pa_context_set_source_volume_by_index(pa_context *c, uint32_t idx, const pa_cvolume *volume, pa_context_success_cb_t cb, void *userdata); 00326 00328 pa_operation* pa_context_set_source_volume_by_name(pa_context *c, const char *name, const pa_cvolume *volume, pa_context_success_cb_t cb, void *userdata); 00329 00331 pa_operation* pa_context_set_source_mute_by_index(pa_context *c, uint32_t idx, int mute, pa_context_success_cb_t cb, void *userdata); 00332 00334 pa_operation* pa_context_set_source_mute_by_name(pa_context *c, const char *name, int mute, pa_context_success_cb_t cb, void *userdata); 00335 00337 pa_operation* pa_context_suspend_source_by_name(pa_context *c, const char *source_name, int suspend, pa_context_success_cb_t cb, void* userdata); 00338 00340 pa_operation* pa_context_suspend_source_by_index(pa_context *c, uint32_t idx, int suspend, pa_context_success_cb_t cb, void* userdata); 00341 00343 pa_operation* pa_context_set_source_port_by_index(pa_context *c, uint32_t idx, const char*port, pa_context_success_cb_t cb, void *userdata); 00344 00346 pa_operation* pa_context_set_source_port_by_name(pa_context *c, const char*name, const char*port, pa_context_success_cb_t cb, void *userdata); 00347 00355 typedef struct pa_server_info { 00356 const char *user_name; 00357 const char *host_name; 00358 const char *server_version; 00359 const char *server_name; 00360 pa_sample_spec sample_spec; 00361 const char *default_sink_name; 00362 const char *default_source_name; 00363 uint32_t cookie; 00364 pa_channel_map channel_map; 00365 } pa_server_info; 00366 00368 typedef void (*pa_server_info_cb_t) (pa_context *c, const pa_server_info*i, void *userdata); 00369 00371 pa_operation* pa_context_get_server_info(pa_context *c, pa_server_info_cb_t cb, void *userdata); 00372 00380 typedef struct pa_module_info { 00381 uint32_t index; 00382 const char*name, 00383 *argument; 00384 uint32_t n_used; 00386 int auto_unload; 00388 pa_proplist *proplist; 00389 } pa_module_info; 00390 00392 typedef void (*pa_module_info_cb_t) (pa_context *c, const pa_module_info*i, int eol, void *userdata); 00393 00395 pa_operation* pa_context_get_module_info(pa_context *c, uint32_t idx, pa_module_info_cb_t cb, void *userdata); 00396 00398 pa_operation* pa_context_get_module_info_list(pa_context *c, pa_module_info_cb_t cb, void *userdata); 00399 00401 typedef void (*pa_context_index_cb_t)(pa_context *c, uint32_t idx, void *userdata); 00402 00404 pa_operation* pa_context_load_module(pa_context *c, const char*name, const char *argument, pa_context_index_cb_t cb, void *userdata); 00405 00407 pa_operation* pa_context_unload_module(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata); 00408 00416 typedef struct pa_client_info { 00417 uint32_t index; 00418 const char *name; 00419 uint32_t owner_module; 00420 const char *driver; 00421 pa_proplist *proplist; 00422 } pa_client_info; 00423 00425 typedef void (*pa_client_info_cb_t) (pa_context *c, const pa_client_info*i, int eol, void *userdata); 00426 00428 pa_operation* pa_context_get_client_info(pa_context *c, uint32_t idx, pa_client_info_cb_t cb, void *userdata); 00429 00431 pa_operation* pa_context_get_client_info_list(pa_context *c, pa_client_info_cb_t cb, void *userdata); 00432 00434 pa_operation* pa_context_kill_client(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata); 00435 00443 typedef struct pa_card_profile_info { 00444 const char *name; 00445 const char *description; 00446 uint32_t n_sinks; 00447 uint32_t n_sources; 00448 uint32_t priority; 00449 } pa_card_profile_info; 00450 00454 typedef struct pa_card_info { 00455 uint32_t index; 00456 const char *name; 00457 uint32_t owner_module; 00458 const char *driver; 00459 uint32_t n_profiles; 00460 pa_card_profile_info* profiles; 00461 pa_card_profile_info* active_profile; 00462 pa_proplist *proplist; 00463 } pa_card_info; 00464 00466 typedef void (*pa_card_info_cb_t) (pa_context *c, const pa_card_info*i, int eol, void *userdata); 00467 00469 pa_operation* pa_context_get_card_info_by_index(pa_context *c, uint32_t idx, pa_card_info_cb_t cb, void *userdata); 00470 00472 pa_operation* pa_context_get_card_info_by_name(pa_context *c, const char *name, pa_card_info_cb_t cb, void *userdata); 00473 00475 pa_operation* pa_context_get_card_info_list(pa_context *c, pa_card_info_cb_t cb, void *userdata); 00476 00478 pa_operation* pa_context_set_card_profile_by_index(pa_context *c, uint32_t idx, const char*profile, pa_context_success_cb_t cb, void *userdata); 00479 00481 pa_operation* pa_context_set_card_profile_by_name(pa_context *c, const char*name, const char*profile, pa_context_success_cb_t cb, void *userdata); 00482 00490 typedef struct pa_sink_input_info { 00491 uint32_t index; 00492 const char *name; 00493 uint32_t owner_module; 00494 uint32_t client; 00495 uint32_t sink; 00496 pa_sample_spec sample_spec; 00497 pa_channel_map channel_map; 00498 pa_cvolume volume; 00499 pa_usec_t buffer_usec; 00500 pa_usec_t sink_usec; 00501 const char *resample_method; 00502 const char *driver; 00503 int mute; 00504 pa_proplist *proplist; 00505 } pa_sink_input_info; 00506 00508 typedef void (*pa_sink_input_info_cb_t) (pa_context *c, const pa_sink_input_info *i, int eol, void *userdata); 00509 00511 pa_operation* pa_context_get_sink_input_info(pa_context *c, uint32_t idx, pa_sink_input_info_cb_t cb, void *userdata); 00512 00514 pa_operation* pa_context_get_sink_input_info_list(pa_context *c, pa_sink_input_info_cb_t cb, void *userdata); 00515 00517 pa_operation* pa_context_move_sink_input_by_name(pa_context *c, uint32_t idx, const char *sink_name, pa_context_success_cb_t cb, void* userdata); 00518 00520 pa_operation* pa_context_move_sink_input_by_index(pa_context *c, uint32_t idx, uint32_t sink_idx, pa_context_success_cb_t cb, void* userdata); 00521 00523 pa_operation* pa_context_set_sink_input_volume(pa_context *c, uint32_t idx, const pa_cvolume *volume, pa_context_success_cb_t cb, void *userdata); 00524 00526 pa_operation* pa_context_set_sink_input_mute(pa_context *c, uint32_t idx, int mute, pa_context_success_cb_t cb, void *userdata); 00527 00529 pa_operation* pa_context_kill_sink_input(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata); 00530 00538 typedef struct pa_source_output_info { 00539 uint32_t index; 00540 const char *name; 00541 uint32_t owner_module; 00542 uint32_t client; 00543 uint32_t source; 00544 pa_sample_spec sample_spec; 00545 pa_channel_map channel_map; 00546 pa_usec_t buffer_usec; 00547 pa_usec_t source_usec; 00548 const char *resample_method; 00549 const char *driver; 00550 pa_proplist *proplist; 00551 } pa_source_output_info; 00552 00554 typedef void (*pa_source_output_info_cb_t) (pa_context *c, const pa_source_output_info *i, int eol, void *userdata); 00555 00557 pa_operation* pa_context_get_source_output_info(pa_context *c, uint32_t idx, pa_source_output_info_cb_t cb, void *userdata); 00558 00560 pa_operation* pa_context_get_source_output_info_list(pa_context *c, pa_source_output_info_cb_t cb, void *userdata); 00561 00563 pa_operation* pa_context_move_source_output_by_name(pa_context *c, uint32_t idx, const char *source_name, pa_context_success_cb_t cb, void* userdata); 00564 00566 pa_operation* pa_context_move_source_output_by_index(pa_context *c, uint32_t idx, uint32_t source_idx, pa_context_success_cb_t cb, void* userdata); 00567 00569 pa_operation* pa_context_kill_source_output(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata); 00570 00578 typedef struct pa_stat_info { 00579 uint32_t memblock_total; 00580 uint32_t memblock_total_size; 00581 uint32_t memblock_allocated; 00582 uint32_t memblock_allocated_size; 00583 uint32_t scache_size; 00584 } pa_stat_info; 00585 00587 typedef void (*pa_stat_info_cb_t) (pa_context *c, const pa_stat_info *i, void *userdata); 00588 00590 pa_operation* pa_context_stat(pa_context *c, pa_stat_info_cb_t cb, void *userdata); 00591 00599 typedef struct pa_sample_info { 00600 uint32_t index; 00601 const char *name; 00602 pa_cvolume volume; 00603 pa_sample_spec sample_spec; 00604 pa_channel_map channel_map; 00605 pa_usec_t duration; 00606 uint32_t bytes; 00607 int lazy; 00608 const char *filename; 00609 pa_proplist *proplist; 00610 } pa_sample_info; 00611 00613 typedef void (*pa_sample_info_cb_t)(pa_context *c, const pa_sample_info *i, int eol, void *userdata); 00614 00616 pa_operation* pa_context_get_sample_info_by_name(pa_context *c, const char *name, pa_sample_info_cb_t cb, void *userdata); 00617 00619 pa_operation* pa_context_get_sample_info_by_index(pa_context *c, uint32_t idx, pa_sample_info_cb_t cb, void *userdata); 00620 00622 pa_operation* pa_context_get_sample_info_list(pa_context *c, pa_sample_info_cb_t cb, void *userdata); 00623 00631 typedef enum pa_autoload_type { 00632 PA_AUTOLOAD_SINK = 0, 00633 PA_AUTOLOAD_SOURCE = 1 00634 } pa_autoload_type_t; 00635 00639 typedef struct pa_autoload_info { 00640 uint32_t index; 00641 const char *name; 00642 pa_autoload_type_t type; 00643 const char *module; 00644 const char *argument; 00645 } pa_autoload_info; 00646 00648 typedef void (*pa_autoload_info_cb_t)(pa_context *c, const pa_autoload_info *i, int eol, void *userdata); 00649 00651 pa_operation* pa_context_get_autoload_info_by_name(pa_context *c, const char *name, pa_autoload_type_t type, pa_autoload_info_cb_t cb, void *userdata) PA_GCC_DEPRECATED; 00652 00654 pa_operation* pa_context_get_autoload_info_by_index(pa_context *c, uint32_t idx, pa_autoload_info_cb_t cb, void *userdata) PA_GCC_DEPRECATED; 00655 00657 pa_operation* pa_context_get_autoload_info_list(pa_context *c, pa_autoload_info_cb_t cb, void *userdata) PA_GCC_DEPRECATED; 00658 00660 pa_operation* pa_context_add_autoload(pa_context *c, const char *name, pa_autoload_type_t type, const char *module, const char*argument, pa_context_index_cb_t, void* userdata) PA_GCC_DEPRECATED; 00661 00663 pa_operation* pa_context_remove_autoload_by_name(pa_context *c, const char *name, pa_autoload_type_t type, pa_context_success_cb_t cb, void* userdata) PA_GCC_DEPRECATED; 00664 00666 pa_operation* pa_context_remove_autoload_by_index(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void* userdata) PA_GCC_DEPRECATED; 00667 00672 PA_C_DECL_END 00673 00674 #endif