caudio/include/IEffect.h

96 lines
3.3 KiB
C++

// 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
#ifndef IEFFECT_H
#define IEFFECT_H
#include "IRefCounted.h"
#include "IFilter.h"
#include "IEffectParameters.h"
namespace cAudio
{
enum EffectTypes
{
EET_NULL,
EET_EAX_REVERB,
EET_REVERB,
EET_CHORUS,
EET_DISTORTION,
EET_ECHO,
EET_FLANGER,
EET_FREQUENCY_SHIFTER,
EET_VOCAL_MORPHER,
EET_PITCH_SHIFTER,
EET_RING_MODULATOR,
EET_AUTOWAH,
EET_COMPRESSOR,
EET_EQUALIZER,
EET_COUNT
};
class IEffect : public IRefCounted
{
public:
IEffect() { }
virtual ~IEffect() { }
virtual const EffectTypes& getType() const = 0;
virtual void setType(const EffectTypes& type) = 0;
virtual const sEAXReverbParameters& getEAXReverbParameters() const = 0;
virtual void setEAXReverbParameters(const sEAXReverbParameters& param) = 0;
virtual const sReverbParameters& getReverbParameters() const = 0;
virtual void setReverbParameters(const sReverbParameters& param) = 0;
virtual const sChorusParameters& getChorusParameters() const = 0;
virtual void setChorusParameters(const sChorusParameters& param) = 0;
virtual const sDistortionParameters& getDistortionParameters() const = 0;
virtual void setDistortionParameters(const sDistortionParameters& param) = 0;
virtual const sEchoParameters& getEchoParameters() const = 0;
virtual void setEchoParameters(const sEchoParameters& param) = 0;
virtual const sFlangerParameters& getFlangerParameters() const = 0;
virtual void setFlangerParameters(const sFlangerParameters& param) = 0;
virtual const sFrequencyShiftParameters& getFrequencyShiftParameters() const = 0;
virtual void setFrequencyShiftParameters(const sFrequencyShiftParameters& param) = 0;
virtual const sVocalMorpherParameters& getVocalMorpherParameters() const = 0;
virtual void setVocalMorpherParameters(const sVocalMorpherParameters& param) = 0;
virtual const sPitchShifterParameters& getPitchShifterParameters() const = 0;
virtual void setPitchShifterParameters(const sPitchShifterParameters& param) = 0;
virtual const sRingModulatorParameters& getRingModulatorParameters() const = 0;
virtual void setRingModulatorParameters(const sRingModulatorParameters& param) = 0;
virtual const sAutowahParameters& getAutowahParameters() const = 0;
virtual void setAutowahParameters(const sAutowahParameters& param) = 0;
virtual const sCompressorParameters& getCompressorParameters() const = 0;
virtual void setCompressorParameters(const sCompressorParameters& param) = 0;
virtual const sEqualizerParameters& getEqualizerParameters() const = 0;
virtual void setEqualizerParameters(const sEqualizerParameters& param) = 0;
virtual float getMasterVolume() const = 0;
virtual void setMasterVolume(const float& volume) = 0;
virtual bool isIgnoringAttenuation() const = 0;
virtual void ignoreAttenuation(const bool& ignore) = 0;
virtual IFilter* getFilter() const = 0;
virtual void attachFilter(IFilter* filter) = 0;
virtual void removeFilter() = 0;
virtual unsigned int getLastUpdated() const = 0;
virtual bool isValid() const = 0;
};
};
#endif //! IEFFECT_H