?? effect.cpp
字號:
// Effect.cpp: implementation of the CEffect class.
//
//////////////////////////////////////////////////////////////////////
#include "Effect.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
namespace AudioEngine {
CEffect::CEffect()
{
}
CEffect::~CEffect()
{
}
void CChorusEffect::SetAllParameters(IDirectMusicAudioPath8 *audiopath)
{
HRESULT hr;
IDirectSoundFXChorus8* effect = NULL;
// get the effect's interface
hr = audiopath->GetObjectInPath(DMUS_PCHANNEL_ALL,
DMUS_PATH_BUFFER_DMO, 0, GUID_All_Objects, 0, IID_IDirectSoundFXChorus8,
(LPVOID*) &effect);
ThrowIfFailed(hr, "CChorusEffect::SetAllParameters(): couldn't get effect interface.");
// set the effect's params
hr = effect->SetAllParameters(&m_Params);
// release the effect's interface
SAFE_RELEASE(effect);
}
void CCompressorEffect::SetAllParameters(IDirectMusicAudioPath8 *audiopath)
{
HRESULT hr;
IDirectSoundFXCompressor8* effect = NULL;
// get the effect's interface
hr = audiopath->GetObjectInPath(DMUS_PCHANNEL_ALL,
DMUS_PATH_BUFFER_DMO, 0, GUID_All_Objects, 0, IID_IDirectSoundFXCompressor8,
(LPVOID*) &effect);
ThrowIfFailed(hr, "CCompressorEffect::SetAllParameters(): couldn't get effect interface.");
// set the effect's params
hr = effect->SetAllParameters(&m_Params);
// release the effect's interface
SAFE_RELEASE(effect);
}
void CDistortionEffect::SetAllParameters(IDirectMusicAudioPath8 *audiopath)
{
HRESULT hr;
IDirectSoundFXDistortion8* effect = NULL;
// get the effect's interface
hr = audiopath->GetObjectInPath(DMUS_PCHANNEL_ALL,
DMUS_PATH_BUFFER_DMO, 0, GUID_All_Objects, 0, IID_IDirectSoundFXDistortion8,
(LPVOID*) &effect);
ThrowIfFailed(hr, "CDistortionEffect::SetAllParameters(): couldn't get effect interface.");
// set the effect's params
hr = effect->SetAllParameters(&m_Params);
// release the effect's interface
SAFE_RELEASE(effect);
}
void CEchoEffect::SetAllParameters(IDirectMusicAudioPath8 *audiopath)
{
HRESULT hr;
IDirectSoundFXEcho8* effect = NULL;
// get the effect's interface
hr = audiopath->GetObjectInPath(DMUS_PCHANNEL_ALL,
DMUS_PATH_BUFFER_DMO, 0, GUID_All_Objects, 0, IID_IDirectSoundFXEcho8,
(LPVOID*) &effect);
ThrowIfFailed(hr, "CEchoEffect::SetAllParameters(): couldn't get effect interface.");
// set the effect's params
hr = effect->SetAllParameters(&m_Params);
// release the effect's interface
SAFE_RELEASE(effect);
}
void CFlangeEffect::SetAllParameters(IDirectMusicAudioPath8 *audiopath)
{
HRESULT hr;
IDirectSoundFXFlanger8* effect = NULL;
// get the effect's interface
hr = audiopath->GetObjectInPath(DMUS_PCHANNEL_ALL,
DMUS_PATH_BUFFER_DMO, 0, GUID_All_Objects, 0, IID_IDirectSoundFXFlanger8,
(LPVOID*) &effect);
ThrowIfFailed(hr, "CFlangeEffect::SetAllParameters(): couldn't get effect interface.");
// set the effect's params
hr = effect->SetAllParameters(&m_Params);
// release the effect's interface
SAFE_RELEASE(effect);
}
void CGargleEffect::SetAllParameters(IDirectMusicAudioPath8 *audiopath)
{
HRESULT hr;
IDirectSoundFXGargle8* effect = NULL;
// get the effect's interface
hr = audiopath->GetObjectInPath(DMUS_PCHANNEL_ALL,
DMUS_PATH_BUFFER_DMO, 0, GUID_All_Objects, 0, IID_IDirectSoundFXGargle8,
(LPVOID*) &effect);
ThrowIfFailed(hr, "CGargleEffect::SetAllParameters(): couldn't get effect interface.");
// set the effect's params
hr = effect->SetAllParameters(&m_Params);
// release the effect's interface
SAFE_RELEASE(effect);
}
void CParamEqEffect::SetAllParameters(IDirectMusicAudioPath8 *audiopath)
{
HRESULT hr;
IDirectSoundFXParamEq8* effect = NULL;
// get the effect's interface
hr = audiopath->GetObjectInPath(DMUS_PCHANNEL_ALL,
DMUS_PATH_BUFFER_DMO, 0, GUID_All_Objects, 0, IID_IDirectSoundFXParamEq8,
(LPVOID*) &effect);
ThrowIfFailed(hr, "CParamEqEffect::SetAllParameters(): couldn't get effect interface.");
// set the effect's params
hr = effect->SetAllParameters(&m_Params);
// release the effect's interface
SAFE_RELEASE(effect);
}
void CWavesReverbEffect::SetAllParameters(IDirectMusicAudioPath8 *audiopath)
{
HRESULT hr;
IDirectSoundFXWavesReverb8* effect = NULL;
// get the effect's interface
hr = audiopath->GetObjectInPath(DMUS_PCHANNEL_ALL,
DMUS_PATH_BUFFER_DMO, 0, GUID_All_Objects, 0, IID_IDirectSoundFXWavesReverb8,
(LPVOID*) &effect);
ThrowIfFailed(hr, "CWavesReverbEffect::SetAllParameters(): couldn't get effect interface.");
// set the effect's params
hr = effect->SetAllParameters(&m_Params);
// release the effect's interface
SAFE_RELEASE(effect);
}
void CI3DL2Effect::SetAllParameters(IDirectMusicAudioPath8 *audiopath)
{
HRESULT hr;
IDirectSoundFXI3DL2Reverb8* effect = NULL;
// get the effect's interface
hr = audiopath->GetObjectInPath(DMUS_PCHANNEL_ALL,
DMUS_PATH_BUFFER_DMO, 0, GUID_All_Objects, 0, IID_IDirectSoundFXI3DL2Reverb8,
(LPVOID*) &effect);
ThrowIfFailed(hr, "CI3DL2Effect::SetAllParameters(): couldn't get effect interface.");
// if they've set up a preset, apply that.
if (m_Preset != -1) {
hr = effect->SetPreset(m_Preset);
ThrowIfFailed(hr, "CI3DL2Effect::SetPreset(): can't set environment preset.");
}
else {
// set the effect's params
hr = effect->SetAllParameters(&m_Params);
}
// release the effect's interface
SAFE_RELEASE(effect);
}
void CI3DL2Effect::SetPreset(DWORD i3dl2preset)
{
m_Preset = i3dl2preset;
ZeroMemory(&m_Params, sizeof(DSFXI3DL2Reverb));
}
} // namespace
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -