ref: 64061a0b01413a0aa8f7e19c34475b2d80182a88
dir: /src/audio/native_audio.h/
/*************************************************************************/ /* */ /* Language Technologies Institute */ /* Carnegie Mellon University */ /* Copyright (c) 2001 */ /* All Rights Reserved. */ /* */ /* Permission is hereby granted, free of charge, to use and distribute */ /* this software and its documentation without restriction, including */ /* without limitation the rights to use, copy, modify, merge, publish, */ /* distribute, sublicense, and/or sell copies of this work, and to */ /* permit persons to whom this work is furnished to do so, subject to */ /* the following conditions: */ /* 1. The code must retain the above copyright notice, this list of */ /* conditions and the following disclaimer. */ /* 2. Any modifications must be clearly marked as such. */ /* 3. Original authors' names are not deleted. */ /* 4. The authors' names are not used to endorse or promote products */ /* derived from this software without specific prior written */ /* permission. */ /* */ /* CARNEGIE MELLON UNIVERSITY AND THE CONTRIBUTORS TO THIS WORK */ /* DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING */ /* ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT */ /* SHALL CARNEGIE MELLON UNIVERSITY NOR THE CONTRIBUTORS BE LIABLE */ /* FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES */ /* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN */ /* AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, */ /* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF */ /* THIS SOFTWARE. */ /* */ /*************************************************************************/ /* Author: Alan W Black (awb@cs.cmu.edu) */ /* Date: January 2001 */ /*************************************************************************/ /* */ /* Selects between audio devices */ /* */ /*************************************************************************/ #ifndef _NATIVE_AUDIO_H__ #define _NATIVE_AUDIO_H__ #ifdef CST_AUDIO_COMMAND #define AUDIO_OPEN_NATIVE audio_open_command #define AUDIO_CLOSE_NATIVE audio_close_command #define AUDIO_SET_SAMPLE_RATE_NATIVE audio_set_sample_rate_command #define AUDIO_WRITE_NATIVE audio_write_command #define AUDIO_DRAIN_NATIVE audio_drain_command #define AUDIO_FLUSH_NATIVE audio_flush_command #endif #ifdef CST_AUDIO_SUNOS #define AUDIO_OPEN_NATIVE audio_open_sun #define AUDIO_CLOSE_NATIVE audio_close_sun #define AUDIO_SET_SAMPLE_RATE_NATIVE audio_set_sample_rate_sun #define AUDIO_WRITE_NATIVE audio_write_sun #define AUDIO_DRAIN_NATIVE audio_drain_sun #define AUDIO_FLUSH_NATIVE audio_flush_sun #endif #ifdef CST_AUDIO_LINUX #define AUDIO_OPEN_NATIVE audio_open_oss #define AUDIO_CLOSE_NATIVE audio_close_oss #define AUDIO_SET_SAMPLE_RATE_NATIVE audio_set_sample_rate_oss #define AUDIO_WRITE_NATIVE audio_write_oss #define AUDIO_DRAIN_NATIVE audio_drain_oss #define AUDIO_FLUSH_NATIVE audio_flush_oss #endif #ifdef CST_AUDIO_ALSA #define AUDIO_OPEN_NATIVE audio_open_alsa #define AUDIO_CLOSE_NATIVE audio_close_alsa #define AUDIO_SET_SAMPLE_RATE_NATIVE audio_set_sample_rate_alsa #define AUDIO_WRITE_NATIVE audio_write_alsa #define AUDIO_DRAIN_NATIVE audio_drain_alsa #define AUDIO_FLUSH_NATIVE audio_flush_alsa #endif #ifdef CST_AUDIO_PULSEAUDIO #define AUDIO_OPEN_NATIVE audio_open_pulseaudio #define AUDIO_CLOSE_NATIVE audio_close_pulseaudio #define AUDIO_SET_SAMPLE_RATE_NATIVE audio_set_sample_rate_pulseaudio #define AUDIO_WRITE_NATIVE audio_write_pulseaudio #define AUDIO_DRAIN_NATIVE audio_drain_pulseaudio #define AUDIO_FLUSH_NATIVE audio_flush_pulseaudio #endif #ifdef CST_AUDIO_FREEBSD #define AUDIO_OPEN_NATIVE audio_open_oss #define AUDIO_CLOSE_NATIVE audio_close_oss #define AUDIO_SET_SAMPLE_RATE_NATIVE audio_set_sample_rate_oss #define AUDIO_WRITE_NATIVE audio_write_oss #define AUDIO_DRAIN_NATIVE audio_drain_oss #define AUDIO_FLUSH_NATIVE audio_flush_oss #endif #ifdef CST_AUDIO_WINCE #define AUDIO_OPEN_NATIVE audio_open_wince #define AUDIO_CLOSE_NATIVE audio_close_wince #define AUDIO_SET_SAMPLE_RATE_NATIVE audio_set_sample_rate_wince #define AUDIO_WRITE_NATIVE audio_write_wince #define AUDIO_DRAIN_NATIVE audio_drain_wince #define AUDIO_FLUSH_NATIVE audio_flush_wince #endif #ifdef CST_AUDIO_WIN32 #define AUDIO_OPEN_NATIVE audio_open_win #define AUDIO_CLOSE_NATIVE audio_close_win #define AUDIO_SET_SAMPLE_RATE_NATIVE audio_set_sample_rate_win #define AUDIO_WRITE_NATIVE audio_write_win #define AUDIO_DRAIN_NATIVE audio_drain_win #define AUDIO_FLUSH_NATIVE audio_flush_win #endif #ifdef CST_AUDIO_PALMOS #define AUDIO_OPEN_NATIVE audio_open_palmos #define AUDIO_CLOSE_NATIVE audio_close_palmos #define AUDIO_SET_SAMPLE_RATE_NATIVE audio_set_sample_rate_palmos #define AUDIO_WRITE_NATIVE audio_write_palmos #define AUDIO_DRAIN_NATIVE audio_drain_palmos #define AUDIO_FLUSH_NATIVE audio_flush_palmos #endif #ifdef CST_AUDIO_NONE #define AUDIO_OPEN_NATIVE audio_open_none #define AUDIO_CLOSE_NATIVE audio_close_none #define AUDIO_SET_SAMPLE_RATE_NATIVE audio_set_sample_rate_none #define AUDIO_WRITE_NATIVE audio_write_none #define AUDIO_DRAIN_NATIVE audio_drain_none #define AUDIO_FLUSH_NATIVE audio_flush_none #endif #ifndef AUDIO_OPEN_NATIVE #define AUDIO_OPEN_NATIVE audio_open_none #define AUDIO_CLOSE_NATIVE audio_close_none #define AUDIO_SET_SAMPLE_RATE_NATIVE audio_set_sample_rate_none #define AUDIO_WRITE_NATIVE audio_write_none #define AUDIO_DRAIN_NATIVE audio_drain_none #define AUDIO_FLUSH_NATIVE audio_flush_none #define CST_AUDIO_NONE #endif cst_audiodev *AUDIO_OPEN_NATIVE(int sps, int channels, cst_audiofmt fmt); int AUDIO_CLOSE_NATIVE(cst_audiodev *ad); int AUDIO_WRITE_NATIVE(cst_audiodev *ad,void *buff,int num_bytes); int AUDIO_DRAIN_NATIVE(cst_audiodev *ad); int AUDIO_FLUSH_NATIVE(cst_audiodev *ad); #endif