introspect.h

Go to the documentation of this file.
00001 #ifndef foointrospecthfoo
00002 #define foointrospecthfoo
00003 
00004 /* $Id: introspect.h 1971 2007-10-28 19:13:50Z lennart $ */
00005 
00006 /***
00007   This file is part of PulseAudio.
00008 
00009   Copyright 2004-2006 Lennart Poettering
00010   Copyright 2006 Pierre Ossman <ossman@cendio.se> for Cendio AB
00011 
00012   PulseAudio is free software; you can redistribute it and/or modify
00013   it under the terms of the GNU Lesser General Public License as published
00014   by the Free Software Foundation; either version 2 of the License,
00015   or (at your option) any later version.
00016 
00017   PulseAudio is distributed in the hope that it will be useful, but
00018   WITHOUT ANY WARRANTY; without even the implied warranty of
00019   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00020   General Public License for more details.
00021 
00022   You should have received a copy of the GNU Lesser General Public License
00023   along with PulseAudio; if not, write to the Free Software
00024   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
00025   USA.
00026 ***/
00027 
00028 #include <inttypes.h>
00029 
00030 #include <pulse/operation.h>
00031 #include <pulse/context.h>
00032 #include <pulse/cdecl.h>
00033 #include <pulse/channelmap.h>
00034 #include <pulse/volume.h>
00035 
00207 PA_C_DECL_BEGIN
00208 
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_sink_info;
00225 
00227 typedef void (*pa_sink_info_cb_t)(pa_context *c, const pa_sink_info *i, int eol, void *userdata);
00228 
00230 pa_operation* pa_context_get_sink_info_by_name(pa_context *c, const char *name, pa_sink_info_cb_t cb, void *userdata);
00231 
00233 pa_operation* pa_context_get_sink_info_by_index(pa_context *c, uint32_t id, pa_sink_info_cb_t cb, void *userdata);
00234 
00236 pa_operation* pa_context_get_sink_info_list(pa_context *c, pa_sink_info_cb_t cb, void *userdata);
00237 
00239 typedef struct pa_source_info {
00240     const char *name ;                  
00241     uint32_t index;                     
00242     const char *description;            
00243     pa_sample_spec sample_spec;         
00244     pa_channel_map channel_map;         
00245     uint32_t owner_module;              
00246     pa_cvolume volume;                  
00247     int mute;                           
00248     uint32_t monitor_of_sink;           
00249     const char *monitor_of_sink_name;   
00250     pa_usec_t latency;                  
00251     const char *driver;                 
00252     pa_source_flags_t flags;            
00253 } pa_source_info;
00254 
00256 typedef void (*pa_source_info_cb_t)(pa_context *c, const pa_source_info *i, int eol, void *userdata);
00257 
00259 pa_operation* pa_context_get_source_info_by_name(pa_context *c, const char *name, pa_source_info_cb_t cb, void *userdata);
00260 
00262 pa_operation* pa_context_get_source_info_by_index(pa_context *c, uint32_t id, pa_source_info_cb_t cb, void *userdata);
00263 
00265 pa_operation* pa_context_get_source_info_list(pa_context *c, pa_source_info_cb_t cb, void *userdata);
00266 
00268 typedef struct pa_server_info {
00269     const char *user_name;              
00270     const char *host_name;              
00271     const char *server_version;         
00272     const char *server_name;            
00273     pa_sample_spec sample_spec;         
00274     const char *default_sink_name;      
00275     const char *default_source_name;    
00276     uint32_t cookie;                    
00277 } pa_server_info;
00278 
00280 typedef void (*pa_server_info_cb_t) (pa_context *c, const pa_server_info*i, void *userdata);
00281 
00283 pa_operation* pa_context_get_server_info(pa_context *c, pa_server_info_cb_t cb, void *userdata);
00284 
00286 typedef struct pa_module_info {
00287     uint32_t index;                     
00288     const char*name,                    
00289         *argument;                      
00290     uint32_t n_used;                    
00291     int auto_unload;                    
00292 } pa_module_info;
00293 
00295 typedef void (*pa_module_info_cb_t) (pa_context *c, const pa_module_info*i, int eol, void *userdata);
00296 
00298 pa_operation* pa_context_get_module_info(pa_context *c, uint32_t idx, pa_module_info_cb_t cb, void *userdata);
00299 
00301 pa_operation* pa_context_get_module_info_list(pa_context *c, pa_module_info_cb_t cb, void *userdata);
00302 
00304 typedef struct pa_client_info {
00305     uint32_t index;                      
00306     const char *name;                    
00307     uint32_t owner_module;               
00308     const char *driver;                  
00309 } pa_client_info;
00310 
00312 typedef void (*pa_client_info_cb_t) (pa_context *c, const pa_client_info*i, int eol, void *userdata);
00313 
00315 pa_operation* pa_context_get_client_info(pa_context *c, uint32_t idx, pa_client_info_cb_t cb, void *userdata);
00316 
00318 pa_operation* pa_context_get_client_info_list(pa_context *c, pa_client_info_cb_t cb, void *userdata);
00319 
00321 typedef struct pa_sink_input_info {
00322     uint32_t index;                      
00323     const char *name;                    
00324     uint32_t owner_module;               
00325     uint32_t client;                     
00326     uint32_t sink;                       
00327     pa_sample_spec sample_spec;          
00328     pa_channel_map channel_map;          
00329     pa_cvolume volume;                   
00330     pa_usec_t buffer_usec;               
00331     pa_usec_t sink_usec;                 
00332     const char *resample_method;         
00333     const char *driver;                  
00334     int mute;                            
00335 } pa_sink_input_info;
00336 
00338 typedef void (*pa_sink_input_info_cb_t) (pa_context *c, const pa_sink_input_info *i, int eol, void *userdata);
00339 
00341 pa_operation* pa_context_get_sink_input_info(pa_context *c, uint32_t idx, pa_sink_input_info_cb_t cb, void *userdata);
00342 
00344 pa_operation* pa_context_get_sink_input_info_list(pa_context *c, pa_sink_input_info_cb_t cb, void *userdata);
00345 
00347 typedef struct pa_source_output_info {
00348     uint32_t index;                      
00349     const char *name;                    
00350     uint32_t owner_module;               
00351     uint32_t client;                     
00352     uint32_t source;                     
00353     pa_sample_spec sample_spec;          
00354     pa_channel_map channel_map;          
00355     pa_usec_t buffer_usec;               
00356     pa_usec_t source_usec;               
00357     const char *resample_method;         
00358     const char *driver;                  
00359 } pa_source_output_info;
00360 
00362 typedef void (*pa_source_output_info_cb_t) (pa_context *c, const pa_source_output_info *i, int eol, void *userdata);
00363 
00365 pa_operation* pa_context_get_source_output_info(pa_context *c, uint32_t idx, pa_source_output_info_cb_t cb, void *userdata);
00366 
00368 pa_operation* pa_context_get_source_output_info_list(pa_context *c, pa_source_output_info_cb_t cb, void *userdata);
00369 
00371 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);
00372 
00374 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);
00375 
00377 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);
00378 
00380 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);
00381 
00383 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);
00384 
00386 pa_operation* pa_context_set_sink_input_mute(pa_context *c, uint32_t idx, int mute, pa_context_success_cb_t cb, void *userdata);
00387 
00389 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);
00390 
00392 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);
00393 
00395 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);
00396 
00398 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);
00399 
00401 typedef struct pa_stat_info {
00402     uint32_t memblock_total;           
00403     uint32_t memblock_total_size;      
00404     uint32_t memblock_allocated;       
00405     uint32_t memblock_allocated_size;  
00406     uint32_t scache_size;              
00407 } pa_stat_info;
00408 
00410 typedef void (*pa_stat_info_cb_t) (pa_context *c, const pa_stat_info *i, void *userdata);
00411 
00413 pa_operation* pa_context_stat(pa_context *c, pa_stat_info_cb_t cb, void *userdata);
00414 
00416 typedef struct pa_sample_info {
00417     uint32_t index;                       
00418     const char *name;                     
00419     pa_cvolume volume;                    
00420     pa_sample_spec sample_spec;           
00421     pa_channel_map channel_map;           
00422     pa_usec_t duration;                   
00423     uint32_t bytes;                       
00424     int lazy;                             
00425     const char *filename;                 
00426 } pa_sample_info;
00427 
00429 typedef void (*pa_sample_info_cb_t)(pa_context *c, const pa_sample_info *i, int eol, void *userdata);
00430 
00432 pa_operation* pa_context_get_sample_info_by_name(pa_context *c, const char *name, pa_sample_info_cb_t cb, void *userdata);
00433 
00435 pa_operation* pa_context_get_sample_info_by_index(pa_context *c, uint32_t idx, pa_sample_info_cb_t cb, void *userdata);
00436 
00438 pa_operation* pa_context_get_sample_info_list(pa_context *c, pa_sample_info_cb_t cb, void *userdata);
00439 
00441 pa_operation* pa_context_kill_client(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata);
00442 
00444 pa_operation* pa_context_kill_sink_input(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata);
00445 
00447 pa_operation* pa_context_kill_source_output(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata);
00448 
00450 typedef void (*pa_context_index_cb_t)(pa_context *c, uint32_t idx, void *userdata);
00451 
00453 pa_operation* pa_context_load_module(pa_context *c, const char*name, const char *argument, pa_context_index_cb_t cb, void *userdata);
00454 
00456 pa_operation* pa_context_unload_module(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata);
00457 
00459 typedef enum pa_autoload_type {
00460     PA_AUTOLOAD_SINK = 0,
00461     PA_AUTOLOAD_SOURCE = 1
00462 } pa_autoload_type_t;
00463 
00465 typedef struct pa_autoload_info {
00466     uint32_t index;               
00467     const char *name;             
00468     pa_autoload_type_t type;   
00469     const char *module;           
00470     const char *argument;         
00471 } pa_autoload_info;
00472 
00474 typedef void (*pa_autoload_info_cb_t)(pa_context *c, const pa_autoload_info *i, int eol, void *userdata);
00475 
00477 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);
00478 
00480 pa_operation* pa_context_get_autoload_info_by_index(pa_context *c, uint32_t idx, pa_autoload_info_cb_t cb, void *userdata);
00481 
00483 pa_operation* pa_context_get_autoload_info_list(pa_context *c, pa_autoload_info_cb_t cb, void *userdata);
00484 
00486 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);
00487 
00489 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);
00490 
00492 pa_operation* pa_context_remove_autoload_by_index(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void* userdata);
00493 
00495 pa_operation* pa_context_move_sink_input_by_name(pa_context *c, uint32_t idx, char *sink_name, pa_context_success_cb_t cb, void* userdata);
00496 
00498 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);
00499 
00501 pa_operation* pa_context_move_source_output_by_name(pa_context *c, uint32_t idx, char *source_name, pa_context_success_cb_t cb, void* userdata);
00502 
00504 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);
00505 
00507 pa_operation* pa_context_suspend_sink_by_name(pa_context *c, char *sink_name, int suspend, pa_context_success_cb_t cb, void* userdata);
00508 
00510 pa_operation* pa_context_suspend_sink_by_index(pa_context *c, uint32_t idx, int suspend,  pa_context_success_cb_t cb, void* userdata);
00511 
00513 pa_operation* pa_context_suspend_source_by_name(pa_context *c, char *source_name, int suspend, pa_context_success_cb_t cb, void* userdata);
00514 
00516 pa_operation* pa_context_suspend_source_by_index(pa_context *c, uint32_t idx, int suspend, pa_context_success_cb_t cb, void* userdata);
00517 
00518 PA_C_DECL_END
00519 
00520 #endif

Generated on Tue Apr 24 02:06:15 2012 for PulseAudio by  doxygen 1.4.7