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

📄 mcsound.h

📁 国外网游源码....除工具源码缺少之外,其余程序都全...至于,什么游戏,因为国内还没有,所以找不到测试
💻 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 + -