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
1.7.1