static HRESULT WINAPI IDirectSound3DBufferImpl_SetAllParameters(IDirectSound3DBuffer *iface, const DS3DBUFFER *lpcDs3dBuffer, DWORD dwApply) { IDirectSoundBufferImpl *This = impl_from_IDirectSound3DBuffer(iface); DWORD status = DSERR_INVALIDPARAM; TRACE("(%p,%p,%x)\n",iface,lpcDs3dBuffer,dwApply); if (lpcDs3dBuffer == NULL) { WARN("invalid parameter: lpcDs3dBuffer == NULL\n"); return status; } if (lpcDs3dBuffer->dwSize != sizeof(DS3DBUFFER)) { WARN("invalid parameter: lpcDs3dBuffer->dwSize = %d\n", lpcDs3dBuffer->dwSize); return status; } TRACE("setting: all parameters; dwApply = %d\n", dwApply); This->ds3db_ds3db = *lpcDs3dBuffer; if (dwApply == DS3D_IMMEDIATE) { DSOUND_Mix3DBuffer(This); } This->ds3db_need_recalc = TRUE; status = DS_OK; return status; }
static void DSOUND_ChangeListener(IDirectSoundBufferImpl *ds3dl) { int i; TRACE("(%p)\n",ds3dl); for (i = 0; i < ds3dl->device->nrofbuffers; i++) { /* check if this buffer is waiting for recalculation */ if (ds3dl->device->buffers[i]->ds3db_need_recalc) { DSOUND_Mix3DBuffer(ds3dl->device->buffers[i]); } } }
static HRESULT WINAPI IDirectSound3DBufferImpl_SetConeAngles(IDirectSound3DBuffer *iface, DWORD dwInsideConeAngle, DWORD dwOutsideConeAngle, DWORD dwApply) { IDirectSoundBufferImpl *This = impl_from_IDirectSound3DBuffer(iface); TRACE("setting: Inside Cone Angle = %d; Outside Cone Angle = %d; dwApply = %d\n", dwInsideConeAngle, dwOutsideConeAngle, dwApply); This->ds3db_ds3db.dwInsideConeAngle = dwInsideConeAngle; This->ds3db_ds3db.dwOutsideConeAngle = dwOutsideConeAngle; if (dwApply == DS3D_IMMEDIATE) DSOUND_Mix3DBuffer(This); This->ds3db_need_recalc = TRUE; return DS_OK; }
static HRESULT WINAPI IDirectSound3DBufferImpl_SetMode(IDirectSound3DBuffer *iface, DWORD dwMode, DWORD dwApply) { IDirectSoundBufferImpl *This = impl_from_IDirectSound3DBuffer(iface); TRACE("setting: Mode = %d; dwApply = %d\n", dwMode, dwApply); This->ds3db_ds3db.dwMode = dwMode; if (dwApply == DS3D_IMMEDIATE) { This->ds3db_need_recalc = FALSE; DSOUND_Mix3DBuffer(This); } This->ds3db_need_recalc = TRUE; return DS_OK; }
static HRESULT WINAPI IDirectSound3DBufferImpl_SetMode( LPDIRECTSOUND3DBUFFER iface, DWORD dwMode, DWORD dwApply) { IDirectSound3DBufferImpl *This = (IDirectSound3DBufferImpl *)iface; TRACE("setting: Mode = %d; dwApply = %d\n", dwMode, dwApply); This->dsb->ds3db_ds3db.dwMode = dwMode; if (dwApply == DS3D_IMMEDIATE) { This->dsb->ds3db_need_recalc = FALSE; DSOUND_Mix3DBuffer(This->dsb); } This->dsb->ds3db_need_recalc = TRUE; return DS_OK; }
static HRESULT WINAPI IDirectSound3DBufferImpl_SetVelocity(IDirectSound3DBuffer *iface, D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) { IDirectSoundBufferImpl *This = impl_from_IDirectSound3DBuffer(iface); TRACE("setting: Velocity vector = (%f,%f,%f); dwApply = %d\n", x, y, z, dwApply); This->ds3db_ds3db.vVelocity.x = x; This->ds3db_ds3db.vVelocity.y = y; This->ds3db_ds3db.vVelocity.z = z; if (dwApply == DS3D_IMMEDIATE) { This->ds3db_need_recalc = FALSE; DSOUND_Mix3DBuffer(This); } This->ds3db_need_recalc = TRUE; return DS_OK; }
static HRESULT WINAPI IDirectSound3DBufferImpl_SetPosition( LPDIRECTSOUND3DBUFFER iface, D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) { IDirectSound3DBufferImpl *This = (IDirectSound3DBufferImpl *)iface; TRACE("setting: Position vector = (%f,%f,%f); dwApply = %d\n", x, y, z, dwApply); This->dsb->ds3db_ds3db.vPosition.x = x; This->dsb->ds3db_ds3db.vPosition.y = y; This->dsb->ds3db_ds3db.vPosition.z = z; if (dwApply == DS3D_IMMEDIATE) { This->dsb->ds3db_need_recalc = FALSE; DSOUND_Mix3DBuffer(This->dsb); } This->dsb->ds3db_need_recalc = TRUE; return DS_OK; }
static HRESULT WINAPI IDirectSound3DBufferImpl_SetConeAngles( LPDIRECTSOUND3DBUFFER iface, DWORD dwInsideConeAngle, DWORD dwOutsideConeAngle, DWORD dwApply) { IDirectSound3DBufferImpl *This = (IDirectSound3DBufferImpl *)iface; TRACE("setting: Inside Cone Angle = %d; Outside Cone Angle = %d; dwApply = %d\n", dwInsideConeAngle, dwOutsideConeAngle, dwApply); This->dsb->ds3db_ds3db.dwInsideConeAngle = dwInsideConeAngle; This->dsb->ds3db_ds3db.dwOutsideConeAngle = dwOutsideConeAngle; if (dwApply == DS3D_IMMEDIATE) { DSOUND_Mix3DBuffer(This->dsb); } This->dsb->ds3db_need_recalc = TRUE; return DS_OK; }