cFilter.h
00001
00002
00003
00004
00005 #ifndef CFILTER_H
00006 #define CFILTER_H
00007
00008 #include "../include/IFilter.h"
00009 #include "../Headers/cMutex.h"
00010 #include "../Headers/cEFXFunctions.h"
00011
00012 #ifdef CAUDIO_EFX_ENABLED
00013
00014 #include <AL/al.h>
00015 #include <AL/alc.h>
00016
00017 namespace cAudio
00018 {
00019 class cFilter : public IFilter
00020 {
00021 public:
00022 cFilter(cEFXFunctions* oALFunctions);
00023 ~cFilter();
00024
00025 virtual const FilterTypes& getType() const;
00026 virtual void setType(const FilterTypes& type);
00027
00028 virtual float getVolume() const;
00029 virtual void setVolume(const float& volume);
00030
00031 virtual float getLowFrequencyVolume() const;
00032 virtual void setLowFrequencyVolume(const float& volumeLF);
00033
00034 virtual float getHighFrequencyVolume() const;
00035 virtual void setHighFrequencyVolume(const float& volumeHF);
00036
00037 virtual unsigned int getLastUpdated() const;
00038 virtual bool isValid() const;
00039
00040 ALuint getOpenALFilter() const;
00041
00042 protected:
00043 cEFXFunctions* EFX;
00044
00045
00046 cAudioMutex Mutex;
00047
00048 FilterTypes Type;
00049 float Volume;
00050 float LowFreqVolume;
00051 float HighFreqVolume;
00052 unsigned int LastUpdated;
00053
00054 bool Valid;
00055
00056 ALuint Filter;
00057
00058 bool UpdateFilter();
00059 bool CheckError();
00060 ALenum ConvertFilterEnum(FilterTypes type);
00061 };
00062 };
00063
00064 #endif
00065
00066 #endif