Unit dsUtil

---------------------------------------------------------------------- FILE dsUtil.pas // Copyright (C) 1995 Microsoft Corporation. All Rights Reserved. Content: Routines for dealing with sounds from resources Translated to Objetc Pascal by Andrés Lopehandía M. ----------------------------------------------------------------------

Classes

Functions

DSFillSoundBuffer - BOOL DSFillSoundBuffer(IDirectSoundBuffer *pDSB, BYTE *pbWaveData, DWORD cbWaveSize

///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// BOOL DSFillSoundBuffer(IDirectSoundBuffer *pDSB, BYTE *pbWaveData, DWORD cbWaveSize
DSGetWaveResource - BOOL DSGetWaveResource(HMODULE hModule, LPCTSTR lpName, WAVEFORMATEX **ppWaveHeader, BYTE **ppbWaveData, DWORD *pcbWaveSize

///////////////////////////////////////////////////////////////////////////// Procedure: DSGetWaveResource Original: BOOL DSGetWaveResource(HMODULE hModule, LPCTSTR lpName, WAVEFORMATEX **ppWaveHeader, BYTE **ppbWaveData, DWORD *pcbWaveSize) /////////////////////////////////////////////////////////////////////////////
DSLoadSoundBuffer - ---------------------------------------------------------------------- Procedure declarations IDirectSoundBuffer *DSLoadSoundBuffer(IDirectSound *pDS, LPCTSTR lpName

---------------------------------------------------------------------- Procedure: DSLoadSoundBuffer Original: IDirectSoundBuffer *DSLoadSoundBuffer(IDirectSound *pDS, LPCTSTR lpName) ----------------------------------------------------------------------
DSParseWaveResource - BOOL DSParseWaveResource(void *pvRes, WAVEFORMATEX **ppWaveHeader, BYTE **ppbWaveData,DWORD *pcbWaveSize

///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// BOOL DSParseWaveResource(void *pvRes, WAVEFORMATEX **ppWaveHeader, BYTE **ppbWaveData,DWORD *pcbWaveSize
DSReloadSoundBuffer - BOOL DSReloadSoundBuffer(IDirectSoundBuffer *pDSB, LPCTSTR lpName

///////////////////////////////////////////////////////////////////////////// Procedure: DSReloadSoundBuffer Original: BOOL DSReloadSoundBuffer(IDirectSoundBuffer *pDSB, LPCTSTR lpName) /////////////////////////////////////////////////////////////////////////////
SndObjCreate - SNDOBJ *SndObjCreate(IDirectSound *pDS, LPCTSTR lpName, int iConcurrent

---------------------------------------------------------------------- // SndObj functions // ----------------------------------------------------------------------
SndObjDestroy - void SndObjDestroy(SNDOBJ *pSO

///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// void SndObjDestroy(SNDOBJ *pSO
SndObjGetFreeBuffer - IDirectSoundBuffer *SndObjGetFreeBuffer(SNDOBJ *pSO

///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// IDirectSoundBuffer *SndObjGetFreeBuffer(SNDOBJ *pSO
SndObjPlay - BOOL SndObjPlay(SNDOBJ *pSO, DWORD dwPlayFlags

proc ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// BOOL SndObjPlay(SNDOBJ *pSO, DWORD dwPlayFlags
SndObjStop - BOOL SndObjStop(SNDOBJ *pSO

///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// BOOL SndObjStop(SNDOBJ *pSO

Types

HSNDOBJ
TSNDOBJ

Constants

CT_TSNDOBJ_NOALLOC
c_szWAV
MAX_BUFFER_COUNT

Variables


Functions


function DSFillSoundBuffer(var pDSB:IDirectSoundBuffer;var pbWaveData:POINTER;cbWaveSize:WORD ):boolean;

BOOL DSFillSoundBuffer(IDirectSoundBuffer *pDSB, BYTE *pbWaveData, DWORD cbWaveSize

///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// BOOL DSFillSoundBuffer(IDirectSoundBuffer *pDSB, BYTE *pbWaveData, DWORD cbWaveSize


function DSGetWaveResource(Module:HMODULE; lpName:string; var ppWaveHeader:PWAVEFORMATEX; var ppbWaveData:POINTER; var pcbWaveSize:DWORD ):boolean;

BOOL DSGetWaveResource(HMODULE hModule, LPCTSTR lpName, WAVEFORMATEX **ppWaveHeader, BYTE **ppbWaveData, DWORD *pcbWaveSize

///////////////////////////////////////////////////////////////////////////// Procedure: DSGetWaveResource Original: BOOL DSGetWaveResource(HMODULE hModule, LPCTSTR lpName, WAVEFORMATEX **ppWaveHeader, BYTE **ppbWaveData, DWORD *pcbWaveSize) /////////////////////////////////////////////////////////////////////////////


function DSLoadSoundBuffer(var pDS:IDirectSound;lpName:string ):IDirectSoundBuffer;

---------------------------------------------------------------------- Procedure declarations IDirectSoundBuffer *DSLoadSoundBuffer(IDirectSound *pDS, LPCTSTR lpName

---------------------------------------------------------------------- Procedure: DSLoadSoundBuffer Original: IDirectSoundBuffer *DSLoadSoundBuffer(IDirectSound *pDS, LPCTSTR lpName) ----------------------------------------------------------------------


function DSParseWaveResource(pvRes:pointer; var ppWaveHeader:PWAVEFORMATEX; var ppbWaveData:POINTER; var pcbWaveSize:DWORD):boolean;

BOOL DSParseWaveResource(void *pvRes, WAVEFORMATEX **ppWaveHeader, BYTE **ppbWaveData,DWORD *pcbWaveSize

///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// BOOL DSParseWaveResource(void *pvRes, WAVEFORMATEX **ppWaveHeader, BYTE **ppbWaveData,DWORD *pcbWaveSize


function DSReloadSoundBuffer(var pDSB:IDirectSoundBuffer;lpName:string):boolean;

BOOL DSReloadSoundBuffer(IDirectSoundBuffer *pDSB, LPCTSTR lpName

///////////////////////////////////////////////////////////////////////////// Procedure: DSReloadSoundBuffer Original: BOOL DSReloadSoundBuffer(IDirectSoundBuffer *pDSB, LPCTSTR lpName) /////////////////////////////////////////////////////////////////////////////


function SndObjCreate(var pDS:IDirectSound; lpName:string; iConcurrent:integer):TSNDOBJ;

SNDOBJ *SndObjCreate(IDirectSound *pDS, LPCTSTR lpName, int iConcurrent

---------------------------------------------------------------------- // SndObj functions // ----------------------------------------------------------------------


procedure SndObjDestroy(pSO:TSNDOBJ);

void SndObjDestroy(SNDOBJ *pSO

///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// void SndObjDestroy(SNDOBJ *pSO


function SndObjGetFreeBuffer( pSO:TSNDOBJ):IDirectSoundBuffer;

IDirectSoundBuffer *SndObjGetFreeBuffer(SNDOBJ *pSO

///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// IDirectSoundBuffer *SndObjGetFreeBuffer(SNDOBJ *pSO


function SndObjPlay(pSO:TSNDOBJ;dwPlayFlags:DWORD ):boolean;

BOOL SndObjPlay(SNDOBJ *pSO, DWORD dwPlayFlags

proc ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// BOOL SndObjPlay(SNDOBJ *pSO, DWORD dwPlayFlags


function SndObjStop(pSO:TSNDOBJ):boolean;

BOOL SndObjStop(SNDOBJ *pSO

///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// BOOL SndObjStop(SNDOBJ *pSO


Types


HSNDOBJ=^TSNDOBJ
list of buffers
TSNDOBJ = record
pbWaveData : POINTER;
cbWaveSize : DWORD;
iAlloc : integer;
iCurrent : integer;
Buffers : array [0..MAX_BUFFER_COUNT] of IDirectSoundBuffer;
end;
---------------------------------------------------------------------- Structures and types

Constants

CT_TSNDOBJ_NOALLOC = -1

c_szWAV = 'WAV'

---------------------------------------------------------------------- Constants

MAX_BUFFER_COUNT = 4

Max Number of sound buffers Aviable in TSNDOBJ

Variables