PulseAudio 2.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 } pa_card_port_info; 00470 00474 typedef struct pa_card_info { 00475 uint32_t index; 00476 const char *name; 00477 uint32_t owner_module; 00478 const char *driver; 00479 uint32_t n_profiles; 00480 pa_card_profile_info* profiles; 00481 pa_card_profile_info* active_profile; 00482 pa_proplist *proplist; 00483 uint32_t n_ports; 00484 pa_card_port_info **ports; 00485 } pa_card_info; 00486 00488 typedef void (*pa_card_info_cb_t) (pa_context *c, const pa_card_info*i, int eol, void *userdata); 00489 00491 pa_operation* pa_context_get_card_info_by_index(pa_context *c, uint32_t idx, pa_card_info_cb_t cb, void *userdata); 00492 00494 pa_operation* pa_context_get_card_info_by_name(pa_context *c, const char *name, pa_card_info_cb_t cb, void *userdata); 00495 00497 pa_operation* pa_context_get_card_info_list(pa_context *c, pa_card_info_cb_t cb, void *userdata); 00498 00500 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); 00501 00503 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); 00504 00512 typedef struct pa_sink_input_info { 00513 uint32_t index; 00514 const char *name; 00515 uint32_t owner_module; 00516 uint32_t client; 00517 uint32_t sink; 00518 pa_sample_spec sample_spec; 00519 pa_channel_map channel_map; 00520 pa_cvolume volume; 00521 pa_usec_t buffer_usec; 00522 pa_usec_t sink_usec; 00523 const char *resample_method; 00524 const char *driver; 00525 int mute; 00526 pa_proplist *proplist; 00527 int corked; 00528 int has_volume; 00529 int volume_writable; 00530 pa_format_info *format; 00531 } pa_sink_input_info; 00532 00534 typedef void (*pa_sink_input_info_cb_t) (pa_context *c, const pa_sink_input_info *i, int eol, void *userdata); 00535 00537 pa_operation* pa_context_get_sink_input_info(pa_context *c, uint32_t idx, pa_sink_input_info_cb_t cb, void *userdata); 00538 00540 pa_operation* pa_context_get_sink_input_info_list(pa_context *c, pa_sink_input_info_cb_t cb, void *userdata); 00541 00543 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); 00544 00546 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); 00547 00549 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); 00550 00552 pa_operation* pa_context_set_sink_input_mute(pa_context *c, uint32_t idx, int mute, pa_context_success_cb_t cb, void *userdata); 00553 00555 pa_operation* pa_context_kill_sink_input(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata); 00556 00564 typedef struct pa_source_output_info { 00565 uint32_t index; 00566 const char *name; 00567 uint32_t owner_module; 00568 uint32_t client; 00569 uint32_t source; 00570 pa_sample_spec sample_spec; 00571 pa_channel_map channel_map; 00572 pa_usec_t buffer_usec; 00573 pa_usec_t source_usec; 00574 const char *resample_method; 00575 const char *driver; 00576 pa_proplist *proplist; 00577 int corked; 00578 pa_cvolume volume; 00579 int mute; 00580 int has_volume; 00581 int volume_writable; 00582 pa_format_info *format; 00583 } pa_source_output_info; 00584 00586 typedef void (*pa_source_output_info_cb_t) (pa_context *c, const pa_source_output_info *i, int eol, void *userdata); 00587 00589 pa_operation* pa_context_get_source_output_info(pa_context *c, uint32_t idx, pa_source_output_info_cb_t cb, void *userdata); 00590 00592 pa_operation* pa_context_get_source_output_info_list(pa_context *c, pa_source_output_info_cb_t cb, void *userdata); 00593 00595 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); 00596 00598 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); 00599 00601 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); 00602 00604 pa_operation* pa_context_set_source_output_mute(pa_context *c, uint32_t idx, int mute, pa_context_success_cb_t cb, void *userdata); 00605 00607 pa_operation* pa_context_kill_source_output(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata); 00608 00616 typedef struct pa_stat_info { 00617 uint32_t memblock_total; 00618 uint32_t memblock_total_size; 00619 uint32_t memblock_allocated; 00620 uint32_t memblock_allocated_size; 00621 uint32_t scache_size; 00622 } pa_stat_info; 00623 00625 typedef void (*pa_stat_info_cb_t) (pa_context *c, const pa_stat_info *i, void *userdata); 00626 00628 pa_operation* pa_context_stat(pa_context *c, pa_stat_info_cb_t cb, void *userdata); 00629 00637 typedef struct pa_sample_info { 00638 uint32_t index; 00639 const char *name; 00640 pa_cvolume volume; 00641 pa_sample_spec sample_spec; 00642 pa_channel_map channel_map; 00643 pa_usec_t duration; 00644 uint32_t bytes; 00645 int lazy; 00646 const char *filename; 00647 pa_proplist *proplist; 00648 } pa_sample_info; 00649 00651 typedef void (*pa_sample_info_cb_t)(pa_context *c, const pa_sample_info *i, int eol, void *userdata); 00652 00654 pa_operation* pa_context_get_sample_info_by_name(pa_context *c, const char *name, pa_sample_info_cb_t cb, void *userdata); 00655 00657 pa_operation* pa_context_get_sample_info_by_index(pa_context *c, uint32_t idx, pa_sample_info_cb_t cb, void *userdata); 00658 00660 pa_operation* pa_context_get_sample_info_list(pa_context *c, pa_sample_info_cb_t cb, void *userdata); 00661 00669 typedef enum pa_autoload_type { 00670 PA_AUTOLOAD_SINK = 0, 00671 PA_AUTOLOAD_SOURCE = 1 00672 } pa_autoload_type_t; 00673 00677 typedef struct pa_autoload_info { 00678 uint32_t index; 00679 const char *name; 00680 pa_autoload_type_t type; 00681 const char *module; 00682 const char *argument; 00683 } pa_autoload_info; 00684 00686 typedef void (*pa_autoload_info_cb_t)(pa_context *c, const pa_autoload_info *i, int eol, void *userdata); 00687 00689 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; 00690 00692 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; 00693 00695 pa_operation* pa_context_get_autoload_info_list(pa_context *c, pa_autoload_info_cb_t cb, void *userdata) PA_GCC_DEPRECATED; 00696 00698 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; 00699 00701 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; 00702 00704 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; 00705 00710 PA_C_DECL_END 00711 00712 #endif