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
00015
00016 class DelayLine : public Effect {
00017 public:
00018 DelayLine(unsigned maxDelayInSamples);
00019
00020 float delayTime();
00021 unsigned delayLength();
00022
00023 float setDelayTime(float delayInMiliseconds);
00024 unsigned setDelayLength(unsigned delayInSamples);
00025
00026
00027 void nextBuffer(Buffer &output) throw(CException);
00028
00029 protected:
00030 RingBuffer mRingBuffer;
00031 unsigned mMaxDelayInSamples;
00032 unsigned mTotalDelayInSamples;
00033
00034 };
00035
00036 }
00037
00038 #endif