home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 106 / EnigmaAmiga106CD.iso / software / sviluppo / ahisrc / device / addroutines.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-09-11  |  3.2 KB  |  96 lines

  1. /* $Id: addroutines.h,v 4.3 1999/09/11 22:56:50 lcs Exp $ */
  2.  
  3. /*
  4.      AHI - Hardware independent audio subsystem
  5.      Copyright (C) 1996-1999 Martin Blom <martin@blom.org>
  6.      
  7.      This library is free software; you can redistribute it and/or
  8.      modify it under the terms of the GNU Library General Public
  9.      License as published by the Free Software Foundation; either
  10.      version 2 of the License, or (at your option) any later version.
  11.      
  12.      This library is distributed in the hope that it will be useful,
  13.      but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15.      Library General Public License for more details.
  16.      
  17.      You should have received a copy of the GNU Library General Public
  18.      License along with this library; if not, write to the
  19.      Free Software Foundation, Inc., 59 Temple Place - Suite 330, Cambridge,
  20.      MA 02139, USA.
  21. */
  22.  
  23. #ifndef _ADDROUTINES_H_
  24. #define _ADDROUTINES_H_
  25.  
  26. #include <config.h>
  27. #include <CompilerSpecific.h>
  28. #include "ahi_def.h"
  29.  
  30. /*
  31. ** Samples          Number of samples to calculate.
  32. ** ScaleLeft        Left volume multiplier.
  33. ** ScaleRight       Right volume multiplier (not used for mono sounds).
  34. ** StartPointLeft   Sample value from last session, for interpolation. Update!
  35. ** StartPointRight  Sample value from last session, for interpolation. Update!
  36. ** Src              Pointer to source samples.
  37. ** Dst              Pointer to pointer to destination buffer. Update!
  38. ** FirstOffsetI     The offset value of the first sample (when StartPoint* 
  39. **                  should be used).
  40. ** Offset           The offset (fix-point). Update!
  41. ** Add              Add value (fix-point).
  42. ** StopAtZero       If true, abort at next zero-crossing.
  43. */
  44.  
  45. #define ADDARGS LONG      Samples,\
  46.                 LONG      ScaleLeft,\
  47.                 LONG      ScaleRight,\
  48.                 LONG     *StartPointLeft,\
  49.                 LONG     *StartPointRight,\
  50.                 void     *Src,\
  51.                 void    **Dst,\
  52.                 LONG      FirstOffsetI,\
  53.                 Fixed64   Add,\
  54.                 Fixed64  *Offset,\
  55.                 BOOL      StopAtZero
  56.  
  57. typedef LONG (ADDFUNC)(ADDARGS);
  58.  
  59. LONG AddByteMono( ADDARGS );
  60. LONG AddByteStereo( ADDARGS );
  61. LONG AddBytesMono( ADDARGS );
  62. LONG AddBytesStereo( ADDARGS );
  63. LONG AddWordMono( ADDARGS );
  64. LONG AddWordStereo( ADDARGS );
  65. LONG AddWordsMono( ADDARGS );
  66. LONG AddWordsStereo( ADDARGS );
  67.  
  68. LONG AddByteMonoB( ADDARGS );
  69. LONG AddByteStereoB( ADDARGS );
  70. LONG AddBytesMonoB( ADDARGS );
  71. LONG AddBytesStereoB( ADDARGS );
  72. LONG AddWordMonoB( ADDARGS );
  73. LONG AddWordStereoB( ADDARGS );
  74. LONG AddWordsMonoB( ADDARGS );
  75. LONG AddWordsStereoB( ADDARGS );
  76.  
  77. LONG AddLofiByteMono( ADDARGS );
  78. LONG AddLofiByteStereo( ADDARGS );
  79. LONG AddLofiBytesMono( ADDARGS );
  80. LONG AddLofiBytesStereo( ADDARGS );
  81. LONG AddLofiWordMono( ADDARGS );
  82. LONG AddLofiWordStereo( ADDARGS );
  83. LONG AddLofiWordsMono( ADDARGS );
  84. LONG AddLofiWordsStereo( ADDARGS );
  85.  
  86. LONG AddLofiByteMonoB( ADDARGS );
  87. LONG AddLofiByteStereoB( ADDARGS );
  88. LONG AddLofiBytesMonoB( ADDARGS );
  89. LONG AddLofiBytesStereoB( ADDARGS );
  90. LONG AddLofiWordMonoB( ADDARGS );
  91. LONG AddLofiWordStereoB( ADDARGS );
  92. LONG AddLofiWordsMonoB( ADDARGS );
  93. LONG AddLofiWordsStereoB( ADDARGS );
  94.  
  95. #endif /* _ADDROUTINES_H_ */
  96.