cAudio  2.3.0
3d Audio Engine
cFilter.h
1 // Copyright (c) 2008-2011 Raynaldo (Wildicv) Rivera, Joshua (Dark_Kilauea) Jones, Murat (wolfmanfx) Sari
2 // This file is part of the "cAudio Engine"
3 // For conditions of distribution and use, see copyright notice in cAudio.h
4 
5 #pragma once
6 
7 #include "cAudioDefines.h"
8 
9 #if CAUDIO_EFX_ENABLED == 1
10 
11 #include "IFilter.h"
12 #include "cMutex.h"
13 #include "cEFXFunctions.h"
14 #include "cMemoryOverride.h"
15 
16 #include <al.h>
17 #include <alc.h>
18 
19 namespace cAudio
20 {
21  class cFilter : public IFilter, public cMemoryOverride
22  {
23  public:
24  cFilter(cEFXFunctions* oALFunctions);
25  ~cFilter();
26 
27  virtual const FilterTypes& getType() const;
28  virtual void setType(const FilterTypes& type);
29 
30  virtual float getVolume() const;
31  virtual void setVolume(const float& volume);
32 
33  virtual float getLowFrequencyVolume() const;
34  virtual void setLowFrequencyVolume(const float& volumeLF);
35 
36  virtual float getHighFrequencyVolume() const;
37  virtual void setHighFrequencyVolume(const float& volumeHF);
38 
39  virtual unsigned int getLastUpdated() const;
40  virtual bool isValid() const;
41 
42  ALuint getOpenALFilter() const;
43 
44  protected:
45  cEFXFunctions* EFX;
46 
47  //Mutex for thread syncronization
48  cAudioMutex Mutex;
49 
50  FilterTypes Type;
51  float Volume;
52  float LowFreqVolume;
53  float HighFreqVolume;
54  unsigned int LastUpdated;
55 
56  bool Valid;
57 
58  ALuint Filter;
59 
60  bool UpdateFilter();
61  bool CheckError();
62  ALenum ConvertFilterEnum(FilterTypes type);
63  };
64 };
65 
66 #endif
cAudio
Main namespace for the entire cAudio library.
Definition: cAudioCapture.h:15