📄 mcsound.h
字号:
// SoundManager.h: interface for the CSoundManager class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_MCSOUND_H__22C0B133_6F75_4301_A7B2_3BAE01FD7F97__INCLUDED_)
#define AFX_MCSOUND_H__22C0B133_6F75_4301_A7B2_3BAE01FD7F97__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define MAX_SOUND 100
#define MAX_MUSIC 20
#define DOPPLER_BASE 1.0f
#define ROLLOFF_BASE 1.0f
#define DISTANCEMIN 1.0f
#define DISTANCEMAX 10.0f
class CBaseSound
{
public:
CBaseSound(char *strFileName);
CBaseSound( CBaseSound& in );
virtual ~CBaseSound();
void CreateBaseSound();
VOID OpenSoundFile(char *strFileName);
VOID OpenSoundFile( CBaseSound& in);
VOID Set3DParameters( FLOAT fDopplerFactor, FLOAT fRolloffFactor,FLOAT fMinDistance,FLOAT fMaxDistance);
VOID SetObjectProperties( D3DVECTOR* pvPosition, D3DVECTOR* pvVelocity);
void SetVolume(LONG Volume);
BOOL IsPlaying();
HRESULT OnPlaySound(int LoopType, D3DXVECTOR3 pvMyPosition = D3DXVECTOR3(0.0f, 0.0f, 0.0f), D3DXVECTOR3 pvSoundPosition = D3DXVECTOR3(0.0f, 0.0f, 0.0f), D3DXVECTOR3 pvMyDir = D3DXVECTOR3(0.0f, 0.0f, 0.0f), D3DXVECTOR3 pvVelocity = D3DXVECTOR3(0.0f, 0.0f, 0.0f));
HRESULT OnStopSound();
public:
CSoundManager* m_pSndManager;
// CWaveFile waveFile;
CSound* m_pSound;
LPDIRECTSOUND3DBUFFER m_pDS3DBuffer; // 3D sound buffer
LPDIRECTSOUND3DLISTENER m_pDSListener; // 3D listener object
DS3DBUFFER m_dsBufferParams; // 3D buffer properties
DS3DLISTENER m_dsListenerParams; // Listener properties
BOOL m_bDeferSettings;
LONG m_lVolume;
};
class CMCSound
{
public:
CMCSound();
virtual ~CMCSound();
void CreateSound(char *szListFileName);
void LoadEffectSoundPath(char *strListFileName);
// BOOL AddSound( int nIndex, char * szFileName );
BOOL IsPlaySound( int nIndex );
void PlaySound( int nIndex, int iLoop, D3DXVECTOR3 pvMyPosition = D3DXVECTOR3(0.0f, 0.0f, 0.0f), D3DXVECTOR3 pvSoundPosition = D3DXVECTOR3(0.0f, 0.0f, 0.0f), D3DXVECTOR3 pvMyDir = D3DXVECTOR3(0.0f, 0.0f, 0.0f), D3DXVECTOR3 pvVelocity = D3DXVECTOR3(0.0f, 0.0f, 0.0f));
void StopSound( int nIndex );
void DeleteSound( int nIndex );
void SetSoundVolume(LONG lVolume );
void MuteSound();
void ResumeSound();
public:
vector <CBaseSound *> m_pSoundBuffer[MAX_SOUND];
char m_strSoundListPath[MAX_SOUND][256];
LONG m_lCurrentVolume;
int m_iTotalSoundNum;
};
class CMCMusicBase
{
public:
CMCMusicBase();
virtual ~CMCMusicBase();
void LoadBGMPath(char *strListFileName);
// HRESULT CreateMusic(WCHAR* FileName);
HRESULT CreateMusic(char *strListFileName);
HRESULT SwapSourceFilter(WCHAR* FileName);
void PlayMusic(int index, bool Loop);
void StopMusic();
void ResetMusic();
HRESULT MuteAudio(void);
void SetVolume(long Volume);
HRESULT ResumeAudio(void);
public:
IGraphBuilder *m_pGraphBuilder;
IMediaControl *m_pMediaControl;
IMediaSeeking *m_pMediaSeeking;
IBaseFilter *m_pSourceCurrent;
IBaseFilter *m_pSourceNext;
IBasicAudio *m_pBA;
IMediaEventEx *m_pME;
long m_iCurrentVolume;
char m_strMusicListPath[MAX_MUSIC][256];
int m_iTotalMusicNum;
};
#endif // !defined(AFX_MCSOUND_H__22C0B133_6F75_4301_A7B2_3BAE01FD7F97__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -