2010-02-09 05:18:39 +01:00
|
|
|
// Copyright (c) 2008-2010 Raynaldo (Wildicv) Rivera, Joshua (Dark_Kilauea) Jones
|
|
|
|
// This file is part of the "cAudio Engine"
|
|
|
|
// For conditions of distribution and use, see copyright notice in cAudio.h
|
|
|
|
|
2010-01-11 01:39:08 +01:00
|
|
|
#ifndef CFILTER_H
|
|
|
|
#define CFILTER_H
|
|
|
|
|
|
|
|
#include "../include/IFilter.h"
|
|
|
|
#include "../Headers/cMutex.h"
|
|
|
|
#include "../Headers/cEFXFunctions.h"
|
|
|
|
|
|
|
|
#include <AL/al.h>
|
|
|
|
#include <AL/alc.h>
|
|
|
|
|
|
|
|
namespace cAudio
|
|
|
|
{
|
|
|
|
class cFilter : public IFilter
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
cFilter(cEFXFunctions* oALFunctions);
|
|
|
|
~cFilter();
|
|
|
|
|
|
|
|
virtual const FilterTypes& getType() const;
|
|
|
|
virtual void setType(const FilterTypes& type);
|
|
|
|
|
|
|
|
virtual float getVolume() const;
|
|
|
|
virtual void setVolume(const float& volume);
|
|
|
|
|
|
|
|
virtual float getLowFrequencyVolume() const;
|
|
|
|
virtual void setLowFrequencyVolume(const float& volumeLF);
|
|
|
|
|
|
|
|
virtual float getHighFrequencyVolume() const;
|
|
|
|
virtual void setHighFrequencyVolume(const float& volumeHF);
|
|
|
|
|
|
|
|
virtual unsigned int getLastUpdated() const;
|
|
|
|
virtual bool isValid() const;
|
|
|
|
|
|
|
|
ALuint getOpenALFilter() const;
|
|
|
|
|
|
|
|
protected:
|
|
|
|
cEFXFunctions* EFX;
|
|
|
|
|
|
|
|
//Mutex for thread syncronization
|
|
|
|
cAudioMutex Mutex;
|
|
|
|
|
|
|
|
FilterTypes Type;
|
|
|
|
float Volume;
|
|
|
|
float LowFreqVolume;
|
|
|
|
float HighFreqVolume;
|
|
|
|
unsigned int LastUpdated;
|
|
|
|
|
|
|
|
bool Valid;
|
|
|
|
|
|
|
|
ALuint Filter;
|
|
|
|
|
|
|
|
bool UpdateFilter();
|
|
|
|
bool CheckError();
|
|
|
|
ALenum ConvertFilterEnum(FilterTypes type);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif //! CFILTER_H
|