dspSingleSnow.cpp (2062B)
1 #include "dspSingleSnow.h" 2 3 namespace virusLib 4 { 5 DspSingleSnow::DspSingleSnow() : DspSingle(0x100000, true) 6 { 7 } 8 9 template<typename T> void 10 processAudioSnow(DspSingleSnow& _dsp, const synthLib::TAudioInputsT<T>& _inputs, const synthLib::TAudioOutputsT<T>& _outputs, const size_t _samples, const uint32_t _latency, std::vector<T>& _dummyIn, std::vector<T>& _dummyOut) 11 { 12 DspSingle::ensureSize(_dummyIn, _samples<<1); 13 DspSingle::ensureSize(_dummyOut, _samples<<1); 14 15 const auto* dIn = _dummyIn.data(); 16 auto* dOut = _dummyOut.data(); 17 18 const auto s = static_cast<uint32_t>(_samples); 19 20 const T* inputs0[] = {_inputs[0], _inputs[1], dIn, dIn, dIn, dIn, dIn, dIn}; 21 const T* inputs1[] = {_inputs[0], _inputs[1], dIn, dIn, dIn, dIn, dIn, dIn}; 22 23 _dsp.getPeriphX().getEsai().processAudioInputInterleaved(inputs0, s, _latency); 24 _dsp.getPeriphY().getEsai().processAudioInputInterleaved(inputs1, s, _latency); 25 26 T* outputs0[] = { 27 _outputs[0] ? _outputs[0] : dOut, 28 _outputs[1] ? _outputs[1] : dOut, 29 dOut, dOut, dOut, dOut, dOut, dOut, dOut, dOut, dOut, dOut}; 30 31 T* outputs1[] = {dOut, dOut, dOut, dOut, 32 _outputs[2] ? _outputs[2] : dOut, 33 _outputs[3] ? _outputs[3] : dOut, 34 _outputs[4] ? _outputs[4] : dOut, 35 _outputs[5] ? _outputs[5] : dOut, 36 _outputs[6] ? _outputs[6] : dOut, 37 _outputs[7] ? _outputs[7] : dOut, 38 dOut, dOut}; 39 40 _dsp.getPeriphX().getEsai().processAudioOutputInterleaved(outputs0, s); 41 _dsp.getPeriphY().getEsai().processAudioOutputInterleaved(outputs1, s); 42 } 43 44 void DspSingleSnow::processAudio(const synthLib::TAudioInputs& _inputs, const synthLib::TAudioOutputs& _outputs, const size_t _samples, const uint32_t _latency) 45 { 46 processAudioSnow(*this, _inputs, _outputs, _samples, _latency, m_dummyBufferInF, m_dummyBufferOutF); 47 } 48 49 void DspSingleSnow::processAudio(const synthLib::TAudioInputsInt& _inputs, const synthLib::TAudioOutputsInt& _outputs, const size_t _samples, const uint32_t _latency) 50 { 51 processAudioSnow(*this, _inputs, _outputs, _samples, _latency, m_dummyBufferInI, m_dummyBufferOutI); 52 } 53 }