|
PulseAudio
9.0
|
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, see <http://www.gnu.org/licenses/>. 00022 ***/ 00023 00024 #include <inttypes.h> 00025 00026 #include <pulse/operation.h> 00027 #include <pulse/context.h> 00028 #include <pulse/cdecl.h> 00029 #include <pulse/gccmacro.h> 00030 #include <pulse/channelmap.h> 00031 #include <pulse/volume.h> 00032 #include <pulse/proplist.h> 00033 #include <pulse/format.h> 00034 #include <pulse/version.h> 00035 00220 PA_C_DECL_BEGIN 00221 00227 typedef struct pa_sink_port_info { 00228 const char *name; 00229 const char *description; 00230 uint32_t priority; 00231 int available; 00232 } pa_sink_port_info; 00233 00237 typedef struct pa_sink_info { 00238 const char *name; 00239 uint32_t index; 00240 const char *description; 00241 pa_sample_spec sample_spec; 00242 pa_channel_map channel_map; 00243 uint32_t owner_module; 00244 pa_cvolume volume; 00245 int mute; 00246 uint32_t monitor_source; 00247 const char *monitor_source_name; 00248 pa_usec_t latency; 00249 const char *driver; 00250 pa_sink_flags_t flags; 00251 pa_proplist *proplist; 00252 pa_usec_t configured_latency; 00253 pa_volume_t base_volume; 00254 pa_sink_state_t state; 00255 uint32_t n_volume_steps; 00256 uint32_t card; 00257 uint32_t n_ports; 00258 pa_sink_port_info** ports; 00259 pa_sink_port_info* active_port; 00260 uint8_t n_formats; 00261 pa_format_info **formats; 00262 } pa_sink_info; 00263 00265 typedef void (*pa_sink_info_cb_t)(pa_context *c, const pa_sink_info *i, int eol, void *userdata); 00266 00268 pa_operation* pa_context_get_sink_info_by_name(pa_context *c, const char *name, pa_sink_info_cb_t cb, void *userdata); 00269 00271 pa_operation* pa_context_get_sink_info_by_index(pa_context *c, uint32_t idx, pa_sink_info_cb_t cb, void *userdata); 00272 00274 pa_operation* pa_context_get_sink_info_list(pa_context *c, pa_sink_info_cb_t cb, void *userdata); 00275 00277 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); 00278 00280 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); 00281 00283 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); 00284 00286 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); 00287 00289 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); 00290 00292 pa_operation* pa_context_suspend_sink_by_index(pa_context *c, uint32_t idx, int suspend, pa_context_success_cb_t cb, void* userdata); 00293 00295 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); 00296 00298 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); 00299 00307 typedef struct pa_source_port_info { 00308 const char *name; 00309 const char *description; 00310 uint32_t priority; 00311 int available; 00312 } pa_source_port_info; 00313 00317 typedef struct pa_source_info { 00318 const char *name; 00319 uint32_t index; 00320 const char *description; 00321 pa_sample_spec sample_spec; 00322 pa_channel_map channel_map; 00323 uint32_t owner_module; 00324 pa_cvolume volume; 00325 int mute; 00326 uint32_t monitor_of_sink; 00327 const char *monitor_of_sink_name; 00328 pa_usec_t latency; 00329 const char *driver; 00330 pa_source_flags_t flags; 00331 pa_proplist *proplist; 00332 pa_usec_t configured_latency; 00333 pa_volume_t base_volume; 00334 pa_source_state_t state; 00335 uint32_t n_volume_steps; 00336 uint32_t card; 00337 uint32_t n_ports; 00338 pa_source_port_info** ports; 00339 pa_source_port_info* active_port; 00340 uint8_t n_formats; 00341 pa_format_info **formats; 00342 } pa_source_info; 00343 00345 typedef void (*pa_source_info_cb_t)(pa_context *c, const pa_source_info *i, int eol, void *userdata); 00346 00348 pa_operation* pa_context_get_source_info_by_name(pa_context *c, const char *name, pa_source_info_cb_t cb, void *userdata); 00349 00351 pa_operation* pa_context_get_source_info_by_index(pa_context *c, uint32_t idx, pa_source_info_cb_t cb, void *userdata); 00352 00354 pa_operation* pa_context_get_source_info_list(pa_context *c, pa_source_info_cb_t cb, void *userdata); 00355 00357 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); 00358 00360 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); 00361 00363 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); 00364 00366 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); 00367 00369 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); 00370 00372 pa_operation* pa_context_suspend_source_by_index(pa_context *c, uint32_t idx, int suspend, pa_context_success_cb_t cb, void* userdata); 00373 00375 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); 00376 00378 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); 00379 00387 typedef struct pa_server_info { 00388 const char *user_name; 00389 const char *host_name; 00390 const char *server_version; 00391 const char *server_name; 00392 pa_sample_spec sample_spec; 00393 const char *default_sink_name; 00394 const char *default_source_name; 00395 uint32_t cookie; 00396 pa_channel_map channel_map; 00397 } pa_server_info; 00398 00400 typedef void (*pa_server_info_cb_t) (pa_context *c, const pa_server_info*i, void *userdata); 00401 00403 pa_operation* pa_context_get_server_info(pa_context *c, pa_server_info_cb_t cb, void *userdata); 00404 00412 typedef struct pa_module_info { 00413 uint32_t index; 00414 const char*name, 00415 *argument; 00416 uint32_t n_used; 00418 int auto_unload; 00420 pa_proplist *proplist; 00421 } pa_module_info; 00422 00424 typedef void (*pa_module_info_cb_t) (pa_context *c, const pa_module_info*i, int eol, void *userdata); 00425 00427 pa_operation* pa_context_get_module_info(pa_context *c, uint32_t idx, pa_module_info_cb_t cb, void *userdata); 00428 00430 pa_operation* pa_context_get_module_info_list(pa_context *c, pa_module_info_cb_t cb, void *userdata); 00431 00433 typedef void (*pa_context_index_cb_t)(pa_context *c, uint32_t idx, void *userdata); 00434 00436 pa_operation* pa_context_load_module(pa_context *c, const char*name, const char *argument, pa_context_index_cb_t cb, void *userdata); 00437 00439 pa_operation* pa_context_unload_module(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata); 00440 00448 typedef struct pa_client_info { 00449 uint32_t index; 00450 const char *name; 00451 uint32_t owner_module; 00452 const char *driver; 00453 pa_proplist *proplist; 00454 } pa_client_info; 00455 00457 typedef void (*pa_client_info_cb_t) (pa_context *c, const pa_client_info*i, int eol, void *userdata); 00458 00460 pa_operation* pa_context_get_client_info(pa_context *c, uint32_t idx, pa_client_info_cb_t cb, void *userdata); 00461 00463 pa_operation* pa_context_get_client_info_list(pa_context *c, pa_client_info_cb_t cb, void *userdata); 00464 00466 pa_operation* pa_context_kill_client(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata); 00467 00473 typedef struct pa_card_profile_info { 00474 const char *name; 00475 const char *description; 00476 uint32_t n_sinks; 00477 uint32_t n_sources; 00478 uint32_t priority; 00479 } pa_card_profile_info; 00480 00484 typedef struct pa_card_profile_info2 { 00485 const char *name; 00486 const char *description; 00487 uint32_t n_sinks; 00488 uint32_t n_sources; 00489 uint32_t priority; 00490 int available; 00496 } pa_card_profile_info2; 00497 00501 typedef struct pa_card_port_info { 00502 const char *name; 00503 const char *description; 00504 uint32_t priority; 00505 int available; 00506 int direction; 00507 uint32_t n_profiles; 00508 pa_card_profile_info** profiles; 00509 pa_proplist *proplist; 00510 int64_t latency_offset; 00511 pa_card_profile_info2** profiles2; 00512 } pa_card_port_info; 00513 00517 typedef struct pa_card_info { 00518 uint32_t index; 00519 const char *name; 00520 uint32_t owner_module; 00521 const char *driver; 00522 uint32_t n_profiles; 00523 pa_card_profile_info* profiles; 00524 pa_card_profile_info* active_profile; 00525 pa_proplist *proplist; 00526 uint32_t n_ports; 00527 pa_card_port_info **ports; 00528 pa_card_profile_info2** profiles2; 00529 pa_card_profile_info2* active_profile2; 00530 } pa_card_info; 00531 00533 typedef void (*pa_card_info_cb_t) (pa_context *c, const pa_card_info*i, int eol, void *userdata); 00534 00536 pa_operation* pa_context_get_card_info_by_index(pa_context *c, uint32_t idx, pa_card_info_cb_t cb, void *userdata); 00537 00539 pa_operation* pa_context_get_card_info_by_name(pa_context *c, const char *name, pa_card_info_cb_t cb, void *userdata); 00540 00542 pa_operation* pa_context_get_card_info_list(pa_context *c, pa_card_info_cb_t cb, void *userdata); 00543 00545 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); 00546 00548 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); 00549 00551 pa_operation* pa_context_set_port_latency_offset(pa_context *c, const char *card_name, const char *port_name, int64_t offset, pa_context_success_cb_t cb, void *userdata); 00552 00560 typedef struct pa_sink_input_info { 00561 uint32_t index; 00562 const char *name; 00563 uint32_t owner_module; 00564 uint32_t client; 00565 uint32_t sink; 00566 pa_sample_spec sample_spec; 00567 pa_channel_map channel_map; 00568 pa_cvolume volume; 00569 pa_usec_t buffer_usec; 00570 pa_usec_t sink_usec; 00571 const char *resample_method; 00572 const char *driver; 00573 int mute; 00574 pa_proplist *proplist; 00575 int corked; 00576 int has_volume; 00577 int volume_writable; 00578 pa_format_info *format; 00579 } pa_sink_input_info; 00580 00582 typedef void (*pa_sink_input_info_cb_t) (pa_context *c, const pa_sink_input_info *i, int eol, void *userdata); 00583 00585 pa_operation* pa_context_get_sink_input_info(pa_context *c, uint32_t idx, pa_sink_input_info_cb_t cb, void *userdata); 00586 00588 pa_operation* pa_context_get_sink_input_info_list(pa_context *c, pa_sink_input_info_cb_t cb, void *userdata); 00589 00591 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); 00592 00594 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); 00595 00597 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); 00598 00600 pa_operation* pa_context_set_sink_input_mute(pa_context *c, uint32_t idx, int mute, pa_context_success_cb_t cb, void *userdata); 00601 00603 pa_operation* pa_context_kill_sink_input(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata); 00604 00612 typedef struct pa_source_output_info { 00613 uint32_t index; 00614 const char *name; 00615 uint32_t owner_module; 00616 uint32_t client; 00617 uint32_t source; 00618 pa_sample_spec sample_spec; 00619 pa_channel_map channel_map; 00620 pa_usec_t buffer_usec; 00621 pa_usec_t source_usec; 00622 const char *resample_method; 00623 const char *driver; 00624 pa_proplist *proplist; 00625 int corked; 00626 pa_cvolume volume; 00627 int mute; 00628 int has_volume; 00629 int volume_writable; 00630 pa_format_info *format; 00631 } pa_source_output_info; 00632 00634 typedef void (*pa_source_output_info_cb_t) (pa_context *c, const pa_source_output_info *i, int eol, void *userdata); 00635 00637 pa_operation* pa_context_get_source_output_info(pa_context *c, uint32_t idx, pa_source_output_info_cb_t cb, void *userdata); 00638 00640 pa_operation* pa_context_get_source_output_info_list(pa_context *c, pa_source_output_info_cb_t cb, void *userdata); 00641 00643 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); 00644 00646 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); 00647 00649 pa_operation* pa_context_set_source_output_volume(pa_context *c, uint32_t idx, const pa_cvolume *volume, pa_context_success_cb_t cb, void *userdata); 00650 00652 pa_operation* pa_context_set_source_output_mute(pa_context *c, uint32_t idx, int mute, pa_context_success_cb_t cb, void *userdata); 00653 00655 pa_operation* pa_context_kill_source_output(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata); 00656 00664 typedef struct pa_stat_info { 00665 uint32_t memblock_total; 00666 uint32_t memblock_total_size; 00667 uint32_t memblock_allocated; 00668 uint32_t memblock_allocated_size; 00669 uint32_t scache_size; 00670 } pa_stat_info; 00671 00673 typedef void (*pa_stat_info_cb_t) (pa_context *c, const pa_stat_info *i, void *userdata); 00674 00676 pa_operation* pa_context_stat(pa_context *c, pa_stat_info_cb_t cb, void *userdata); 00677 00685 typedef struct pa_sample_info { 00686 uint32_t index; 00687 const char *name; 00688 pa_cvolume volume; 00689 pa_sample_spec sample_spec; 00690 pa_channel_map channel_map; 00691 pa_usec_t duration; 00692 uint32_t bytes; 00693 int lazy; 00694 const char *filename; 00695 pa_proplist *proplist; 00696 } pa_sample_info; 00697 00699 typedef void (*pa_sample_info_cb_t)(pa_context *c, const pa_sample_info *i, int eol, void *userdata); 00700 00702 pa_operation* pa_context_get_sample_info_by_name(pa_context *c, const char *name, pa_sample_info_cb_t cb, void *userdata); 00703 00705 pa_operation* pa_context_get_sample_info_by_index(pa_context *c, uint32_t idx, pa_sample_info_cb_t cb, void *userdata); 00706 00708 pa_operation* pa_context_get_sample_info_list(pa_context *c, pa_sample_info_cb_t cb, void *userdata); 00709 00717 typedef enum pa_autoload_type { 00718 PA_AUTOLOAD_SINK = 0, 00719 PA_AUTOLOAD_SOURCE = 1 00720 } pa_autoload_type_t; 00721 00725 typedef struct pa_autoload_info { 00726 uint32_t index; 00727 const char *name; 00728 pa_autoload_type_t type; 00729 const char *module; 00730 const char *argument; 00731 } pa_autoload_info; 00732 00734 typedef void (*pa_autoload_info_cb_t)(pa_context *c, const pa_autoload_info *i, int eol, void *userdata); 00735 00737 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; 00738 00740 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; 00741 00743 pa_operation* pa_context_get_autoload_info_list(pa_context *c, pa_autoload_info_cb_t cb, void *userdata) PA_GCC_DEPRECATED; 00744 00746 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; 00747 00749 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; 00750 00752 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; 00753 00758 PA_C_DECL_END 00759 00760 #endif