2 * module-murphy-ivi -- PulseAudio module for providing audio routing support
3 * Copyright (c) 2012, Intel Corporation.
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms and conditions of the GNU Lesser General Public License,
7 * version 2.1, as published by the Free Software Foundation.
9 * This program is distributed in the hope it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE.
12 * See the GNU Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public License
15 * along with this program; if not, write to the
16 * Free Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
20 #ifndef foomirvolumefoo
21 #define foomirvolumefoo
23 #include <sys/types.h>
29 typedef double (*mir_volume_func_t)(struct userdata *, int, mir_node *, void*);
33 size_t maxentry; /**< length of the class table */
34 size_t nclass; /**< number of classes (0 - maxentry) */
35 int *classes; /**< class table */
36 uint32_t clmask; /**< bits of the classes */
40 struct mir_volume_suppress_arg {
50 pa_mir_volume *pa_mir_volume_init(struct userdata *);
51 void pa_mir_volume_done(struct userdata *);
53 void mir_volume_add_class_limit(struct userdata *,int,mir_volume_func_t,void*);
54 void mir_volume_add_generic_limit(struct userdata *, mir_volume_func_t,void *);
55 void mir_volume_add_maximum_limit(struct userdata *, double, size_t, int *);
57 void mir_volume_make_limiting(struct userdata *);
59 void mir_volume_add_limiting_class(struct userdata *,mir_node *,int,uint32_t);
60 double mir_volume_apply_limits(struct userdata *, mir_node *, int, uint32_t);
62 double mir_volume_suppress(struct userdata *, int, mir_node *, void *);
63 double mir_volume_correction(struct userdata *, int, mir_node *, void *);
65 #endif /* foomirvolumefoo */
71 * indent-tabs-mode: nil