home *** CD-ROM | disk | FTP | other *** search
- /* $Id: addroutines.h,v 4.3 1999/09/11 22:56:50 lcs Exp $ */
-
- /*
- AHI - Hardware independent audio subsystem
- Copyright (C) 1996-1999 Martin Blom <martin@blom.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330, Cambridge,
- MA 02139, USA.
- */
-
- #ifndef _ADDROUTINES_H_
- #define _ADDROUTINES_H_
-
- #include <config.h>
- #include <CompilerSpecific.h>
- #include "ahi_def.h"
-
- /*
- ** Samples Number of samples to calculate.
- ** ScaleLeft Left volume multiplier.
- ** ScaleRight Right volume multiplier (not used for mono sounds).
- ** StartPointLeft Sample value from last session, for interpolation. Update!
- ** StartPointRight Sample value from last session, for interpolation. Update!
- ** Src Pointer to source samples.
- ** Dst Pointer to pointer to destination buffer. Update!
- ** FirstOffsetI The offset value of the first sample (when StartPoint*
- ** should be used).
- ** Offset The offset (fix-point). Update!
- ** Add Add value (fix-point).
- ** StopAtZero If true, abort at next zero-crossing.
- */
-
- #define ADDARGS LONG Samples,\
- LONG ScaleLeft,\
- LONG ScaleRight,\
- LONG *StartPointLeft,\
- LONG *StartPointRight,\
- void *Src,\
- void **Dst,\
- LONG FirstOffsetI,\
- Fixed64 Add,\
- Fixed64 *Offset,\
- BOOL StopAtZero
-
- typedef LONG (ADDFUNC)(ADDARGS);
-
- LONG AddByteMono( ADDARGS );
- LONG AddByteStereo( ADDARGS );
- LONG AddBytesMono( ADDARGS );
- LONG AddBytesStereo( ADDARGS );
- LONG AddWordMono( ADDARGS );
- LONG AddWordStereo( ADDARGS );
- LONG AddWordsMono( ADDARGS );
- LONG AddWordsStereo( ADDARGS );
-
- LONG AddByteMonoB( ADDARGS );
- LONG AddByteStereoB( ADDARGS );
- LONG AddBytesMonoB( ADDARGS );
- LONG AddBytesStereoB( ADDARGS );
- LONG AddWordMonoB( ADDARGS );
- LONG AddWordStereoB( ADDARGS );
- LONG AddWordsMonoB( ADDARGS );
- LONG AddWordsStereoB( ADDARGS );
-
- LONG AddLofiByteMono( ADDARGS );
- LONG AddLofiByteStereo( ADDARGS );
- LONG AddLofiBytesMono( ADDARGS );
- LONG AddLofiBytesStereo( ADDARGS );
- LONG AddLofiWordMono( ADDARGS );
- LONG AddLofiWordStereo( ADDARGS );
- LONG AddLofiWordsMono( ADDARGS );
- LONG AddLofiWordsStereo( ADDARGS );
-
- LONG AddLofiByteMonoB( ADDARGS );
- LONG AddLofiByteStereoB( ADDARGS );
- LONG AddLofiBytesMonoB( ADDARGS );
- LONG AddLofiBytesStereoB( ADDARGS );
- LONG AddLofiWordMonoB( ADDARGS );
- LONG AddLofiWordStereoB( ADDARGS );
- LONG AddLofiWordsMonoB( ADDARGS );
- LONG AddLofiWordsStereoB( ADDARGS );
-
- #endif /* _ADDROUTINES_H_ */
-