PulseAudio 2.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 } 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