cFilter.h

00001 // Copyright (c) 2008-2010 Raynaldo (Wildicv) Rivera, Joshua (Dark_Kilauea) Jones
00002 // This file is part of the "cAudio Engine"
00003 // For conditions of distribution and use, see copyright notice in cAudio.h
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                 //Mutex for thread syncronization
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 
 All Classes Namespaces Functions Variables Enumerations

Generated on Sat Feb 20 22:55:07 2010 for cAudio by  doxygen 1.6.2