1 #pragma once 2 3 #include <QList> 4 5 #include "engine/channelhandle.h" 6 #include "engine/effects/message.h" 7 #include "engine/effects/groupfeaturestate.h" 8 #include "util/samplebuffer.h" 9 10 class EngineEffectChain; 11 12 //TODO(Be): Remove this superfluous class. 13 class EngineEffectRack : public EffectsRequestHandler { 14 public: 15 EngineEffectRack(int iRackNumber); 16 virtual ~EngineEffectRack(); 17 18 bool processEffectsRequest( 19 EffectsRequest& message, 20 EffectsResponsePipe* pResponsePipe); 21 22 bool process(const ChannelHandle& inputHandle, 23 const ChannelHandle& outputHandle, 24 CSAMPLE* pIn, CSAMPLE* pOut, 25 const unsigned int numSamples, 26 const unsigned int sampleRate, 27 const GroupFeatureState& groupFeatures); 28 number()29 int number() const { 30 return m_iRackNumber; 31 } 32 33 private: 34 bool addEffectChain(EngineEffectChain* pChain, int iIndex); 35 bool removeEffectChain(EngineEffectChain* pChain, int iIndex); 36 debugString()37 QString debugString() const { 38 return QString("EngineEffectRack%1").arg(m_iRackNumber); 39 } 40 41 int m_iRackNumber; 42 QList<EngineEffectChain*> m_chains; 43 44 mixxx::SampleBuffer m_buffer1; 45 mixxx::SampleBuffer m_buffer2; 46 47 DISALLOW_COPY_AND_ASSIGN(EngineEffectRack); 48 }; 49