| 118 | } |
| 119 | |
| 120 | void TANDevice::process(AudioBuffer& out) |
| 121 | { |
| 122 | out.makeSilent(); |
| 123 | |
| 124 | if (!mIRsUpdated) |
| 125 | return; |
| 126 | |
| 127 | mWet.zero(); |
| 128 | |
| 129 | mTANConvolution->Process(mDryPtrs.flatData(), mWetPtrs.flatData(), mFrameSize, mProcessFlags.flatData(), nullptr); |
| 130 | |
| 131 | for (auto i = 0; i < mNumSources; ++i) |
| 132 | { |
| 133 | if (mProcessFlags[i][0] == amf::TAN_CONVOLUTION_CHANNEL_FLAG_PROCESS) |
| 134 | { |
| 135 | for (auto j = 0; j < mNumChannels; ++j) |
| 136 | { |
| 137 | ArrayMath::add(mFrameSize, mWet[i][j], out[j], out[j]); |
| 138 | } |
| 139 | } |
| 140 | } |
| 141 | |
| 142 | for (auto i = 0; i < mNumSources; ++i) |
| 143 | { |
| 144 | for (auto j = 0; j < mNumChannels; ++j) |
| 145 | { |
| 146 | mProcessFlags[i][j] = amf::TAN_CONVOLUTION_CHANNEL_FLAG_STOP_INPUT; |
| 147 | } |
| 148 | } |
| 149 | } |
| 150 | |
| 151 | void TANDevice::setIR(int slot, |
| 152 | const cl_mem* irChannels) |
nothing calls this directly
no test coverage detected