Implement DirectSoundStream Suppport

Ignore the IDirectSound3DListener coding mess. It will be fix later
on... (I hope)
This commit is contained in:
RadWolfie 2017-06-08 08:42:03 -05:00
parent b6b0cf0036
commit 313d8d8591
2 changed files with 286 additions and 190 deletions

File diff suppressed because it is too large Load Diff

View File

@ -219,7 +219,7 @@ struct X_CDirectSoundBuffer
union // Offset: 0x20 union // Offset: 0x20
{ {
PVOID pMpcxBuffer; PVOID pMpcxBuffer;
IDirectSoundBuffer *EmuDirectSoundBuffer8; IDirectSoundBuffer *EmuDirectSoundBuffer;
}; };
BYTE UnknownB[0x0C]; // Offset: 0x24 BYTE UnknownB[0x0C]; // Offset: 0x24
@ -231,7 +231,8 @@ struct X_CDirectSoundBuffer
DWORD EmuLockBytes2; // Offset: 0x3C DWORD EmuLockBytes2; // Offset: 0x3C
DWORD EmuPlayFlags; // Offset: 0x40 DWORD EmuPlayFlags; // Offset: 0x40
DWORD EmuFlags; // Offset: 0x44 DWORD EmuFlags; // Offset: 0x44
IDirectSound3DBuffer *EmuDirectSound3DBuffer8; IDirectSound3DBuffer *EmuDirectSound3DBuffer;
IDirectSound3DListener *EmuDirectSound3DListener;
}; };
#define DSB_FLAG_ADPCM 0x00000001 #define DSB_FLAG_ADPCM 0x00000001
@ -340,8 +341,9 @@ class X_CDirectSoundStream
public: public:
// cached data // cached data
XTL::IDirectSoundBuffer *EmuDirectSoundBuffer8; XTL::IDirectSoundBuffer *EmuDirectSoundBuffer;
XTL::IDirectSound3DBuffer *EmuDirectSound3DBuffer8; XTL::IDirectSound3DBuffer *EmuDirectSound3DBuffer;
XTL::IDirectSound3DListener *EmuDirectSound3DListener;
PVOID EmuBuffer; PVOID EmuBuffer;
DSBUFFERDESC *EmuBufferDesc; DSBUFFERDESC *EmuBufferDesc;
PVOID EmuLockPtr1; PVOID EmuLockPtr1;
@ -943,8 +945,8 @@ HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetHeadroom)
// ****************************************************************** // ******************************************************************
HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetAllParameters) HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetAllParameters)
( (
PVOID pThis, X_CDirectSoundStream *pThis,
PVOID pUnknown, LPCDS3DBUFFER pUnknown,
DWORD dwApply DWORD dwApply
); );
@ -953,7 +955,7 @@ HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetAllParameters)
// ****************************************************************** // ******************************************************************
HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetConeAngles) HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetConeAngles)
( (
PVOID pThis, X_CDirectSoundStream *pThis,
DWORD dwInsideConeAngle, DWORD dwInsideConeAngle,
DWORD dwOutsideConeAngle, DWORD dwOutsideConeAngle,
DWORD dwApply DWORD dwApply
@ -964,7 +966,7 @@ HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetConeAngles)
// ****************************************************************** // ******************************************************************
HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetConeOutsideVolume) HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetConeOutsideVolume)
( (
PVOID pThis, X_CDirectSoundStream *pThis,
LONG lConeOutsideVolume, LONG lConeOutsideVolume,
DWORD dwApply DWORD dwApply
); );
@ -974,7 +976,7 @@ HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetConeOutsideVolume)
// ****************************************************************** // ******************************************************************
HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetMaxDistance) HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetMaxDistance)
( (
PVOID pThis, X_CDirectSoundStream *pThis,
D3DVALUE fMaxDistance, D3DVALUE fMaxDistance,
DWORD dwApply DWORD dwApply
); );
@ -984,7 +986,7 @@ HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetMaxDistance)
// ****************************************************************** // ******************************************************************
HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetMinDistance) HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetMinDistance)
( (
PVOID pThis, X_CDirectSoundStream *pThis,
D3DVALUE fMinDistance, D3DVALUE fMinDistance,
DWORD dwApply DWORD dwApply
); );
@ -994,7 +996,7 @@ HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetMinDistance)
// ****************************************************************** // ******************************************************************
HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetVelocity) HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetVelocity)
( (
PVOID pThis, X_CDirectSoundStream *pThis,
D3DVALUE x, D3DVALUE x,
D3DVALUE y, D3DVALUE y,
D3DVALUE z, D3DVALUE z,
@ -1006,7 +1008,7 @@ HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetVelocity)
// ****************************************************************** // ******************************************************************
HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetConeOrientation) HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetConeOrientation)
( (
PVOID pThis, X_CDirectSoundStream *pThis,
D3DVALUE x, D3DVALUE x,
D3DVALUE y, D3DVALUE y,
D3DVALUE z, D3DVALUE z,
@ -1018,7 +1020,7 @@ HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetConeOrientation)
// ****************************************************************** // ******************************************************************
HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetPosition) HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetPosition)
( (
PVOID pThis, X_CDirectSoundStream *pThis,
D3DVALUE x, D3DVALUE x,
D3DVALUE y, D3DVALUE y,
D3DVALUE z, D3DVALUE z,
@ -1030,7 +1032,7 @@ HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetPosition)
// ****************************************************************** // ******************************************************************
HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetFrequency) HRESULT WINAPI EMUPATCH(CDirectSoundStream_SetFrequency)
( (
PVOID pThis, X_CDirectSoundStream *pThis,
DWORD dwFrequency DWORD dwFrequency
); );