173 if (sourceChannels == 1) { |
173 if (sourceChannels == 1) { |
174 int cs = targetChannels; |
174 int cs = targetChannels; |
175 for (int c = 0; c < targetChannels; c++) { |
175 for (int c = 0; c < targetChannels; c++) { |
176 for (int i = 0, ix = off + c; i < len2; i++, ix += cs) { |
176 for (int i = 0, ix = off + c; i < len2; i++, ix += cs) { |
177 b[ix] = conversion_buffer[i]; |
177 b[ix] = conversion_buffer[i]; |
178 ; |
|
179 } |
178 } |
180 } |
179 } |
181 } else if (targetChannels == 1) { |
180 } else if (targetChannels == 1) { |
182 int cs = sourceChannels; |
181 int cs = sourceChannels; |
183 for (int i = 0, ix = off; i < len2; i += cs, ix++) { |
182 for (int i = 0, ix = off; i < len2; i += cs, ix++) { |
184 b[ix] = conversion_buffer[i]; |
183 b[ix] = conversion_buffer[i]; |
185 } |
184 } |
186 for (int c = 1; c < sourceChannels; c++) { |
185 for (int c = 1; c < sourceChannels; c++) { |
187 for (int i = c, ix = off; i < len2; i += cs, ix++) { |
186 for (int i = c, ix = off; i < len2; i += cs, ix++) { |
188 b[ix] += conversion_buffer[i]; |
187 b[ix] += conversion_buffer[i]; |
189 ; |
|
190 } |
188 } |
191 } |
189 } |
192 float vol = 1f / ((float) sourceChannels); |
190 float vol = 1f / ((float) sourceChannels); |
193 for (int i = 0, ix = off; i < len2; i += cs, ix++) { |
191 for (int i = 0, ix = off; i < len2; i += cs, ix++) { |
194 b[ix] *= vol; |
192 b[ix] *= vol; |
421 remain -= destPos - preDestPos; |
420 remain -= destPos - preDestPos; |
422 } |
421 } |
423 for (int c = 0; c < nrofchannels; c++) { |
422 for (int c = 0; c < nrofchannels; c++) { |
424 int ix = 0; |
423 int ix = 0; |
425 float[] buff = cbuffer[c]; |
424 float[] buff = cbuffer[c]; |
426 for (int i = c; i < b.length; i += nrofchannels) { |
425 for (int i = c + off; i < offlen; i += nrofchannels) { |
427 b[i] = buff[ix++]; |
426 b[i] = buff[ix++]; |
428 } |
427 } |
429 } |
428 } |
430 return len - remain * nrofchannels; |
429 return len - remain * nrofchannels; |
431 } |
430 } |