PulseAudio  3.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, 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