📄 soundlib.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 + -