home *** CD-ROM | disk | FTP | other *** search
/ Game Audio Programming / GameAudioProgramming.iso / Game_Audio / audio_sdk / src / AudioLib / Extensions.h < prev    next >
Encoding:
C/C++ Source or Header  |  2002-07-19  |  2.9 KB  |  110 lines

  1. /***********************************************************\
  2. Copyright (C) James Boer, 2002. 
  3. All rights reserved worldwide.
  4.  
  5. This software is provided "as is" without express or implied
  6. warranties. You may freely copy and compile this source into
  7. applications you distribute provided that the copyright text
  8. below is included in the resulting source code, for example:
  9. "Portions Copyright (C) James Boer, 2002"
  10. \***********************************************************/
  11. #ifndef EXTENSIONS_H__
  12. #define EXTENSIONS_H__
  13.  
  14. #define INITGUID
  15. #include "Audio.h"
  16. #undef INITGUID
  17.  
  18. namespace Audio
  19. {
  20.  
  21. class EAXListener : public IEAXListener
  22. {
  23. public:
  24.     void SetRoom(int32 iRoom);
  25.     void SetRoomHF(int32 iRoomHF);
  26.     void SetRoomRolloffFactor(float fRoomRolloffFactor);
  27.     void SetDecayTime(float fDecayTime);
  28.     void SetDecayHFRatio(float fDecayHFRatio);
  29.     void SetReflections(int32 iReflections);
  30.     void SetReflectionsDelay(float fReflectionsDelay);
  31.     void SetReverb(int32 iReverb);
  32.     void SetReverbDelay(float fReverbDelay);
  33.     void SetEnvironment(uint32 nEnvironment);
  34.     void SetEnvironmentSize(float fEnvironmentSize);
  35.     void SetEnvironmentDiffusion(float fEnvironmentDiffusion);
  36.     void SetAirAbsorptionHF(float fAirAbsorption);
  37.     void SetFlags(uint32 nFlags);
  38.     void SetProperties(const EAXListenerProps& props);
  39.     void GetProperties(EAXListenerProps& props);
  40.  
  41. public:
  42.     EAXListener();
  43.     bool OnLoad(IUnknown* pUnknown);
  44.     bool OnUnload();
  45.     void Term();
  46.  
  47. private:
  48.     IKsPropertySet*        m_pPropertySet;
  49. };
  50.  
  51. class EAXBuffer : public IEAXBuffer
  52. {
  53. public:
  54.     void SetDirect(int32 iDirect);
  55.     void SetDirectHF(int32 iDirectHF);
  56.     void SetRoom(int32 iRoom);
  57.     void SetRoomHF(int32 iRoomHF);
  58.     void SetRoomRolloffFactor(float fRoomRolloffFactor);
  59.     void SetObstruction(int32 iObstruction);
  60.     void SetObstructionLFRatio(float fObstructionLFRatio);
  61.     void SetOcclusion(int32 iOcclusion);
  62.     void SetOcclusionLFRatio(float fOcclusionLFRatio);
  63.     void SetOcclusionRoomRatio(float fOcclusionRoomRatio);
  64.     void SetOutsideVolumeHF(int32 iOutsideVolumeHF);
  65.     void SetAirAbsorptionFactor(float fAirAbsorptionFactor);
  66.     void SetFlags(uint32 nFlags);
  67.     void SetProperties(const EAXBufferProps& props);
  68.     void GetProperties(EAXBufferProps& props);
  69.  
  70. public:
  71.     EAXBuffer();
  72.     void Clear();
  73.     bool OnLoad(IUnknown* pUnknown);
  74.     bool OnUnload();
  75.     void Term();
  76.  
  77. private:
  78.     IKsPropertySet*    m_pPropertySet;
  79.     EAXBufferProps    m_Props;
  80. };
  81.  
  82.  
  83.  
  84. class ZoomFx : public IZoomFX
  85. {
  86. public:
  87.     void SetBox(const ZoomFXBox& box);
  88.     void SetOrientation(const ZoomFXOrientation& orientation);
  89.     void SetMacroFX(uint32 nMacroFX);
  90.     void SetProperties(const ZoomFXProps& props);
  91.     void GetProperties(ZoomFXProps& props);
  92. public:
  93.     ZoomFx();
  94.     void Clear();
  95.     bool OnLoad(IUnknown* pUnknown);
  96.     bool OnUnload();
  97.     void Term();
  98.  
  99. private:
  100.     IKsPropertySet*    m_pPropertySet;
  101.     ZoomFXProps    m_Props;
  102.  
  103. };
  104.  
  105.  
  106.  
  107. }; // namespace Audio
  108.  
  109. #endif // EXTENSIONS_H__
  110.