PulseAudio
3.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, 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/format.h> 00036 #include <pulse/version.h> 00037 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 int available; 00206 } pa_sink_port_info; 00207 00211 typedef struct pa_sink_info { 00212 const char *name; 00213 uint32_t index; 00214 const char *description; 00215 pa_sample_spec sample_spec; 00216 pa_channel_map channel_map; 00217 uint32_t owner_module; 00218 pa_cvolume volume; 00219 int mute; 00220 uint32_t monitor_source; 00221 const char *monitor_source_name; 00222 pa_usec_t latency; 00223 const char *driver; 00224 pa_sink_flags_t flags; 00225 pa_proplist *proplist; 00226 pa_usec_t configured_latency; 00227 pa_volume_t base_volume; 00228 pa_sink_state_t state; 00229 uint32_t n_volume_steps; 00230 uint32_t card; 00231 uint32_t n_ports; 00232 pa_sink_port_info** ports; 00233 pa_sink_port_info* active_port; 00234 uint8_t n_formats; 00235 pa_format_info **formats; 00236 } pa_sink_info; 00237 00239 typedef void (*pa_sink_info_cb_t)(pa_context *c, const pa_sink_info *i, int eol, void *userdata); 00240 00242 pa_operation* pa_context_get_sink_info_by_name(pa_context *c, const char *name, pa_sink_info_cb_t cb, void *userdata); 00243 00245 pa_operation* pa_context_get_sink_info_by_index(pa_context *c, uint32_t idx, pa_sink_info_cb_t cb, void *userdata); 00246 00248 pa_operation* pa_context_get_sink_info_list(pa_context *c, pa_sink_info_cb_t cb, void *userdata); 00249 00251 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); 00252 00254 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); 00255 00257 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); 00258 00260 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); 00261 00263 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); 00264 00266 pa_operation* pa_context_suspend_sink_by_index(pa_context *c, uint32_t idx, int suspend, pa_context_success_cb_t cb, void* userdata); 00267 00269 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); 00270 00272 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); 00273 00281 typedef struct pa_source_port_info { 00282 const char *name; 00283 const char *description; 00284 uint32_t priority; 00285 int available; 00286 } pa_source_port_info; 00287 00291 typedef struct pa_source_info { 00292 const char *name; 00293 uint32_t index; 00294 const char *description; 00295 pa_sample_spec sample_spec; 00296 pa_channel_map channel_map; 00297 uint32_t owner_module; 00298 pa_cvolume volume; 00299 int mute; 00300 uint32_t monitor_of_sink; 00301 const char *monitor_of_sink_name; 00302 pa_usec_t latency; 00303 const char *driver; 00304 pa_source_flags_t flags; 00305 pa_proplist *proplist; 00306 pa_usec_t configured_latency; 00307 pa_volume_t base_volume; 00308 pa_source_state_t state; 00309 uint32_t n_volume_steps; 00310 uint32_t card; 00311 uint32_t n_ports; 00312 pa_source_port_info** ports; 00313 pa_source_port_info* active_port; 00314 uint8_t n_formats; 00315 pa_format_info **formats; 00316 } pa_source_info; 00317 00319 typedef void (*pa_source_info_cb_t)(pa_context *c, const pa_source_info *i, int eol, void *userdata); 00320 00322 pa_operation* pa_context_get_source_info_by_name(pa_context *c, const char *name, pa_source_info_cb_t cb, void *userdata); 00323 00325 pa_operation* pa_context_get_source_info_by_index(pa_context *c, uint32_t idx, pa_source_info_cb_t cb, void *userdata); 00326 00328 pa_operation* pa_context_get_source_info_list(pa_context *c, pa_source_info_cb_t cb, void *userdata); 00329 00331 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); 00332 00334 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); 00335 00337 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); 00338 00340 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); 00341 00343 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); 00344 00346 pa_operation* pa_context_suspend_source_by_index(pa_context *c, uint32_t idx, int suspend, pa_context_success_cb_t cb, void* userdata); 00347 00349 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); 00350 00352 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); 00353 00361 typedef struct pa_server_info { 00362 const char *user_name; 00363 const char *host_name; 00364 const char *server_version; 00365 const char *server_name; 00366 pa_sample_spec sample_spec; 00367 const char *default_sink_name; 00368 const char *default_source_name; 00369 uint32_t cookie; 00370 pa_channel_map channel_map; 00371 } pa_server_info; 00372 00374 typedef void (*pa_server_info_cb_t) (pa_context *c, const pa_server_info*i, void *userdata); 00375 00377 pa_operation* pa_context_get_server_info(pa_context *c, pa_server_info_cb_t cb, void *userdata); 00378 00386 typedef struct pa_module_info { 00387 uint32_t index; 00388 const char*name, 00389 *argument; 00390 uint32_t n_used; 00392 int auto_unload; 00394 pa_proplist *proplist; 00395 } pa_module_info; 00396 00398 typedef void (*pa_module_info_cb_t) (pa_context *c, const pa_module_info*i, int eol, void *userdata); 00399 00401 pa_operation* pa_context_get_module_info(pa_context *c, uint32_t idx, pa_module_info_cb_t cb, void *userdata); 00402 00404 pa_operation* pa_context_get_module_info_list(pa_context *c, pa_module_info_cb_t cb, void *userdata); 00405 00407 typedef void (*pa_context_index_cb_t)(pa_context *c, uint32_t idx, void *userdata); 00408 00410 pa_operation* pa_context_load_module(pa_context *c, const char*name, const char *argument, pa_context_index_cb_t cb, void *userdata); 00411 00413 pa_operation* pa_context_unload_module(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata); 00414 00422 typedef struct pa_client_info { 00423 uint32_t index; 00424 const char *name; 00425 uint32_t owner_module; 00426 const char *driver; 00427 pa_proplist *proplist; 00428 } pa_client_info; 00429 00431 typedef void (*pa_client_info_cb_t) (pa_context *c, const pa_client_info*i, int eol, void *userdata); 00432 00434 pa_operation* pa_context_get_client_info(pa_context *c, uint32_t idx, pa_client_info_cb_t cb, void *userdata); 00435 00437 pa_operation* pa_context_get_client_info_list(pa_context *c, pa_client_info_cb_t cb, void *userdata); 00438 00440 pa_operation* pa_context_kill_client(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata); 00441 00449 typedef struct pa_card_profile_info { 00450 const char *name; 00451 const char *description; 00452 uint32_t n_sinks; 00453 uint32_t n_sources; 00454 uint32_t priority; 00455 } pa_card_profile_info; 00456 00460 typedef struct pa_card_port_info { 00461 const char *name; 00462 const char *description; 00463 uint32_t priority; 00464 int available; 00465 int direction; 00466 uint32_t n_profiles; 00467 pa_card_profile_info** profiles; 00468 pa_proplist *proplist; 00469 int64_t latency_offset; 00470 } pa_card_port_info; 00471 00475 typedef struct pa_card_info { 00476 uint32_t index; 00477 const char *name; 00478 uint32_t owner_module; 00479 const char *driver; 00480 uint32_t n_profiles; 00481 pa_card_profile_info* profiles; 00482 pa_card_profile_info* active_profile; 00483 pa_proplist *proplist; 00484 uint32_t n_ports; 00485 pa_card_port_info **ports; 00486 } pa_card_info; 00487 00489 typedef void (*pa_card_info_cb_t) (pa_context *c, const pa_card_info*i, int eol, void *userdata); 00490 00492 pa_operation* pa_context_get_card_info_by_index(pa_context *c, uint32_t idx, pa_card_info_cb_t cb, void *userdata); 00493 00495 pa_operation* pa_context_get_card_info_by_name(pa_context *c, const char *name, pa_card_info_cb_t cb, void *userdata); 00496 00498 pa_operation* pa_context_get_card_info_list(pa_context *c, pa_card_info_cb_t cb, void *userdata); 00499 00501 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); 00502 00504 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); 00505 00507 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); 00508 00516 typedef struct pa_sink_input_info { 00517 uint32_t index; 00518 const char *name; 00519 uint32_t owner_module; 00520 uint32_t client; 00521 uint32_t sink; 00522 pa_sample_spec sample_spec; 00523 pa_channel_map channel_map; 00524 pa_cvolume volume; 00525 pa_usec_t buffer_usec; 00526 pa_usec_t sink_usec; 00527 const char *resample_method; 00528 const char *driver; 00529 int mute; 00530 pa_proplist *proplist; 00531 int corked; 00532 int has_volume; 00533 int volume_writable; 00534 pa_format_info *format; 00535 } pa_sink_input_info; 00536 00538 typedef void (*pa_sink_input_info_cb_t) (pa_context *c, const pa_sink_input_info *i, int eol, void *userdata); 00539 00541 pa_operation* pa_context_get_sink_input_info(pa_context *c, uint32_t idx, pa_sink_input_info_cb_t cb, void *userdata); 00542 00544 pa_operation* pa_context_get_sink_input_info_list(pa_context *c, pa_sink_input_info_cb_t cb, void *userdata); 00545 00547 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); 00548 00550 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); 00551 00553 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); 00554 00556 pa_operation* pa_context_set_sink_input_mute(pa_context *c, uint32_t idx, int mute, pa_context_success_cb_t cb, void *userdata); 00557 00559 pa_operation* pa_context_kill_sink_input(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata); 00560 00568 typedef struct pa_source_output_info { 00569 uint32_t index; 00570 const char *name; 00571 uint32_t owner_module; 00572 uint32_t client; 00573 uint32_t source; 00574 pa_sample_spec sample_spec; 00575 pa_channel_map channel_map; 00576 pa_usec_t buffer_usec; 00577 pa_usec_t source_usec; 00578 const char *resample_method; 00579 const char *driver; 00580 pa_proplist *proplist; 00581 int corked; 00582 pa_cvolume volume; 00583 int mute; 00584 int has_volume; 00585 int volume_writable; 00586 pa_format_info *format; 00587 } pa_source_output_info; 00588 00590 typedef void (*pa_source_output_info_cb_t) (pa_context *c, const pa_source_output_info *i, int eol, void *userdata); 00591 00593 pa_operation* pa_context_get_source_output_info(pa_context *c, uint32_t idx, pa_source_output_info_cb_t cb, void *userdata); 00594 00596 pa_operation* pa_context_get_source_output_info_list(pa_context *c, pa_source_output_info_cb_t cb, void *userdata); 00597 00599 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); 00600 00602 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); 00603 00605 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); 00606 00608 pa_operation* pa_context_set_source_output_mute(pa_context *c, uint32_t idx, int mute, pa_context_success_cb_t cb, void *userdata); 00609 00611 pa_operation* pa_context_kill_source_output(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata); 00612 00620 typedef struct pa_stat_info { 00621 uint32_t memblock_total; 00622 uint32_t memblock_total_size; 00623 uint32_t memblock_allocated; 00624 uint32_t memblock_allocated_size; 00625 uint32_t scache_size; 00626 } pa_stat_info; 00627 00629 typedef void (*pa_stat_info_cb_t) (pa_context *c, const pa_stat_info *i, void *userdata); 00630 00632 pa_operation* pa_context_stat(pa_context *c, pa_stat_info_cb_t cb, void *userdata); 00633 00641 typedef struct pa_sample_info { 00642 uint32_t index; 00643 const char *name; 00644 pa_cvolume volume; 00645 pa_sample_spec sample_spec; 00646 pa_channel_map channel_map; 00647 pa_usec_t duration; 00648 uint32_t bytes; 00649 int lazy; 00650 const char *filename; 00651 pa_proplist *proplist; 00652 } pa_sample_info; 00653 00655 typedef void (*pa_sample_info_cb_t)(pa_context *c, const pa_sample_info *i, int eol, void *userdata); 00656 00658 pa_operation* pa_context_get_sample_info_by_name(pa_context *c, const char *name, pa_sample_info_cb_t cb, void *userdata); 00659 00661 pa_operation* pa_context_get_sample_info_by_index(pa_context *c, uint32_t idx, pa_sample_info_cb_t cb, void *userdata); 00662 00664 pa_operation* pa_context_get_sample_info_list(pa_context *c, pa_sample_info_cb_t cb, void *userdata); 00665 00673 typedef enum pa_autoload_type { 00674 PA_AUTOLOAD_SINK = 0, 00675 PA_AUTOLOAD_SOURCE = 1 00676 } pa_autoload_type_t; 00677 00681 typedef struct pa_autoload_info { 00682 uint32_t index; 00683 const char *name; 00684 pa_autoload_type_t type; 00685 const char *module; 00686 const char *argument; 00687 } pa_autoload_info; 00688 00690 typedef void (*pa_autoload_info_cb_t)(pa_context *c, const pa_autoload_info *i, int eol, void *userdata); 00691 00693 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; 00694 00696 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; 00697 00699 pa_operation* pa_context_get_autoload_info_list(pa_context *c, pa_autoload_info_cb_t cb, void *userdata) PA_GCC_DEPRECATED; 00700 00702 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; 00703 00705 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; 00706 00708 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; 00709 00714 PA_C_DECL_END 00715 00716 #endif