LGPL
[vlc.git] / include / vlc_aout_mixer.h
1 /*****************************************************************************
2  * vlc_aout_mixer.h : audio output mixer interface
3  *****************************************************************************
4  * Copyright (C) 2002-2009 VLC authors and VideoLAN
5  * $Id$
6  *
7  * Authors: Christophe Massiot <massiot@via.ecp.fr>
8  *          Laurent Aimar <fenrir _AT_ videolan _DOT_ org>
9  *
10  * This program is free software; you can redistribute it and/or modify it
11  * under the terms of the GNU Lesser General Public License as published by
12  * the Free Software Foundation; either version 2.1 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU Lesser General Public License for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public License
21  * along with this program; if not, write to the Free Software Foundation,
22  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
23  *****************************************************************************/
24
25 #ifndef VLC_AOUT_MIXER_H
26 #define VLC_AOUT_MIXER_H 1
27
28 /**
29  * \file
30  * This file defines functions, structures and macros for audio output mixer object
31  */
32
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36
37 typedef struct audio_mixer audio_mixer_t;
38
39 /** 
40  * audio output mixer
41  */
42 struct audio_mixer
43 {
44     VLC_COMMON_MEMBERS
45
46     module_t *module; /**< Module handle */
47     vlc_fourcc_t format; /**< Audio samples format */
48     void (*mix)(audio_mixer_t *, block_t *, float); /**< Amplifier */
49 };
50
51 #ifdef __cplusplus
52 }
53 #endif
54
55 #endif