revert between 56095 -> 55830 in arch
[AROS.git] / workbench / devs / AHI / Device / addroutines.h
blob24000a50216e4aa1ae345c5fc885735ad27c3802
1 /*
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,
18 MA 02139, USA.
21 #ifndef ahi_addroutines_h
22 #define ahi_addroutines_h
24 #include <config.h>
26 #include "ahi_def.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*
37 ** should be used).
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,\
44 LONG ScaleLeft,\
45 LONG ScaleRight,\
46 LONG *StartPointLeft,\
47 LONG *StartPointRight,\
48 void *Src,\
49 void **Dst,\
50 LONG FirstOffsetI,\
51 Fixed64 Add,\
52 Fixed64 *Offset,\
53 BOOL StopAtZero
55 #define ADDARGS71 LONG Samples,\
56 LONG ScaleLeft,\
57 LONG ScaleRight,\
58 LONG *StartPoints,\
59 LONG *Unused,\
60 void *Src,\
61 void **Dst,\
62 LONG FirstOffsetI,\
63 Fixed64 Add,\
64 Fixed64 *Offset,\
65 BOOL StopAtZero
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 */