⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 effect.h

📁 游戏音频程序设计-Beginning.Game.Audio.Programming
💻 H
字号:
// 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -