PulseAudio  9.0
ext-device-manager.h
Go to the documentation of this file.
00001 #ifndef foopulseextdevicemanagerhfoo
00002 #define foopulseextdevicemanagerhfoo
00003 
00004 /***
00005   This file is part of PulseAudio.
00006 
00007   Copyright 2008 Lennart Poettering
00008   Copyright 2009 Colin Guthrie
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, see <http://www.gnu.org/licenses/>.
00022 ***/
00023 
00024 #include <pulse/cdecl.h>
00025 #include <pulse/context.h>
00026 #include <pulse/version.h>
00027 
00033 PA_C_DECL_BEGIN
00034 
00035 /* Don't extend this struct! It will break binary compatibility, because
00036  * pa_ext_device_manager_info.role_priorities points to an array of structs
00037  * instead of an array of pointers to structs. */
00038 typedef struct pa_ext_device_manager_role_priority_info {
00039     const char *role;
00040     uint32_t priority;
00041 } pa_ext_device_manager_role_priority_info;
00042 
00045 typedef struct pa_ext_device_manager_info {
00046     const char *name;            
00047     const char *description;     
00048     const char *icon;            
00049     uint32_t index;              
00050     uint32_t n_role_priorities;  
00051     pa_ext_device_manager_role_priority_info *role_priorities; 
00052 } pa_ext_device_manager_info;
00053 
00055 typedef void (*pa_ext_device_manager_test_cb_t)(
00056         pa_context *c,
00057         uint32_t version,
00058         void *userdata);
00059 
00061 pa_operation *pa_ext_device_manager_test(
00062         pa_context *c,
00063         pa_ext_device_manager_test_cb_t cb,
00064         void *userdata);
00065 
00067 typedef void (*pa_ext_device_manager_read_cb_t)(
00068         pa_context *c,
00069         const pa_ext_device_manager_info *info,
00070         int eol,
00071         void *userdata);
00072 
00074 pa_operation *pa_ext_device_manager_read(
00075         pa_context *c,
00076         pa_ext_device_manager_read_cb_t cb,
00077         void *userdata);
00078 
00080 pa_operation *pa_ext_device_manager_set_device_description(
00081         pa_context *c,
00082         const char* device,
00083         const char* description,
00084         pa_context_success_cb_t cb,
00085         void *userdata);
00086 
00088 pa_operation *pa_ext_device_manager_delete(
00089         pa_context *c,
00090         const char *const s[],
00091         pa_context_success_cb_t cb,
00092         void *userdata);
00093 
00095 pa_operation *pa_ext_device_manager_enable_role_device_priority_routing(
00096         pa_context *c,
00097         int enable,
00098         pa_context_success_cb_t cb,
00099         void *userdata);
00100 
00102 pa_operation *pa_ext_device_manager_reorder_devices_for_role(
00103         pa_context *c,
00104         const char* role,
00105         const char** devices,
00106         pa_context_success_cb_t cb,
00107         void *userdata);
00108 
00110 pa_operation *pa_ext_device_manager_subscribe(
00111         pa_context *c,
00112         int enable,
00113         pa_context_success_cb_t cb,
00114         void *userdata);
00115 
00117 typedef void (*pa_ext_device_manager_subscribe_cb_t)(
00118         pa_context *c,
00119         void *userdata);
00120 
00123 void pa_ext_device_manager_set_subscribe_cb(
00124         pa_context *c,
00125         pa_ext_device_manager_subscribe_cb_t cb,
00126         void *userdata);
00127 
00128 PA_C_DECL_END
00129 
00130 #endif