#ifndef IFILTER_H #define IFILTER_H #include "IRefCounted.h" namespace cAudio { enum FilterTypes { EFT_NULL, EFT_LOWPASS, EFT_HIGHPASS, EFT_BANDPASS, EFT_COUNT }; class IFilter : public IRefCounted { public: IFilter() { } virtual ~IFilter() { } virtual const FilterTypes& getType() const = 0; virtual void setType(const FilterTypes& type) = 0; virtual float getVolume() const = 0; virtual void setVolume(const float& volume) = 0; virtual float getLowFrequencyVolume() const = 0; virtual void setLowFrequencyVolume(const float& volumeLF) = 0; virtual float getHighFrequencyVolume() const = 0; virtual void setHighFrequencyVolume(const float& volumeHF) = 0; virtual unsigned int getLastUpdated() const = 0; virtual bool isValid() const = 0; }; }; #endif //! IFILTER_H