Audio.h
上传用户:hkb425
上传日期:2007-06-16
资源大小:34191k
文件大小:2k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. // Audio.h: interface for the CAudio class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_AUDIO_H__C59411DC_4F55_40AF_945A_7157AAE6F15B__INCLUDED_)
  5. #define AFX_AUDIO_H__C59411DC_4F55_40AF_945A_7157AAE6F15B__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. include <dmusicc.h>
  10. #include <dmusici.h>
  11. #define INIT_GUID
  12. #define LPDIRECTMUSICLOADER8   IDirectMusicLoader8*
  13. #define LPDIRECTMUSICPERFORMANCE8 IDirectMusicPerformance8*
  14. #define LPDIRECTMUSICSEGMENT8   IDirectMusicSegment8*
  15. #define LPDIRECTMUSICAUDIOPATH   IDirectMusicAudioPath*
  16. #define LPDIRECTCSound3DBUFFER   IDirectSound3DBuffer*
  17. #define LPDIRECTCSound3DLISTENER   IDirectSound3DListener*
  18. class CSound
  19. {
  20. public:
  21. LPDIRECTMUSICSEGMENT8 dmSegment;
  22. LPDIRECTCSound3DBUFFER ds3DBuffer;
  23. bool is3DSound;
  24. void Set3DPos(float x, float y, float z);
  25. void Set3DDistances(float minDistance, float maxDistance);
  26. void Shutdown(void);
  27. CSound() : dmSegment(NULL),  ds3DBuffer(NULL), is3DSound(false) 
  28. { }
  29. ~CSound() 
  30. { }
  31. };
  32. class CAudio  
  33. {
  34. protected:
  35. LPDIRECTMUSICLOADER8   dmLoader; // the loader
  36. LPDIRECTMUSICPERFORMANCE8 dmPerformance; // the performance
  37. LPDIRECTMUSICAUDIOPATH    dm3DAudioPath; // the audiopath
  38. LPDIRECTCSound3DLISTENER   ds3DListener; // 3d listener
  39. DS3DLISTENER dsListenerParams; // 3d listener properties
  40.     //////////////////////////////////
  41. CSound  *pSound;
  42. unsigned int m_MaxNum;//max number of CSound object
  43. public:
  44. bool Init(HWND hwnd,unsigned int MaxNumber);
  45. void Shutdown(void);
  46. bool Create(unsigned int NumOfSound, char* filename, bool is3DSound);
  47. void Play(unsigned int NumOfSound, DWORD numRepeats);
  48. void Stop(unsigned int NumOfSound);
  49. void SetListenerPos(float x, float y, float z);
  50. void SetListenerRolloff(float rolloff);
  51. void SetListenerOrientation(float forwardX, float forwardY, float forwardZ, float topX, float topY, float topZ);
  52. CAudio(): dm3DAudioPath(NULL), dmLoader(NULL), dmPerformance(NULL), 
  53.          ds3DListener(NULL),pSound(NULL),m_MaxNum(0)
  54. {  }
  55. virtual ~CAudio()
  56. {  }
  57. };
  58. #endif // !defined(AFX_AUDIO_H__C59411DC_4F55_40AF_945A_7157AAE6F15B__INCLUDED_)