introspect.h

Go to the documentation of this file.
00001 #ifndef foointrospecthfoo
00002 #define foointrospecthfoo
00003 
00004 /* $Id: introspect.h 1426 2007-02-13 15:35:19Z ossman $ */
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 } pa_sink_input_info;
00335 
00337 typedef void (*pa_sink_input_info_cb_t) (pa_context *c, const pa_sink_input_info *i, int eol, void *userdata);
00338 
00340 pa_operation* pa_context_get_sink_input_info(pa_context *c, uint32_t idx, pa_sink_input_info_cb_t cb, void *userdata);
00341 
00343 pa_operation* pa_context_get_sink_input_info_list(pa_context *c, pa_sink_input_info_cb_t cb, void *userdata);
00344 
00346 typedef struct pa_source_output_info {
00347     uint32_t index;                      
00348     const char *name;                    
00349     uint32_t owner_module;               
00350     uint32_t client;                     
00351     uint32_t source;                     
00352     pa_sample_spec sample_spec;          
00353     pa_channel_map channel_map;          
00354     pa_usec_t buffer_usec;               
00355     pa_usec_t source_usec;               
00356     const char *resample_method;         
00357     const char *driver;                  
00358 } pa_source_output_info;
00359 
00361 typedef void (*pa_source_output_info_cb_t) (pa_context *c, const pa_source_output_info *i, int eol, void *userdata);
00362 
00364 pa_operation* pa_context_get_source_output_info(pa_context *c, uint32_t idx, pa_source_output_info_cb_t cb, void *userdata);
00365 
00367 pa_operation* pa_context_get_source_output_info_list(pa_context *c, pa_source_output_info_cb_t cb, void *userdata);
00368 
00370 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);
00371 
00373 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);
00374 
00376 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);
00377 
00379 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);
00380 
00382 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);
00383 
00385 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);
00386 
00388 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);
00389 
00391 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);
00392 
00394 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);
00395 
00397 typedef struct pa_stat_info {
00398     uint32_t memblock_total;           
00399     uint32_t memblock_total_size;      
00400     uint32_t memblock_allocated;       
00401     uint32_t memblock_allocated_size;  
00402     uint32_t scache_size;              
00403 } pa_stat_info;
00404 
00406 typedef void (*pa_stat_info_cb_t) (pa_context *c, const pa_stat_info *i, void *userdata);
00407 
00409 pa_operation* pa_context_stat(pa_context *c, pa_stat_info_cb_t cb, void *userdata);
00410 
00412 typedef struct pa_sample_info {
00413     uint32_t index;                       
00414     const char *name;                     
00415     pa_cvolume volume;                    
00416     pa_sample_spec sample_spec;           
00417     pa_channel_map channel_map;           
00418     pa_usec_t duration;                   
00419     uint32_t bytes;                       
00420     int lazy;                             
00421     const char *filename;                 
00422 } pa_sample_info;
00423 
00425 typedef void (*pa_sample_info_cb_t)(pa_context *c, const pa_sample_info *i, int eol, void *userdata);
00426 
00428 pa_operation* pa_context_get_sample_info_by_name(pa_context *c, const char *name, pa_sample_info_cb_t cb, void *userdata);
00429 
00431 pa_operation* pa_context_get_sample_info_by_index(pa_context *c, uint32_t idx, pa_sample_info_cb_t cb, void *userdata);
00432 
00434 pa_operation* pa_context_get_sample_info_list(pa_context *c, pa_sample_info_cb_t cb, void *userdata);
00435 
00437 pa_operation* pa_context_kill_client(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata);
00438 
00440 pa_operation* pa_context_kill_sink_input(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata);
00441 
00443 pa_operation* pa_context_kill_source_output(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata);
00444 
00446 typedef void (*pa_context_index_cb_t)(pa_context *c, uint32_t idx, void *userdata);
00447 
00449 pa_operation* pa_context_load_module(pa_context *c, const char*name, const char *argument, pa_context_index_cb_t cb, void *userdata);
00450 
00452 pa_operation* pa_context_unload_module(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata);
00453 
00455 typedef enum pa_autoload_type {
00456     PA_AUTOLOAD_SINK = 0,
00457     PA_AUTOLOAD_SOURCE = 1
00458 } pa_autoload_type_t;
00459 
00461 typedef struct pa_autoload_info {
00462     uint32_t index;               
00463     const char *name;             
00464     pa_autoload_type_t type;   
00465     const char *module;           
00466     const char *argument;         
00467 } pa_autoload_info;
00468 
00470 typedef void (*pa_autoload_info_cb_t)(pa_context *c, const pa_autoload_info *i, int eol, void *userdata);
00471 
00473 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);
00474 
00476 pa_operation* pa_context_get_autoload_info_by_index(pa_context *c, uint32_t idx, pa_autoload_info_cb_t cb, void *userdata);
00477 
00479 pa_operation* pa_context_get_autoload_info_list(pa_context *c, pa_autoload_info_cb_t cb, void *userdata);
00480 
00482 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);
00483 
00485 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);
00486 
00488 pa_operation* pa_context_remove_autoload_by_index(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void* userdata);
00489 
00491 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);
00492 
00494 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);
00495 
00497 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);
00498 
00500 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);
00501 
00502 PA_C_DECL_END
00503 
00504 #endif

Generated on Wed Jan 23 11:06:29 2008 for PulseAudio by  doxygen 1.5.4