dsfuncs.cpp
来自「一個遊戲教程」· C++ 代码 · 共 59 行
CPP
59 行
//DSFuncs.cpp
#include "DSFuncs.h"
////////////////////////////////////////////////////
//LPDSB Functions
////////////////////////////////////////////////////
LPDIRECTSOUNDBUFFER LPDSB_LoadFromFile(LPDIRECTSOUND lpds,LPCTSTR lpszFileName)
{
//declare buffer pointer
LPDIRECTSOUNDBUFFER lpdsb=NULL;
//load wav file
CWAVLoader wav;
wav.Load(lpszFileName);
//set up buffer description
DSBUFFERDESC dsbd;
memset(&dsbd,0,sizeof(DSBUFFERDESC));
//size
dsbd.dwSize=sizeof(DSBUFFERDESC);
//flags
dsbd.dwFlags=DSBCAPS_LOCSOFTWARE;
//length and sound format
dsbd.dwBufferBytes=wav.GetLength();
dsbd.lpwfxFormat=wav.GetFormat();
//create buffer
lpds->CreateSoundBuffer(&dsbd,&lpdsb,NULL);
DWORD buflen,buflen2;
void* bufptr;
//lock entire buffer
lpdsb->Lock(0,0,&bufptr,&buflen,NULL,&buflen2,DSBLOCK_ENTIREBUFFER);
//copy from wave loader to sound buffer
memcpy(bufptr,wav.GetData(),wav.GetLength());
//unlock the buffer
lpdsb->Unlock(bufptr,buflen,NULL,buflen2);
//return the new buffer
return(lpdsb);
}
void LPDSB_Release(LPDIRECTSOUNDBUFFER* lplpdsb)
{
//safe release
if(*lplpdsb)
{
(*lplpdsb)->Release();
(*lplpdsb)=NULL;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?