| 286 | } |
| 287 | |
| 288 | void mixExtraTrack(s16 *dest, u32 size, JASMixCallBack callback) { |
| 289 | JASProbe::start(5, "DSPMIX"); |
| 290 | s16 *src1 = callback(size); |
| 291 | if (!src1) { |
| 292 | return; |
| 293 | } |
| 294 | JASProbe::stop(5); |
| 295 | |
| 296 | JASProbe::start(6, "MIXING"); |
| 297 | s16 *destPtr = dest; |
| 298 | s16 *src2 = src1 + getFrameSamples(); |
| 299 | for (u32 i = size; i != 0; i--) { |
| 300 | destPtr[0] = JASCalc::clamp<s16, s32>(destPtr[0] + src2[0]); |
| 301 | destPtr[1] = JASCalc::clamp<s16, s32>(destPtr[1] + src1[0]); |
| 302 | destPtr += 2; |
| 303 | src2++; |
| 304 | src1++; |
| 305 | } |
| 306 | JASProbe::stop(6); |
| 307 | } |
| 308 | |
| 309 | void mixInterleaveTrack(s16 *dest, u32 size, JASMixCallBack callback) |
| 310 | { |
nothing calls this directly
no test coverage detected