1 // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
2 // Copyright (C) 2008 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU Affero General Public License as
6 // published by the Free Software Foundation, either version 3 of the
7 // License, or (at your option) any later version.
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU Affero General Public License for more details.
14 // You should have received a copy of the GNU Affero General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
17 #ifndef NLSOUND_EFFECT_XAUDIO2_H
18 #define NLSOUND_EFFECT_XAUDIO2_H
21 class CSoundDriverXAudio2
;
24 * \brief CEffectXAudio2
25 * \date 2008-09-25 07:46GMT
26 * \author Jan Boon (Kaetemi)
33 CSoundDriverXAudio2
*_SoundDriver
;
36 IXAudio2SubmixVoice
*_DryVoice
;
37 IXAudio2SubmixVoice
*_FilterVoice
;
38 IUnknown
*_Effect
; // set by subclass
41 CEffectXAudio2(CSoundDriverXAudio2
*soundDriver
, uint channels
);
42 virtual ~CEffectXAudio2();
43 virtual void release();
45 inline IUnknown
*getEffect() { return _Effect
; }
46 inline IXAudio2Voice
*getDryVoice() { return _DryVoice
; }
47 inline IXAudio2Voice
*getFilterVoice() { return _FilterVoice
; }
49 }; /* class CEffectXAudio2 */
52 * \brief CReverbEffectXAudio2
53 * \date 2008-09-17 17:27GMT
54 * \author Jan Boon (Kaetemi)
55 * CReverbEffectXAudio2
57 class CReverbEffectXAudio2
: public IReverbEffect
, public CEffectXAudio2
61 /// Parameters of the reverb (eax environment) effect.
62 XAUDIO2FX_REVERB_PARAMETERS _ReverbParams
;
65 CReverbEffectXAudio2(CSoundDriverXAudio2
*soundDriver
);
66 virtual ~CReverbEffectXAudio2();
67 virtual void release();
69 /// Set the environment (you have full control now, have fun)
70 virtual void setEnvironment(const CEnvironment
&environment
= CEnvironment(), float roomSize
= 100.0f
);
72 }; /* class CReverbEffectXAudio2 */
74 } /* namespace NLSOUND */
76 #endif /* #ifndef NLSOUND_EFFECT_XAUDIO2_H */