annotate Plugins/Input/mpg123/decode_2to1.c @ 61:fa848bd484d8 trunk

[svn] Move plugins to Plugins/
author nenolod
date Fri, 28 Oct 2005 22:58:11 -0700
parents
children 05d824e30afd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
2 /*
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
3 * Mpeg Layer-1,2,3 audio decoder
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
4 * ------------------------------
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
5 * copyright (c) 1995 by Michael Hipp, All rights reserved. See also 'README'
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
6 * version for slower machines .. decodes only every second sample
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
7 * sounds like 24000,22050 or 16000 kHz .. (depending on original sample freq.)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
8 *
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
9 */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
10
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
11 #include <stdlib.h>
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
12 #include <math.h>
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
13 #include <string.h>
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
14
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
15 #include "mpg123.h"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
16
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
17 #define WRITE_SAMPLE(samples,sum,clip) \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
18 if( (sum) > 32767.0) { *(samples) = 0x7fff; (clip)++; } \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
19 else if( (sum) < -32768.0) { *(samples) = -0x8000; (clip)++; } \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
20 else { *(samples) = sum; }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
21
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
22 int
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
23 mpg123_synth_2to1_8bit(real * bandPtr, int channel,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
24 unsigned char *samples, int *pnt)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
25 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
26 short samples_tmp[32];
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
27 short *tmp1 = samples_tmp + channel;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
28 int i, ret;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
29 int pnt1 = 0;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
30
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
31 ret =
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
32 mpg123_synth_2to1(bandPtr, channel, (unsigned char *) samples_tmp,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
33 &pnt1);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
34 samples += channel + *pnt;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
35
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
36 for (i = 0; i < 16; i++) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
37 *samples = (*tmp1 >> 8) ^ 128;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
38 samples += 2;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
39 tmp1 += 2;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
40 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
41 *pnt += 32;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
42
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
43 return ret;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
44 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
45
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
46 int
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
47 mpg123_synth_2to1_8bit_mono(real * bandPtr, unsigned char *samples, int *pnt)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
48 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
49 short samples_tmp[32];
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
50 short *tmp1 = samples_tmp;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
51 int i, ret;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
52 int pnt1 = 0;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
53
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
54 ret = mpg123_synth_2to1(bandPtr, 0, (unsigned char *) samples_tmp, &pnt1);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
55 samples += *pnt;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
56
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
57 for (i = 0; i < 16; i++) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
58 *samples++ = (*tmp1 >> 8) ^ 128;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
59 tmp1 += 2;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
60 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
61 *pnt += 16;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
62
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
63 return ret;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
64 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
65
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
66 #if 0
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
67 int
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
68 mpg123_synth_2to1_8bit_mono2stereo(real * bandPtr,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
69 unsigned char *samples, int *pnt)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
70 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
71 short samples_tmp[32];
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
72 short *tmp1 = samples_tmp;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
73 int i, ret;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
74 int pnt1 = 0;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
75
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
76 ret = mpg123_synth_2to1(bandPtr, 0, (unsigned char *) samples_tmp, &pnt1);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
77 samples += *pnt;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
78
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
79 for (i = 0; i < 16; i++) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
80 *samples++ = (*tmp1 >> 8) ^ 128;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
81 *samples++ = (*tmp1 >> 8) ^ 128;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
82 tmp1 += 2;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
83 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
84 *pnt += 32;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
85
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
86 return ret;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
87 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
88 #endif
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
89
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
90 int
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
91 mpg123_synth_2to1_mono(real * bandPtr, unsigned char *samples, int *pnt)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
92 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
93 short samples_tmp[32];
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
94 short *tmp1 = samples_tmp;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
95 int i, ret;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
96 int pnt1 = 0;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
97
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
98 ret = mpg123_synth_2to1(bandPtr, 0, (unsigned char *) samples_tmp, &pnt1);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
99 samples += *pnt;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
100
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
101 for (i = 0; i < 16; i++) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
102 *((short *) samples) = *tmp1;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
103 samples += 2;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
104 tmp1 += 2;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
105 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
106 *pnt += 32;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
107
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
108 return ret;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
109 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
110
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
111 #if 0
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
112 int
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
113 mpg123_synth_2to1_mono2stereo(real * bandPtr, unsigned char *samples,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
114 int *pnt)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
115 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
116 int i, ret;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
117
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
118 ret = mpg123_synth_2to1(bandPtr, 0, samples, pnt);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
119 samples = samples + *pnt - 64;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
120
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
121 for (i = 0; i < 16; i++) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
122 ((short *) samples)[1] = ((short *) samples)[0];
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
123 samples += 4;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
124 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
125
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
126 return ret;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
127 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
128 #endif
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
129
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
130 int
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
131 mpg123_synth_2to1(real * bandPtr, int channel, unsigned char *out, int *pnt)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
132 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
133 static real buffs[2][2][0x110];
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
134 static const int step = 2;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
135 static int bo = 1;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
136 short *samples = (short *) (out + *pnt);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
137
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
138 real *b0, (*buf)[0x110];
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
139 int clip = 0;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
140 int bo1;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
141
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
142 /* if(param.equalizer)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
143 do_equalizer(bandPtr,channel); */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
144
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
145 if (!channel) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
146 bo--;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
147 bo &= 0xf;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
148 buf = buffs[0];
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
149 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
150 else {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
151 samples++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
152 buf = buffs[1];
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
153 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
154
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
155 if (bo & 0x1) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
156 b0 = buf[0];
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
157 bo1 = bo;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
158 mpg123_dct64(buf[1] + ((bo + 1) & 0xf), buf[0] + bo, bandPtr);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
159 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
160 else {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
161 b0 = buf[1];
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
162 bo1 = bo + 1;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
163 mpg123_dct64(buf[0] + bo, buf[1] + bo + 1, bandPtr);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
164 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
165
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
166 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
167 register int j;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
168 real *window = mpg123_decwin + 16 - bo1;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
169
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
170 for (j = 8; j; j--, b0 += 0x10, window += 0x30) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
171 real sum;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
172
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
173 sum = *window++ * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
174 sum -= *window++ * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
175 sum += *window++ * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
176 sum -= *window++ * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
177 sum += *window++ * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
178 sum -= *window++ * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
179 sum += *window++ * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
180 sum -= *window++ * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
181 sum += *window++ * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
182 sum -= *window++ * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
183 sum += *window++ * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
184 sum -= *window++ * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
185 sum += *window++ * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
186 sum -= *window++ * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
187 sum += *window++ * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
188 sum -= *window++ * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
189
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
190 WRITE_SAMPLE(samples, sum, clip);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
191 samples += step;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
192 #if 0
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
193 WRITE_SAMPLE(samples, sum, clip);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
194 samples += step;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
195 #endif
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
196 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
197
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
198 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
199 real sum;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
200
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
201 sum = window[0x0] * b0[0x0];
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
202 sum += window[0x2] * b0[0x2];
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
203 sum += window[0x4] * b0[0x4];
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
204 sum += window[0x6] * b0[0x6];
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
205 sum += window[0x8] * b0[0x8];
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
206 sum += window[0xA] * b0[0xA];
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
207 sum += window[0xC] * b0[0xC];
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
208 sum += window[0xE] * b0[0xE];
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
209 WRITE_SAMPLE(samples, sum, clip);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
210 samples += step;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
211 #if 0
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
212 WRITE_SAMPLE(samples, sum, clip);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
213 samples += step;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
214 #endif
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
215 b0 -= 0x20, window -= 0x40;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
216 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
217 window += bo1 << 1;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
218
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
219 for (j = 7; j; j--, b0 -= 0x30, window -= 0x30) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
220 real sum;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
221
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
222 sum = -*(--window) * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
223 sum -= *(--window) * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
224 sum -= *(--window) * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
225 sum -= *(--window) * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
226 sum -= *(--window) * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
227 sum -= *(--window) * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
228 sum -= *(--window) * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
229 sum -= *(--window) * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
230 sum -= *(--window) * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
231 sum -= *(--window) * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
232 sum -= *(--window) * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
233 sum -= *(--window) * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
234 sum -= *(--window) * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
235 sum -= *(--window) * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
236 sum -= *(--window) * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
237 sum -= *(--window) * *b0++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
238
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
239 WRITE_SAMPLE(samples, sum, clip);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
240 samples += step;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
241 #if 0
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
242 WRITE_SAMPLE(samples, sum, clip);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
243 samples += step;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
244 #endif
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
245 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
246 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
247
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
248 *pnt += 64;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
249
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
250 return clip;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
251 }