effect.h

来自「游戏音频程序设计-Beginning.Game.Audio.Programmin」· C头文件 代码 · 共 125 行

H
125
字号
// Effect.h: interface for the CEffect class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_EFFECT_H__CADEF547_F33E_4F4D_B538_AF574055CF97__INCLUDED_)
#define AFX_EFFECT_H__CADEF547_F33E_4F4D_B538_AF574055CF97__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <dmusicc.h>
#include <dmusici.h>
#include <dsound.h>
#include <dxutil.h>

#include "ErrorHandling.h"

namespace AudioEngine {

class CEffect  
{
public:
	CEffect();
	virtual ~CEffect();

  virtual GUID GetGuid() = 0;

  virtual void SetAllParameters(IDirectMusicAudioPath8 *audiopath) = 0;

};

class CChorusEffect : public CEffect
{
public:
  CChorusEffect() { ZeroMemory(&m_Params, sizeof(DSFXChorus)); }
  virtual ~CChorusEffect() { }
  virtual void SetAllParameters(IDirectMusicAudioPath8 *audiopath);
  virtual GUID GetGuid() { return(GUID_DSFX_STANDARD_CHORUS); }

  DSFXChorus m_Params;
};

class CCompressorEffect : public CEffect
{
public:
  CCompressorEffect() { ZeroMemory(&m_Params, sizeof(DSFXCompressor)); }
  virtual ~CCompressorEffect() { }
  virtual void SetAllParameters(IDirectMusicAudioPath8 *audiopath);
  virtual GUID GetGuid() { return(GUID_DSFX_STANDARD_COMPRESSOR); }

  DSFXCompressor m_Params;
};

class CDistortionEffect : public CEffect
{
public:
  CDistortionEffect() { ZeroMemory(&m_Params, sizeof(DSFXDistortion)); }
  virtual ~CDistortionEffect() { }
  virtual void SetAllParameters(IDirectMusicAudioPath8 *audiopath);
  virtual GUID GetGuid() { return(GUID_DSFX_STANDARD_DISTORTION); }

  DSFXDistortion m_Params;
};

class CEchoEffect : public CEffect
{
public:
  CEchoEffect() { ZeroMemory(&m_Params, sizeof(DSFXEcho)); }
  virtual ~CEchoEffect() { }
  virtual void SetAllParameters(IDirectMusicAudioPath8 *audiopath);
  virtual GUID GetGuid() { return(GUID_DSFX_STANDARD_ECHO); }

  DSFXEcho m_Params;
};

class CFlangeEffect : public CEffect
{
public:
  CFlangeEffect() { ZeroMemory(&m_Params, sizeof(DSFXFlanger)); }
  virtual ~CFlangeEffect() { }
  virtual void SetAllParameters(IDirectMusicAudioPath8 *audiopath);
  virtual GUID GetGuid() { return(GUID_DSFX_STANDARD_FLANGER); }

  DSFXFlanger m_Params;
};

class CGargleEffect : public CEffect
{
public:
  CGargleEffect() { ZeroMemory(&m_Params, sizeof(DSFXGargle)); }
  virtual ~CGargleEffect() { }
  virtual void SetAllParameters(IDirectMusicAudioPath8 *audiopath);
  virtual GUID GetGuid() { return(GUID_DSFX_STANDARD_GARGLE); }

  DSFXGargle m_Params;
};

class CParamEqEffect : public CEffect
{
public:
  CParamEqEffect() { ZeroMemory(&m_Params, sizeof(DSFXParamEq)); }
  virtual ~CParamEqEffect() { }
  virtual void SetAllParameters(IDirectMusicAudioPath8 *audiopath);
  virtual GUID GetGuid() { return(GUID_DSFX_STANDARD_PARAMEQ); }

  DSFXParamEq m_Params;
};

class CWavesReverbEffect : public CEffect
{
public:
  CWavesReverbEffect() { ZeroMemory(&m_Params, sizeof(DSFXWavesReverb)); }
  virtual ~CWavesReverbEffect() { }
  virtual void SetAllParameters(IDirectMusicAudioPath8 *audiopath);
  virtual GUID GetGuid() { return(GUID_DSFX_WAVES_REVERB); }

  DSFXWavesReverb m_Params;
};


} // namespace

#endif // !defined(AFX_EFFECT_H__CADEF547_F33E_4F4D_B538_AF574055CF97__INCLUDED_)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?