www.pudn.com > 林海血原源代码.zip > Audio.h
// Audio.h: interface for the CAudio class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_AUDIO_H__C59411DC_4F55_40AF_945A_7157AAE6F15B__INCLUDED_) #define AFX_AUDIO_H__C59411DC_4F55_40AF_945A_7157AAE6F15B__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 include#include #define INIT_GUID #define LPDIRECTMUSICLOADER8 IDirectMusicLoader8* #define LPDIRECTMUSICPERFORMANCE8 IDirectMusicPerformance8* #define LPDIRECTMUSICSEGMENT8 IDirectMusicSegment8* #define LPDIRECTMUSICAUDIOPATH IDirectMusicAudioPath* #define LPDIRECTCSound3DBUFFER IDirectSound3DBuffer* #define LPDIRECTCSound3DLISTENER IDirectSound3DListener* class CSound { public: LPDIRECTMUSICSEGMENT8 dmSegment; LPDIRECTCSound3DBUFFER ds3DBuffer; bool is3DSound; void Set3DPos(float x, float y, float z); void Set3DDistances(float minDistance, float maxDistance); void Shutdown(void); CSound() : dmSegment(NULL), ds3DBuffer(NULL), is3DSound(false) { } ~CSound() { } }; class CAudio { protected: LPDIRECTMUSICLOADER8 dmLoader; // the loader LPDIRECTMUSICPERFORMANCE8 dmPerformance; // the performance LPDIRECTMUSICAUDIOPATH dm3DAudioPath; // the audiopath LPDIRECTCSound3DLISTENER ds3DListener; // 3d listener DS3DLISTENER dsListenerParams; // 3d listener properties ////////////////////////////////// CSound *pSound; unsigned int m_MaxNum;//max number of CSound object public: bool Init(HWND hwnd,unsigned int MaxNumber); void Shutdown(void); bool Create(unsigned int NumOfSound, char* filename, bool is3DSound); void Play(unsigned int NumOfSound, DWORD numRepeats); void Stop(unsigned int NumOfSound); void SetListenerPos(float x, float y, float z); void SetListenerRolloff(float rolloff); void SetListenerOrientation(float forwardX, float forwardY, float forwardZ, float topX, float topY, float topZ); CAudio(): dm3DAudioPath(NULL), dmLoader(NULL), dmPerformance(NULL), ds3DListener(NULL),pSound(NULL),m_MaxNum(0) { } virtual ~CAudio() { } }; #endif // !defined(AFX_AUDIO_H__C59411DC_4F55_40AF_945A_7157AAE6F15B__INCLUDED_)