PulseAudio  9.0
introspect.h
Go to the documentation of this file.
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