00001
00002
00003
00004
00005
00006
00007 #ifndef CSL_DelayLine_H
00008 #define CSL_DelayLine_H
00009
00010 #include "CSL_Core.h"
00011 #include "RingBuffer.h"
00012
00013 namespace csl {
00014
00018
00019 class DelayLine : public Effect {
00020 public:
00021 DelayLine(unsigned maxDelayInSamples);
00022
00023 float delayTime();
00024 unsigned delayLength();
00025
00026 float setDelayTime(float delayInMiliseconds);
00027 unsigned setDelayLength(unsigned delayInSamples);
00028
00029
00030 void nextBuffer(Buffer &output) throw(CException);
00031
00032 protected:
00033 RingBuffer mRingBuffer;
00034 unsigned mMaxDelayInSamples;
00035 unsigned mTotalDelayInSamples;
00036
00037 };
00038
00039 }
00040
00041 #endif