PulseAudio
1.1
|
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 } 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 uint8_t n_formats; 00234 pa_format_info **formats; 00235 } pa_sink_info; 00236 00238 typedef void (*pa_sink_info_cb_t)(pa_context *c, const pa_sink_info *i, int eol, void *userdata); 00239 00241 pa_operation* pa_context_get_sink_info_by_name(pa_context *c, const char *name, pa_sink_info_cb_t cb, void *userdata); 00242 00244 pa_operation* pa_context_get_sink_info_by_index(pa_context *c, uint32_t idx, pa_sink_info_cb_t cb, void *userdata); 00245 00247 pa_operation* pa_context_get_sink_info_list(pa_context *c, pa_sink_info_cb_t cb, void *userdata); 00248 00250 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); 00251 00253 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); 00254 00256 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); 00257 00259 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); 00260 00262 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); 00263 00265 pa_operation* pa_context_suspend_sink_by_index(pa_context *c, uint32_t idx, int suspend, pa_context_success_cb_t cb, void* userdata); 00266 00268 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); 00269 00271 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); 00272 00280 typedef struct pa_source_port_info { 00281 const char *name; 00282 const char *description; 00283 uint32_t priority; 00284 } pa_source_port_info; 00285 00289 typedef struct pa_source_info { 00290 const char *name; 00291 uint32_t index; 00292 const char *description; 00293 pa_sample_spec sample_spec; 00294 pa_channel_map channel_map; 00295 uint32_t owner_module; 00296 pa_cvolume volume; 00297 int mute; 00298 uint32_t monitor_of_sink; 00299 const char *monitor_of_sink_name; 00300 pa_usec_t latency; 00301 const char *driver; 00302 pa_source_flags_t flags; 00303 pa_proplist *proplist; 00304 pa_usec_t configured_latency; 00305 pa_volume_t base_volume; 00306 pa_source_state_t state; 00307 uint32_t n_volume_steps; 00308 uint32_t card; 00309 uint32_t n_ports; 00310 pa_source_port_info** ports; 00311 pa_source_port_info* active_port; 00312 uint8_t n_formats; 00313 pa_format_info **formats; 00314 } pa_source_info; 00315 00317 typedef void (*pa_source_info_cb_t)(pa_context *c, const pa_source_info *i, int eol, void *userdata); 00318 00320 pa_operation* pa_context_get_source_info_by_name(pa_context *c, const char *name, pa_source_info_cb_t cb, void *userdata); 00321 00323 pa_operation* pa_context_get_source_info_by_index(pa_context *c, uint32_t idx, pa_source_info_cb_t cb, void *userdata); 00324 00326 pa_operation* pa_context_get_source_info_list(pa_context *c, pa_source_info_cb_t cb, void *userdata); 00327 00329 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); 00330 00332 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); 00333 00335 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); 00336 00338 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); 00339 00341 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); 00342 00344 pa_operation* pa_context_suspend_source_by_index(pa_context *c, uint32_t idx, int suspend, pa_context_success_cb_t cb, void* userdata); 00345 00347 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); 00348 00350 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); 00351 00359 typedef struct pa_server_info { 00360 const char *user_name; 00361 const char *host_name; 00362 const char *server_version; 00363 const char *server_name; 00364 pa_sample_spec sample_spec; 00365 const char *default_sink_name; 00366 const char *default_source_name; 00367 uint32_t cookie; 00368 pa_channel_map channel_map; 00369 } pa_server_info; 00370 00372 typedef void (*pa_server_info_cb_t) (pa_context *c, const pa_server_info*i, void *userdata); 00373 00375 pa_operation* pa_context_get_server_info(pa_context *c, pa_server_info_cb_t cb, void *userdata); 00376 00384 typedef struct pa_module_info { 00385 uint32_t index; 00386 const char*name, 00387 *argument; 00388 uint32_t n_used; 00390 int auto_unload; 00392 pa_proplist *proplist; 00393 } pa_module_info; 00394 00396 typedef void (*pa_module_info_cb_t) (pa_context *c, const pa_module_info*i, int eol, void *userdata); 00397 00399 pa_operation* pa_context_get_module_info(pa_context *c, uint32_t idx, pa_module_info_cb_t cb, void *userdata); 00400 00402 pa_operation* pa_context_get_module_info_list(pa_context *c, pa_module_info_cb_t cb, void *userdata); 00403 00405 typedef void (*pa_context_index_cb_t)(pa_context *c, uint32_t idx, void *userdata); 00406 00408 pa_operation* pa_context_load_module(pa_context *c, const char*name, const char *argument, pa_context_index_cb_t cb, void *userdata); 00409 00411 pa_operation* pa_context_unload_module(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata); 00412 00420 typedef struct pa_client_info { 00421 uint32_t index; 00422 const char *name; 00423 uint32_t owner_module; 00424 const char *driver; 00425 pa_proplist *proplist; 00426 } pa_client_info; 00427 00429 typedef void (*pa_client_info_cb_t) (pa_context *c, const pa_client_info*i, int eol, void *userdata); 00430 00432 pa_operation* pa_context_get_client_info(pa_context *c, uint32_t idx, pa_client_info_cb_t cb, void *userdata); 00433 00435 pa_operation* pa_context_get_client_info_list(pa_context *c, pa_client_info_cb_t cb, void *userdata); 00436 00438 pa_operation* pa_context_kill_client(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata); 00439 00447 typedef struct pa_card_profile_info { 00448 const char *name; 00449 const char *description; 00450 uint32_t n_sinks; 00451 uint32_t n_sources; 00452 uint32_t priority; 00453 } pa_card_profile_info; 00454 00458 typedef struct pa_card_info { 00459 uint32_t index; 00460 const char *name; 00461 uint32_t owner_module; 00462 const char *driver; 00463 uint32_t n_profiles; 00464 pa_card_profile_info* profiles; 00465 pa_card_profile_info* active_profile; 00466 pa_proplist *proplist; 00467 } pa_card_info; 00468 00470 typedef void (*pa_card_info_cb_t) (pa_context *c, const pa_card_info*i, int eol, void *userdata); 00471 00473 pa_operation* pa_context_get_card_info_by_index(pa_context *c, uint32_t idx, pa_card_info_cb_t cb, void *userdata); 00474 00476 pa_operation* pa_context_get_card_info_by_name(pa_context *c, const char *name, pa_card_info_cb_t cb, void *userdata); 00477 00479 pa_operation* pa_context_get_card_info_list(pa_context *c, pa_card_info_cb_t cb, void *userdata); 00480 00482 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); 00483 00485 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); 00486 00494 typedef struct pa_sink_input_info { 00495 uint32_t index; 00496 const char *name; 00497 uint32_t owner_module; 00498 uint32_t client; 00499 uint32_t sink; 00500 pa_sample_spec sample_spec; 00501 pa_channel_map channel_map; 00502 pa_cvolume volume; 00503 pa_usec_t buffer_usec; 00504 pa_usec_t sink_usec; 00505 const char *resample_method; 00506 const char *driver; 00507 int mute; 00508 pa_proplist *proplist; 00509 int corked; 00510 int has_volume; 00511 int volume_writable; 00512 pa_format_info *format; 00513 } pa_sink_input_info; 00514 00516 typedef void (*pa_sink_input_info_cb_t) (pa_context *c, const pa_sink_input_info *i, int eol, void *userdata); 00517 00519 pa_operation* pa_context_get_sink_input_info(pa_context *c, uint32_t idx, pa_sink_input_info_cb_t cb, void *userdata); 00520 00522 pa_operation* pa_context_get_sink_input_info_list(pa_context *c, pa_sink_input_info_cb_t cb, void *userdata); 00523 00525 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); 00526 00528 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); 00529 00531 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); 00532 00534 pa_operation* pa_context_set_sink_input_mute(pa_context *c, uint32_t idx, int mute, pa_context_success_cb_t cb, void *userdata); 00535 00537 pa_operation* pa_context_kill_sink_input(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata); 00538 00546 typedef struct pa_source_output_info { 00547 uint32_t index; 00548 const char *name; 00549 uint32_t owner_module; 00550 uint32_t client; 00551 uint32_t source; 00552 pa_sample_spec sample_spec; 00553 pa_channel_map channel_map; 00554 pa_usec_t buffer_usec; 00555 pa_usec_t source_usec; 00556 const char *resample_method; 00557 const char *driver; 00558 pa_proplist *proplist; 00559 int corked; 00560 pa_cvolume volume; 00561 int mute; 00562 int has_volume; 00563 int volume_writable; 00564 pa_format_info *format; 00565 } pa_source_output_info; 00566 00568 typedef void (*pa_source_output_info_cb_t) (pa_context *c, const pa_source_output_info *i, int eol, void *userdata); 00569 00571 pa_operation* pa_context_get_source_output_info(pa_context *c, uint32_t idx, pa_source_output_info_cb_t cb, void *userdata); 00572 00574 pa_operation* pa_context_get_source_output_info_list(pa_context *c, pa_source_output_info_cb_t cb, void *userdata); 00575 00577 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); 00578 00580 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); 00581 00583 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); 00584 00586 pa_operation* pa_context_set_source_output_mute(pa_context *c, uint32_t idx, int mute, pa_context_success_cb_t cb, void *userdata); 00587 00589 pa_operation* pa_context_kill_source_output(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata); 00590 00598 typedef struct pa_stat_info { 00599 uint32_t memblock_total; 00600 uint32_t memblock_total_size; 00601 uint32_t memblock_allocated; 00602 uint32_t memblock_allocated_size; 00603 uint32_t scache_size; 00604 } pa_stat_info; 00605 00607 typedef void (*pa_stat_info_cb_t) (pa_context *c, const pa_stat_info *i, void *userdata); 00608 00610 pa_operation* pa_context_stat(pa_context *c, pa_stat_info_cb_t cb, void *userdata); 00611 00619 typedef struct pa_sample_info { 00620 uint32_t index; 00621 const char *name; 00622 pa_cvolume volume; 00623 pa_sample_spec sample_spec; 00624 pa_channel_map channel_map; 00625 pa_usec_t duration; 00626 uint32_t bytes; 00627 int lazy; 00628 const char *filename; 00629 pa_proplist *proplist; 00630 } pa_sample_info; 00631 00633 typedef void (*pa_sample_info_cb_t)(pa_context *c, const pa_sample_info *i, int eol, void *userdata); 00634 00636 pa_operation* pa_context_get_sample_info_by_name(pa_context *c, const char *name, pa_sample_info_cb_t cb, void *userdata); 00637 00639 pa_operation* pa_context_get_sample_info_by_index(pa_context *c, uint32_t idx, pa_sample_info_cb_t cb, void *userdata); 00640 00642 pa_operation* pa_context_get_sample_info_list(pa_context *c, pa_sample_info_cb_t cb, void *userdata); 00643 00651 typedef enum pa_autoload_type { 00652 PA_AUTOLOAD_SINK = 0, 00653 PA_AUTOLOAD_SOURCE = 1 00654 } pa_autoload_type_t; 00655 00659 typedef struct pa_autoload_info { 00660 uint32_t index; 00661 const char *name; 00662 pa_autoload_type_t type; 00663 const char *module; 00664 const char *argument; 00665 } pa_autoload_info; 00666 00668 typedef void (*pa_autoload_info_cb_t)(pa_context *c, const pa_autoload_info *i, int eol, void *userdata); 00669 00671 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; 00672 00674 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; 00675 00677 pa_operation* pa_context_get_autoload_info_list(pa_context *c, pa_autoload_info_cb_t cb, void *userdata) PA_GCC_DEPRECATED; 00678 00680 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; 00681 00683 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; 00684 00686 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; 00687 00692 PA_C_DECL_END 00693 00694 #endif