PulseAudio 1.1
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 } 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