vlc_aout_mixer.h

Go to the documentation of this file.
00001 /*****************************************************************************
00002  * vlc_aout_mixer.h : audio output mixer interface
00003  *****************************************************************************
00004  * Copyright (C) 2002-2009 VLC authors and VideoLAN
00005  * $Id: b3bf37bb5a3ae1f0c54f0df0ce56760cda291767 $
00006  *
00007  * Authors: Christophe Massiot <massiot@via.ecp.fr>
00008  *          Laurent Aimar <fenrir _AT_ videolan _DOT_ org>
00009  *
00010  * This program is free software; you can redistribute it and/or modify it
00011  * under the terms of the GNU Lesser General Public License as published by
00012  * the Free Software Foundation; either version 2.1 of the License, or
00013  * (at your option) any later version.
00014  *
00015  * This program is distributed in the hope that it will be useful,
00016  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00018  * GNU Lesser General Public License for more details.
00019  *
00020  * You should have received a copy of the GNU Lesser General Public License
00021  * along with this program; if not, write to the Free Software Foundation,
00022  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
00023  *****************************************************************************/
00024 
00025 #ifndef VLC_AOUT_MIXER_H
00026 #define VLC_AOUT_MIXER_H 1
00027 
00028 /**
00029  * \file
00030  * This file defines functions, structures and macros for audio output mixer object
00031  */
00032 
00033 #ifdef __cplusplus
00034 extern "C" {
00035 #endif
00036 
00037 typedef struct audio_mixer audio_mixer_t;
00038 
00039 /** 
00040  * audio output mixer
00041  */
00042 struct audio_mixer
00043 {
00044     VLC_COMMON_MEMBERS
00045 
00046     module_t *module; /**< Module handle */
00047     vlc_fourcc_t format; /**< Audio samples format */
00048     void (*mix)(audio_mixer_t *, block_t *, float); /**< Amplifier */
00049 };
00050 
00051 VLC_API audio_mixer_t *aout_MixerNew(vlc_object_t *, vlc_fourcc_t) VLC_USED;
00052 VLC_API void aout_MixerDelete(audio_mixer_t *);
00053 VLC_API void aout_MixerRun(audio_mixer_t *, block_t *, float);
00054 
00055 #ifdef __cplusplus
00056 }
00057 #endif
00058 
00059 #endif
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines