Line data Source code
1 : /** 2 : * \file DelayInterface.h 3 : */ 4 : 5 : #ifndef ATK_DELAY_DELAYINTERFACE_H 6 : #define ATK_DELAY_DELAYINTERFACE_H 7 : 8 : #include <ATK/Delay/config.h> 9 : 10 : #include <gsl/gsl> 11 : 12 : #include <map> 13 : 14 : namespace ATK 15 : { 16 : /// Interface for a fixed filter 17 : class ATK_DELAY_EXPORT DelayInterface 18 : { 19 : public: 20 19 : virtual ~DelayInterface() = default; 21 : /// Sets the delay of the filter 22 : virtual void set_delay(gsl::index delay) = 0; 23 : /// Returns the delay 24 : virtual gsl::index get_delay() const = 0; 25 : }; 26 : 27 : /// Interface for a universal filter 28 : template<class DataType> 29 : class ATK_DELAY_EXPORT UniversalDelayInterface 30 : { 31 : public: 32 13 : virtual ~UniversalDelayInterface() = default; 33 : 34 : /// Sets the blend of the filter 35 : virtual void set_blend(DataType blend) = 0; 36 : /// Returns the blend 37 : virtual DataType get_blend() const = 0; 38 : /// Sets the feedback of the filter 39 : virtual void set_feedback(DataType feedback) = 0; 40 : /// Returns the feedback 41 : virtual DataType get_feedback() const = 0; 42 : /// Sets the feedforward of the filter 43 : virtual void set_feedforward(DataType feedforward) = 0; 44 : /// Returns the feedforward 45 : virtual DataType get_feedforward() const = 0; 46 : }; 47 : } 48 : 49 : #endif