2 AHI - Hardware independent audio subsystem
3 Copyright (C) 1996-2005 Martin Blom <martin@blom.org>
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details.
15 You should have received a copy of the GNU Library General Public
16 License along with this library; if not, write to the
17 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Cambridge,
21 #ifndef ahi_addroutines_h
22 #define ahi_addroutines_h
29 ** Samples Number of samples to calculate.
30 ** ScaleLeft Left volume multiplier.
31 ** ScaleRight Right volume multiplier (not used for mono sounds).
32 ** StartPointLeft Sample value from last session, for interpolation. Update!
33 ** StartPointRight Sample value from last session, for interpolation. Update!
34 ** Src Pointer to source samples.
35 ** Dst Pointer to pointer to destination buffer. Update!
36 ** FirstOffsetI The offset value of the first sample (when StartPoint*
38 ** Offset The offset (fix-point). Update!
39 ** Add Add value (fix-point).
40 ** StopAtZero If true, abort at next zero-crossing.
43 #define ADDARGS LONG Samples,\
46 LONG *StartPointLeft,\
47 LONG *StartPointRight,\
55 #define ADDARGS71 LONG Samples,\
67 typedef LONG (ADDFUNC
)(ADDARGS
);
69 LONG
AddByteMono( ADDARGS
);
70 LONG
AddByteStereo( ADDARGS
);
71 LONG
AddBytesMono( ADDARGS
);
72 LONG
AddBytesStereo( ADDARGS
);
73 LONG
AddWordMono( ADDARGS
);
74 LONG
AddWordStereo( ADDARGS
);
75 LONG
AddWordsMono( ADDARGS
);
76 LONG
AddWordsStereo( ADDARGS
);
77 LONG
AddLongMono( ADDARGS
);
78 LONG
AddLongStereo( ADDARGS
);
79 LONG
AddLongsMono( ADDARGS
);
80 LONG
AddLongsStereo( ADDARGS
);
81 LONG
Add71Mono( ADDARGS
);
82 LONG
Add71Stereo( ADDARGS
);
84 LONG
AddByte71( ADDARGS
);
85 LONG
AddBytes71( ADDARGS
);
86 LONG
AddWord71( ADDARGS
);
87 LONG
AddWords71( ADDARGS
);
88 LONG
AddLong71( ADDARGS
);
89 LONG
AddLongs71( ADDARGS
);
90 LONG
Add7171( ADDARGS71
);
92 LONG
AddByteMonoB( ADDARGS
);
93 LONG
AddByteStereoB( ADDARGS
);
94 LONG
AddBytesMonoB( ADDARGS
);
95 LONG
AddBytesStereoB( ADDARGS
);
96 LONG
AddWordMonoB( ADDARGS
);
97 LONG
AddWordStereoB( ADDARGS
);
98 LONG
AddWordsMonoB( ADDARGS
);
99 LONG
AddWordsStereoB( ADDARGS
);
100 LONG
AddLongMonoB( ADDARGS
);
101 LONG
AddLongStereoB( ADDARGS
);
102 LONG
AddLongsMonoB( ADDARGS
);
103 LONG
AddLongsStereoB( ADDARGS
);
104 LONG
Add71MonoB( ADDARGS
);
105 LONG
Add71StereoB( ADDARGS
);
107 LONG
AddByte71B( ADDARGS
);
108 LONG
AddBytes71B( ADDARGS
);
109 LONG
AddWord71B( ADDARGS
);
110 LONG
AddWords71B( ADDARGS
);
111 LONG
AddLong71B( ADDARGS
);
112 LONG
AddLongs71B( ADDARGS
);
113 LONG
Add7171B( ADDARGS71
);
115 LONG
AddLofiByteMono( ADDARGS
);
116 LONG
AddLofiByteStereo( ADDARGS
);
117 LONG
AddLofiBytesMono( ADDARGS
);
118 LONG
AddLofiBytesStereo( ADDARGS
);
119 LONG
AddLofiWordMono( ADDARGS
);
120 LONG
AddLofiWordStereo( ADDARGS
);
121 LONG
AddLofiWordsMono( ADDARGS
);
122 LONG
AddLofiWordsStereo( ADDARGS
);
123 LONG
AddLofiLongMono( ADDARGS
);
124 LONG
AddLofiLongStereo( ADDARGS
);
125 LONG
AddLofiLongsMono( ADDARGS
);
126 LONG
AddLofiLongsStereo( ADDARGS
);
128 LONG
AddLofiByteMonoB( ADDARGS
);
129 LONG
AddLofiByteStereoB( ADDARGS
);
130 LONG
AddLofiBytesMonoB( ADDARGS
);
131 LONG
AddLofiBytesStereoB( ADDARGS
);
132 LONG
AddLofiWordMonoB( ADDARGS
);
133 LONG
AddLofiWordStereoB( ADDARGS
);
134 LONG
AddLofiWordsMonoB( ADDARGS
);
135 LONG
AddLofiWordsStereoB( ADDARGS
);
136 LONG
AddLofiLongMonoB( ADDARGS
);
137 LONG
AddLofiLongStereoB( ADDARGS
);
138 LONG
AddLofiLongsMonoB( ADDARGS
);
139 LONG
AddLofiLongsStereoB( ADDARGS
);
141 #endif /* ahi_addroutines_h */