cAudio 2.3.0
3d Audio Engine
Loading...
Searching...
No Matches
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
19namespace 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
Main namespace for the entire cAudio library.
Definition: cAudioCapture.h:16