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

📄 soundlib.h

📁 墨香最新私服
💻 H
字号:

// The following ifdef block is the standard way of creating macros which make exporting 
// from a DLL simpler. All files within this DLL are compiled with the SOUNDLIB_EXPORTS
// symbol defined on the command line. this symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see 
// SOUNDLIB_API functions as being imported from a DLL, wheras this DLL sees symbols
// defined with this macro as being exported.
/*
	哭颊 谅钎拌.
	x绰 坷弗率, y绰 困, z绰 菊捞扼 啊沥茄促.
*/
#ifndef	_SoundLib_h_
#define	_SoundLib_h_


#ifdef SOUNDLIB_EXPORTS
#define SOUNDLIB_API extern "C" __declspec(dllexport)
#else
#define SOUNDLIB_API extern "C" __declspec(dllimport)
#endif

#include <windows.h>
#include "../4DyuchiGRX_common/typedef.h"


enum	SOUND_3D_DRIVER
{
	SOUND_DRIVER_TYPE_NONE,
	SOUND_DRIVER_TYPE_EAX3,
	SOUND_DRIVER_TYPE_EAX2,
	SOUND_DRIVER_TYPE_EAX1,
	SOUND_DRIVER_TYPE_DS3DHW,
	SOUND_DRIVER_TYPE_DS3DSW,
	SOUND_DRIVER_TYPE_MILES,
	SOUND_DRIVER_TYPE_DOLBY
};

enum	SOUND_SPEAKER_TYPE
{
	SOUND_SPEAKER_TYPE_STEREO,			// 老馆利牢 2眉澄.
	SOUND_SPEAKER_TYPE_HEADPHONE,		// 庆靛迄, 荤款靛墨靛狼 辆幅俊 蝶扼 庆靛迄 骏橇殿捞 累悼茄促.
	SOUND_SPEAKER_TYPE_4CH,				// 4眉澄 器瘤寂醋.
	SOUND_SPEAKER_TYPE_6CH,				// 5.1眉澄 器瘤寂醋.
	SOUND_SPEAKER_TYPE_8CH,				// 7.1眉澄 器瘤寂醋. 橇肺叼瘤7.1 殿俊辑 瘤盔等促.
	SOUND_SPEAKER_TYPE_UNKNOWN			// miles俊辑 辑扼款靛屈捞鄂吧 瘤盔窍绰单 购瘤 葛抚. 
};

typedef		void*	SOUND_FILE_HANDLE;

// IMilesSoundLib::GetLastError 肺 府畔登绰 俊矾蔼.
enum SOUND_ERROR_CODE
{
	SOUND_ERROR_NOERROR,
	SOUND_ERROR_ALREADY_INITIALIZED,
	SOUND_ERROR_INVALID_ARGUMENT,
	SOUND_ERROR_MILES_STARTUP_FAILED,
	SOUND_ERROR_BGMDRIVER_STARTUP_FAILED,			// Init吝 荤款靛 墨靛啊 绝阑 版快 捞 皋矫瘤甫 郴绊 脾绢唱柯促.
	SOUND_ERROR_3DDRIVER_STARTUP_FAILED,			// Init吝 3D 靛扼捞滚甫 给茫栏搁 俊矾甫 辰促. 捞凡 版快啊 乐阑鳖?
	SOUND_ERROR_BGMDRIVER_NOT_LOADED,
	SOUND_ERROR_UNABLE_OPEN_FILE,
	SOUND_ERROR_OUT_OF_MAX_FILE_COUNT,
	SOUND_ERROR_OUT_OF_MAX_EFFECT_COUNT
};

struct	ISoundEffect
{
	virtual	void	_stdcall	Play( BOOL bLoop)=0;
	/*
		荤款靛 犁积.
		
		BOOL	bLoop     捞巴捞 TRUE搁 风橇甫 捣促.

		汲沥等 困摹, 汲沥等 杭俘, 汲沥等 max,min阑 官帕栏肺 家府甫 犁积茄促.
		郴何利栏肺绰 Play 窍绰 鉴埃 Miles狼 基敲苞 颇老阑 楷搬矫虐绊 start 茄促.
	*/
	virtual void	_stdcall	Stop(void)=0;
	/*
		家府甫 沥瘤矫挪促.
		郴何利栏肺绰 Stop 窍绰 鉴埃 家府甫 end 矫虐绊 Miles狼 基敲阑 副府令 茄促.
	*/

	virtual	void	_stdcall	SetMaxMinDistance( float fMaxDist, float fMinDist)=0;
	/*
		家府啊 甸府绰 弥措 芭府, 弥家 芭府甫 持绰促.

		float fMaxDist			// 弥措 芭府. 
		float fMinDist			// 弥家 芭府. 芭府 0何磐 捞 芭府鳖瘤绰 杭俘捞 临绢甸瘤 臼绰促.

		fMinDist客 fMaxDist绰 傍何甫 粱 窍芭唱 矫青馒坷甫 稗绢啊搁辑 技泼 秦具且 淀.
	*/

	virtual	void	_stdcall	SetPosition( VECTOR3* pPosition)=0;
	/*
		捞棋飘狼 困摹甫 汲沥茄促.

		VECTOR3* pPosition			岿靛俊辑狼 捞棋飘狼 谅钎甫 汲沥茄促.

		SetPosition阑 且 版快, IMilesSoundLib::SetListener 俊辑 汲沥茄 墨皋扼甫 曼绊秦辑 墨皋扼俊 惑措利牢 困摹甫 技泼 茄促.
	*/

	virtual	void	_stdcall	SetRelativePosition( VECTOR3* pPosition)=0;
	/*
		捞棋飘狼 惑措利 困摹甫 汲沥茄促.

		VECTOR3* pPosition			墨皋扼俊辑狼 惑措 困摹.

		SetPosition()苞 促福霸 捞巴篮 墨皋扼甫 0,0,0俊 困摹矫挪 惑怕肺 啊沥窍绊 弊 例措蔼阑 技泼窍绰 瓤苞甫 霖促.
	*/

	virtual	void	_stdcall	SetVolume( float fVolume)=0;
	/*
		杭俘阑 汲沥茄促.

		float fVolume			0.0f 何磐 1.0f 鳖瘤 杭俘阑 汲沥且 荐 乐促.
	*/
	virtual	float	_stdcall	GetVolume(void)=0;
	/*
		杭俘阑 掘绰促.
	*/

	virtual	BOOL	_stdcall	IsAlive(void)=0;
	/*
		荤款靛啊 犁积登绊 sample阑 棱绊 乐绰啊甫 府畔茄促.
	*/

	virtual	BOOL	_stdcall	IsLoop(void)=0;
	/*
		风橇 敲发捞 浘 登绢乐绰啊.?
	*/

	virtual	DWORD	_stdcall	AddRef()=0;
	virtual	DWORD	_stdcall	Release()=0;
	/*
		饭欺繁胶 墨款磐甫 猾促.
		老馆利栏肺 Release() 窍绰 鉴埃 饭欺繁胶墨款磐啊 0捞 登搁辑 皋葛府俊辑 荤扼柳促.
	*/
};

struct	IMilesSoundLib
{
	virtual	SOUND_ERROR_CODE _stdcall Init(DWORD dwMaxSoundFileCount, DWORD dwMaxSoundEffectCount, char* szMilesPass, BOOL bTryEAX, BOOL bForceSoftware) = 0;// 荤款靛 皋聪历 檬扁拳.
	/*
		IMilesSoundLib阑 檬扁拳 茄促.

		DWORD	dwMaxSoundFileCount绰 弥措茄 棵妨 初阑 荐 乐绰 wav, mp3颇老狼 肮荐,
		DWORD	dwMaxSoundEffectCount绰 霸烙 按眉啊 家府甫 尘 家府 按眉 弥措 肮荐.
		char*	szMilesPass绰 付老令啊 彬妨乐绰 叼泛配府 扁夯利栏肺 "redist"捞瘤父 "miles"肺 颗扁辨..
		BOOL	bTryEAX绰 3D 靛扼捞滚甫 棱阑 锭 eax甫 矫档 窍绰啊 咯何甫 舅赴促.
		BOOL	bForceSoftware绰 家橇飘傀绢靛扼捞滚甫 碍力肺 矫档茄促. 措何盒狼 版快 己傍且 巴捞绊, 捞锭 bTryEAX绰 公矫等促.
		府畔蔼篮 喊 巩力 绝捞 己傍窍搁 SOUND_ERROR_NOERROR,
		Init啊 滴锅掳 登绰 版快 SOUND_ERROR_ALREADY_INITIALIZED,
		甸绢柯 牢磊啊 捞惑且 版快 SOUND_ERROR_INVALID_ARGUMENT,
		付老令 檬扁拳俊 角菩窍搁 SOUND_ERROR_MILES_STARTUP_FAILED,
		BGM靛扼捞滚甫 茫瘤 给且 版快, 荤款靛墨靛啊 绝促搁 SOUND_ERROR_BGMDRIVER_STARTUP_FAILED,
		3D 荤款靛 靛扼捞滚甫 棵府瘤 给窍搁 SOUND_ERROR_3DDRIVER_STARTUP_FAILED
		甫 撌绢辰促.
		捞吝 荤款靛墨靛啊 绝阑版快 甫 措厚秦 SOUND_ERROR_BGMDRIVER_STARTUP_FAILED绰 贸府秦林绊,
		唱赣瘤 俊矾绰 橇肺弊贰赣甫 茫档废. -_-;
	*/

	virtual	SOUND_3D_DRIVER		_stdcall	Get3DDriver(void)=0;
	/*
		泅犁 棱囚乐绰 3D 靛扼捞滚甫 府畔茄促.
	*/

	virtual	void				_stdcall	SetListener( VECTOR3* pPosition, VECTOR3* pAngle)=0;
	/*
		没磊狼 困摹客 焊绰 阿阑 搬沥茄促.
		VECTOR3* pPosition		 没磊狼 困摹.
		VECTOR3* pAngle			没磊啊 焊绰 阿档, radius 窜困捞促.

		茄 霸烙 橇饭烙 郴俊辑 促弗 ISoundEffect俊 SetPosition窍扁 傈俊 刚历 技泼 登绰 巴捞 钢履窍促.
	*/

	virtual	SOUND_SPEAKER_TYPE	_stdcall Get3DSpeakerType(void)=0;
	/*
		棱囚乐绰 3D driver啊 荤侩窍绰 胶乔目 硅摹狼 屈怕甫 舅酒辰促.
		捞绰 力绢魄/荤款靛 狼 绊鞭沥焊俊 乐绰 胶乔目 硅摹客 鞍阑淀.
	*/

	virtual	void				_stdcall Set3DSpeakerType( SOUND_SPEAKER_TYPE Type)=0;
	/*
		3D driver啊 荤侩窍绰 胶乔目 鸥涝阑 碍力肺 汲沥茄促.
	*/

	// BGM
	virtual	SOUND_ERROR_CODE _stdcall PlayBGM( char* szBGMFileName)=0;
	/*
		szBGMFileName栏肺 割矫等 颇老阑 归弊扼款靛肺 敲饭捞 茄促.
		
		char* szBGMFileName		俊绰 BGM颇老 捞抚阑 持绰促. .wav, .mp3殿捞 啊瓷窍促.

		己傍且 版快 SOUND_ERROR_NOERROR,
		Init啊 己傍窍瘤 给茄 版快 SOUND_ERROR_BGMDRIVER_NOT_LOADED 阑 府畔窍绊 酒公窿档 救茄促.
		颇老 捞抚捞 肋给夌阑 版快 SOUND_ERROR_UNABLE_OPEN_FILE
		阑 府畔茄促.

	*/

	virtual	void			 _stdcall StopBGM(void)=0;
	/*
		敲饭捞 登绊 乐绰 BGM阑 沥瘤茄促.
		Init啊 己傍窍瘤 救篮 惑怕俊辑 龋免登档 惑包 绝促. 
	*/

	virtual void			_stdcall SetBGMVolume( float fVolume)=0;
	/*
	 *	BGM狼 杭俘阑 汲沥茄促. 裹困绰 1.0f 俊辑 0.0f鳖瘤.
	 */

	// Sound Effect File
	virtual SOUND_ERROR_CODE _stdcall CreateSoundEffectFile( SOUND_FILE_HANDLE* pOutHandle, char* szFileName)=0;
	/*
		荤款靛 颇老俊 措茄 勤甸阑 窍唱 父电促. 积己矫狼 加档甫 困秦 荤款靛 捞棋飘绰 颇老 捞抚栏肺 官肺 积己登瘤 救栏骨肺
		颇老 勤甸阑 窍唱 父甸绊 捞 勤甸肺 荤款靛 捞棋飘甫 父电促.

		SOUND_FILE_HANDLE* pOutHandle		荤款靛 颇老 勤甸阑 罐阑 器牢磐.
		char* szFileName					且寸且 颇老 捞抚.

		己傍且 版快 SOUND_ERROR_NOERROR,
		BGM靛扼捞滚啊 棵扼啊瘤 给茄 版快(荤款靛墨靛啊 绝绰 版快 殿..) SOUND_ERROR_BGMDRIVER_NOT_LOADED,
		林绢柳 牢磊俊 巩力啊 乐阑 版快 SOUND_ERROR_INVALID_ARGUMENT,
		弥措 颇老 俺眉 肮荐甫 檬苞且 版快 SOUND_ERROR_OUT_OF_MAX_FILE_COUNT,
		林绢柳 颇老阑 凯瘤 给沁阑 版快 SOUND_ERROR_UNABLE_OPEN_FILE
		阑 府畔茄促.

		郴何利栏肺 府家胶 傍蜡啊 登骨肺 鞍篮 颇老捞抚俊 措秦 Creat甫 窍搁 固府 惯鞭 登菌带 勤甸阑 府畔窍绊,
		饭欺繁胶 墨款磐啊 1 棵扼埃促.
	*/

	virtual	void			 _stdcall ReleaseSoundEffectFile( SOUND_FILE_HANDLE hFile)=0;
	/*
		hFile肺 林绢柳 颇老阑 副府令 茄促.
		
		窍唱狼 颇老俊 措秦 勤甸捞 咯矾俺 惯鞭瞪 巴捞骨肺, 郴何利栏肺 hFile狼 饭欺繁胶 墨款磐甫 窍唱 冻绢哆赴促.
		饭欺繁胶 墨款磐啊 0捞 登绰 鉴埃 角力 皋葛府俊辑 绝绢柳促.
	*/

	virtual	SOUND_ERROR_CODE _stdcall CreateSoundEffect( ISoundEffect** ppSoundEffect, SOUND_FILE_HANDLE hSound)=0;
	/*
		hSound 颇老 勤甸阑 敲饭捞 窍绰 荤款靛 按眉甫 父电促.
		父靛绰 鉴埃 敲饭捞啊 登绰 巴篮 酒聪绊 父电 饶 罐篮 牢磐其捞胶肺 Play 秦拎具 茄促.

		ISoundEffect** ppSoundEffect		牢磐其捞胶 器牢磐.
		SOUND_FILE_HANDLE hSound			父甸妨绰 荤款靛狼 颇老 勤甸.

		己傍窍搁 SOUND_ERROR_NOERROR,
		牢磊肺 林绢柳 hSound啊 决茄 蔼捞搁 SOUND_ERROR_INVALID_ARGUMENT,
		Init锭 林绢柳 弥措 捞棋飘 肮荐甫 檬苞窍搁 SOUND_ERROR_OUT_OF_MAX_EFFECT_COUNT
		甫 府畔茄促.

		罐篮 ISoundEffect 按眉绰 瘤匡锭 ISoundEffect->Release()甫 荤侩茄促.
	*/

	virtual	void			_stdcall	Run()=0;

	virtual	DWORD			_stdcall	GetAllocatedSoundEffectCount()=0;
	/*
		泅犁 棱囚乐绰 荤款靛 捞蒲飘狼 肮荐甫 府畔茄促.

		叼滚弊侩.
	*/
	virtual	DWORD			_stdcall	GetAllocatedSoundFileCount()=0;
	/*
		泅犁 棱囚乐绰 荤款靛 颇老狼 肮荐甫 府畔茄促.

		叼滚弊侩.
	*/

	
	virtual	DWORD			_stdcall	ReleaseAllSoundEffect(void)=0;
	/*
		棱囚乐带 葛电 Effect甫 瘤款促.

		捞矫痢鳖瘤 副府令 登瘤 臼篮 Sound Effect狼 肮荐啊 府畔等促.

		愧父窍搁 捞 窃荐 静瘤 富绊 弊锭弊锭 窍唱窍唱 流立 瘤况临 巴阑 眠玫茄促.
	*/

	virtual	DWORD			_stdcall	ReleaseAllSoundFile(void)=0;
	/*
		棱囚乐带 葛电 File阑 瘤款促.

		捞矫痢鳖瘤 副府令 登瘤 臼篮 Sound Effect File狼 肮荐啊 府畔等促.

		愧父窍搁 捞 窃荐 静瘤 富绊 弊锭弊锭 窍唱窍唱 流立 瘤况临 巴阑 眠玫茄促.
	*/

	virtual	void _stdcall Delete() = 0;
	/*
		ISoundLib狼 家戈磊.

		府家胶甫 力措肺 秦力窍瘤 臼篮惑怕俊辑 龋免登搁 公矫公矫茄 牢磐反飘甸捞 吧副 巴捞府.
	*/

	virtual	void _stdcall GetErrorString( char** pszErrorString, SOUND_ERROR_CODE)=0;
	/*
		SOUND_ERROR_NOERROR 寇狼 俊矾蔼阑 罐疽阑锭 弊巴甸阑 巩磊凯肺 摹券秦霖促.
		叼滚彪侩 窃荐.
	*/

	virtual	void	_stdcall	SetMaxVoiceCount( DWORD dwMaxVoice)=0;
	virtual	DWORD	_stdcall	GetMaxVoiceCount()=0;

};


SOUNDLIB_API BOOL CreateSoundLib( IMilesSoundLib** ppISoundLib);



#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -