31 const IDirectSoundNotifyVtbl *
lpVtbl;
47 WARN(
"invalid parameter\n");
84 WARN(
"invalid parameter: notify == NULL\n");
90 for (
i=0;
i<howmuch;
i++)
91 TRACE(
"notify at %d to %p\n",
95 if (
This->dsb->hwnotify) {
99 WARN(
"IDsDriverNotify_SetNotificationPositions failed\n");
101 }
else if (howmuch > 0) {
109 WARN(
"out of memory\n");
113 This->dsb->nrofnotifies = howmuch;
117 This->dsb->nrofnotifies = 0;
123 static const IDirectSoundNotifyVtbl
dsnvt =
136 TRACE(
"(%p,%p)\n",dsb,pdsn);
141 WARN(
"out of memory\n");
158 TRACE(
"(%p)\n",pdsn);
184 TRACE(
"(%p,%p)\n", iface, wfex);
189 WARN(
"not available for secondary buffers.\n");
204 WARN(
"control unavailable: This->dsbd.dwFlags = 0x%08x\n",
This->dsbd.dwFlags);
209 WARN(
"invalid parameter: vol = %d\n", vol);
217 oldVol =
This->ds3db_lVolume;
218 This->ds3db_lVolume = vol;
223 oldVol =
This->volpan.lVolume;
224 This->volpan.lVolume = vol;
233 WARN(
"IDsDriverBuffer_SetVolumePan failed\n");
250 WARN(
"control unavailable\n");
255 WARN(
"invalid parameter: vol == NULL\n");
259 *vol =
This->volpan.lVolume;
272 WARN(
"not available for primary buffers.\n");
277 WARN(
"control unavailable\n");
282 freq =
This->pwfx->nSamplesPerSec;
285 WARN(
"invalid parameter: freq = %d\n", freq);
292 oldFreq =
This->freq;
294 if (freq != oldFreq) {
296 This->nAvgBytesPerSec = freq *
This->pwfx->nBlockAlign;
327 WARN(
"IDsDriverBuffer_Play failed\n");
358 WARN(
"IDsDriverBuffer_Stop failed\n");
404 TRACE(
"(%p,%p,%p)\n",
This,playpos,writepos);
410 WARN(
"IDsDriverBuffer_GetPosition failed\n");
418 FIXME(
"Bad play position. playpos: %d, buflen: %d\n",
pos,
This->buflen);
429 *writepos +=
This->writelead;
430 *writepos %=
This->buflen;
434 TRACE(
"playpos = %d, writepos = %d, buflen=%d (%p, time=%d)\n",
447 WARN(
"invalid parameter: status = NULL\n");
471 TRACE(
"(%p,%p,%d,%p)\n",
This,lpwf,wfsize,wfwritten);
476 if (wfsize >=
size) {
481 WARN(
"invalid parameter: wfsize too small\n");
491 WARN(
"invalid parameter: wfwritten == NULL\n");
500 DWORD writebytes,
void **lplpaudioptr1,
DWORD *audiobytes1,
void **lplpaudioptr2,
506 TRACE(
"(%p,%d,%d,%p,%p,%p,%p,0x%08x) at %d\n",
This, writecursor, writebytes, lplpaudioptr1,
517 WARN(
"IDirectSoundBufferImpl_GetCurrentPosition failed\n");
524 writebytes =
This->buflen;
526 if (writecursor >=
This->buflen) {
527 WARN(
"Invalid parameter, writecursor: %u >= buflen: %u\n",
528 writecursor,
This->buflen);
532 if (writebytes >
This->buflen) {
533 WARN(
"Invalid parameter, writebytes: %u > buflen: %u\n",
534 writebytes,
This->buflen);
543 lplpaudioptr1, audiobytes1,
544 lplpaudioptr2, audiobytes2,
545 writecursor, writebytes,
548 WARN(
"IDsDriverBuffer_Lock failed\n");
553 if (writecursor+writebytes <= This->buflen) {
554 *(
LPBYTE*)lplpaudioptr1 =
This->buffer->memory+writecursor;
556 WARN(
"Overwriting mixing position, case 1\n");
557 *audiobytes1 = writebytes;
562 TRACE(
"Locked %p(%i bytes) and %p(%i bytes) writecursor=%d\n",
563 *(
LPBYTE*)lplpaudioptr1, *audiobytes1, lplpaudioptr2 ? *(
LPBYTE*)lplpaudioptr2 :
NULL, audiobytes2 ? *audiobytes2: 0, writecursor);
564 TRACE(
"->%d.0\n",writebytes);
567 *(
LPBYTE*)lplpaudioptr1 =
This->buffer->memory+writecursor;
568 *audiobytes1 =
This->buflen-writecursor;
570 WARN(
"Overwriting mixing position, case 2\n");
572 *(
LPBYTE*)lplpaudioptr2 =
This->buffer->memory;
574 *audiobytes2 = writebytes-(
This->buflen-writecursor);
576 WARN(
"Overwriting mixing position, case 3\n");
577 TRACE(
"Locked %p(%i bytes) and %p(%i bytes) writecursor=%d\n", *(
LPBYTE*)lplpaudioptr1, *audiobytes1, lplpaudioptr2 ? *(
LPBYTE*)lplpaudioptr2 :
NULL, audiobytes2 ? *audiobytes2: 0, writecursor);
599 oldpos =
This->sec_mixpos;
602 newpos %=
This->buflen;
603 newpos -= newpos%
This->pwfx->nBlockAlign;
604 This->sec_mixpos = newpos;
613 WARN(
"IDsDriverBuffer_SetPosition failed\n");
615 else if (oldpos != newpos)
633 WARN(
"invalid parameter: pan = %d\n", pan);
640 WARN(
"control unavailable\n");
647 if (
This->volpan.lPan != pan) {
648 This->volpan.lPan = pan;
654 WARN(
"IDsDriverBuffer_SetVolumePan failed\n");
671 WARN(
"control unavailable\n");
676 WARN(
"invalid parameter: pan = NULL\n");
680 *pan =
This->volpan.lPan;
699 WARN(
"IDsDriverBuffer_Unlock failed\n");
746 WARN(
"invalid parameter: freq = NULL\n");
751 TRACE(
"-> %d\n", *freq);
762 FIXME(
"(%p,%u,%p,%p): stub\n",
This,dwEffectsCount,pDSFXDesc,pdwResultCodes);
767 WARN(
"control unavailable\n");
777 FIXME(
"(%p,%08u,%u,%p): stub, faking success\n",
This,
dwFlags,dwEffectsCount,pdwResultCodes);
782 WARN(
"control unavailable\n");
793 WARN(
"control unavailable\n");
802 WARN(
"(%p) already initialized\n",
This);
813 WARN(
"invalid parameter: caps == NULL\n");
817 if (caps->
dwSize <
sizeof(*caps)) {
818 WARN(
"invalid parameter: caps->dwSize = %d\n",caps->
dwSize);
843 WARN(
"invalid parameter\n");
862 *ppobj =
This->notify;
865 WARN(
"IID_IDirectSoundNotify\n");
874 *ppobj =
This->ds3db;
877 WARN(
"IID_IDirectSound3DBuffer\n");
882 ERR(
"app requested IDirectSound3DListener on secondary buffer\n");
894 WARN(
"IID_IKsPropertySet\n");
903 static const IDirectSoundBuffer8Vtbl
dsbvt =
952 WARN(
"out of memory\n");
957 TRACE(
"Created buffer at %p\n", dsb);
995 TRACE(
"use_hw = %d, capf = 0x%08x, device->drvcaps.dwFlags = 0x%08x\n", use_hw, capf,
device->drvcaps.dwFlags);
996 if (use_hw && ((
device->drvcaps.dwFlags & capf) != capf || !
device->driver))
999 WARN(
"Format not supported for hardware buffer\n");
1003 if ((
device->drvcaps.dwFlags & capf) != capf)
1016 WARN(
"out of memory\n");
1027 WARN(
"out of memory\n");
1043 WARN(
"Failed to create hardware secondary buffer: %08x\n",
err);
1121 This->buffer->ref--;
1123 if (
This->buffer->ref == 0) {
1140 TRACE(
"(%p)\n",pdsb);
1147 WARN(
"iks not NULL\n");
1153 WARN(
"ds3db not NULL\n");
1159 WARN(
"notify not NULL\n");
1180 WARN(
"out of memory\n");
1194 TRACE(
"duplicating hardware buffer\n");
1199 WARN(
"IDsDriver_DuplicateSoundBuffer failed (%08x)\n",
hres);
1285 ULONG cbInstanceData,
1292 TRACE(
"(iface=%p,guidPropSet=%s,dwPropID=%d,pInstanceData=%p,cbInstanceData=%d,pPropData=%p,cbPropData=%d,pcbReturned=%p)\n",
1293 This,
debugstr_guid(guidPropSet),dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned);
1295 if (
This->dsb->hwbuf) {
1302 prop.s.
Set = *guidPropSet;
1303 prop.s.
Id = dwPropID;
1324 ULONG cbInstanceData,
1330 TRACE(
"(%p,%s,%d,%p,%d,%p,%d)\n",
This,
debugstr_guid(guidPropSet),dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData);
1332 if (
This->dsb->hwbuf) {
1339 prop.s.
Set = *guidPropSet;
1340 prop.s.
Id = dwPropID;
1364 if (
This->dsb->hwbuf) {
1395 TRACE(
"(%p,%p)\n",dsb,piks);
1400 WARN(
"out of memory\n");
1419 TRACE(
"(%p)\n",piks);
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
struct IDirectSoundBuffer8 * LPDIRECTSOUNDBUFFER8
static HRESULT WINAPI IDirectSoundBufferImpl_SetFX(IDirectSoundBuffer8 *iface, DWORD dwEffectsCount, LPDSEFFECTDESC pDSFXDesc, DWORD *pdwResultCodes)
IDirectSoundBufferImpl * dsb
static HRESULT WINAPI IKsBufferPropertySetImpl_Get(LPKSPROPERTYSET iface, REFGUID guidPropSet, ULONG dwPropID, LPVOID pInstanceData, ULONG cbInstanceData, LPVOID pPropData, ULONG cbPropData, PULONG pcbReturned)
#define IDsDriverPropertySet_Release(p)
#define IDirectSoundBuffer_AddRef(p)
static ULONG WINAPI IDirectSoundBufferImpl_Release(IDirectSoundBuffer8 *iface)
static HRESULT WINAPI IKsBufferPropertySetImpl_QuerySupport(LPKSPROPERTYSET iface, REFGUID guidPropSet, ULONG dwPropID, PULONG pTypeSupport)
NTSYSAPI VOID NTAPI RtlDeleteResource(_In_ PRTL_RESOURCE Resource)
struct _DS3DBUFFER DS3DBUFFER
#define DSBCAPS_CTRLVOLUME
#define IDsDriverBuffer_Unlock(p, a, b, c, d)
#define DSCAPS_SECONDARYSTEREO
#define DSERR_INVALIDCALL
static HRESULT WINAPI IDirectSoundBufferImpl_Lock(IDirectSoundBuffer8 *iface, DWORD writecursor, DWORD writebytes, void **lplpaudioptr1, DWORD *audiobytes1, void **lplpaudioptr2, DWORD *audiobytes2, DWORD flags)
IDirectSoundNotifyImpl * notify
#define IDsDriverBuffer_Play(p, a, b, c)
#define DSBCAPS_LOCSOFTWARE
HRESULT IKsBufferPropertySetImpl_Destroy(IKsBufferPropertySetImpl *piks)
#define IDirectSoundBuffer_Release(p)
#define DSDDESC_DONTNEEDWRITELEAD
NTSYSAPI BOOLEAN NTAPI RtlAcquireResourceShared(_In_ PRTL_RESOURCE Resource, _In_ BOOLEAN Wait)
void DSOUND_Calc3DBuffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
static HRESULT WINAPI IKsBufferPropertySetImpl_QueryInterface(LPKSPROPERTYSET iface, REFIID riid, LPVOID *ppobj)
static HRESULT WINAPI IDirectSoundBufferImpl_GetObjectInPath(IDirectSoundBuffer8 *iface, REFGUID rguidObject, DWORD dwIndex, REFGUID rguidInterface, void **ppObject)
HRESULT IDirectSoundBufferImpl_Create(DirectSoundDevice *device, IDirectSoundBufferImpl **pdsb, LPCDSBUFFERDESC dsbd)
#define DSERR_ALREADYINITIALIZED
__WINE_SERVER_LIST_INLINE void list_add_head(struct list *list, struct list *elem)
#define IDsDriver_CreateSoundBuffer(p, a, b, c, d, e, f)
DWORD WINAPI GetTickCount(VOID)
#define IDirectSoundBuffer8_AddRef(p)
static HRESULT WINAPI IDirectSoundBufferImpl_SetCurrentPosition(IDirectSoundBuffer8 *iface, DWORD newpos)
#define DS3D_DEFAULTMINDISTANCE
HRESULT primarybuffer_SetFormat(DirectSoundDevice *device, LPCWAVEFORMATEX wfex) DECLSPEC_HIDDEN
HRESULT DirectSoundDevice_AddBuffer(DirectSoundDevice *device, IDirectSoundBufferImpl *pDSB)
static HRESULT WINAPI IDirectSoundBufferImpl_Unlock(IDirectSoundBuffer8 *iface, void *p1, DWORD x1, void *p2, DWORD x2)
#define DSDDESC_DONTNEEDSECONDARYLOCK
struct tWAVEFORMATEX WAVEFORMATEX
static HRESULT WINAPI IDirectSoundBufferImpl_Stop(IDirectSoundBuffer8 *iface)
static HRESULT WINAPI IDirectSoundBufferImpl_SetFormat(IDirectSoundBuffer8 *iface, LPCWAVEFORMATEX wfex)
#define DSBFREQUENCY_ORIGINAL
static HRESULT WINAPI IDirectSoundBufferImpl_GetCurrentPosition(IDirectSoundBuffer8 *iface, DWORD *playpos, DWORD *writepos)
IDirectSound3DBufferImpl * ds3db
static HRESULT IDirectSoundNotifyImpl_Create(IDirectSoundBufferImpl *dsb, IDirectSoundNotifyImpl **pdsn)
#define IDsDriverBuffer_Release(p)
static HRESULT WINAPI IDirectSoundBufferImpl_GetFormat(IDirectSoundBuffer8 *iface, LPWAVEFORMATEX lpwf, DWORD wfsize, DWORD *wfwritten)
HRESULT IDirectSound3DBufferImpl_Destroy(IDirectSound3DBufferImpl *pds3db) DECLSPEC_HIDDEN
HRESULT IDirectSound3DBufferImpl_Create(IDirectSoundBufferImpl *dsb, IDirectSound3DBufferImpl **pds3db) DECLSPEC_HIDDEN
NTSYSAPI VOID NTAPI RtlReleaseResource(_In_ PRTL_RESOURCE Resource)
static ULONG WINAPI IKsBufferPropertySetImpl_Release(LPKSPROPERTYSET iface)
_In_ DWORD _In_ DWORD dwOffset
HRESULT DirectSoundDevice_RemoveBuffer(DirectSoundDevice *device, IDirectSoundBufferImpl *pDSB)
#define DS3D_DEFAULTMAXDISTANCE
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define DSERR_OUTOFMEMORY
#define DSERR_INVALIDPARAM
#define IDirectSoundBuffer_QueryInterface(p, a, b)
static HRESULT WINAPI IDirectSoundBufferImpl_GetVolume(IDirectSoundBuffer8 *iface, LONG *vol)
HRESULT IDirectSoundBufferImpl_Duplicate(DirectSoundDevice *device, IDirectSoundBufferImpl **ppdsb, IDirectSoundBufferImpl *pdsb)
void DSOUND_RecalcFormat(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN
#define IKsPropertySet_AddRef(p)
#define IDsDriverPropertySet_Set(p, a, b, c, d, e)
static HRESULT WINAPI IKsBufferPropertySetImpl_Set(LPKSPROPERTYSET iface, REFGUID guidPropSet, ULONG dwPropID, LPVOID pInstanceData, ULONG cbInstanceData, LPVOID pPropData, ULONG cbPropData)
#define IDsDriver_QueryInterface(p, a, b)
const IKsPropertySetVtbl * lpVtbl
#define IDsDriver_DuplicateSoundBuffer(p, a, b)
#define DSCAPS_SECONDARY16BIT
HRESULT IKsBufferPropertySetImpl_Create(IDirectSoundBufferImpl *dsb, IKsBufferPropertySetImpl **piks)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
DWORD WINAPI GetCurrentThreadId(VOID)
D3DVECTOR vConeOrientation
#define IDsDriverPropertySet_QuerySupport(p, a, b, c)
static ULONG WINAPI IDirectSoundBufferImpl_AddRef(IDirectSoundBuffer8 *iface)
double __cdecl remainder(double, double)
#define IDirectSoundNotify_AddRef(p)
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
static const IKsPropertySetVtbl iksbvt
NTSYSAPI VOID NTAPI RtlInitializeResource(_In_ PRTL_RESOURCE Resource)
#define DSBCAPS_PRIMARYBUFFER
#define DSBSTATUS_LOOPING
#define E_PROP_ID_UNSUPPORTED
static HRESULT WINAPI IDirectSoundBufferImpl_SetVolume(IDirectSoundBuffer8 *iface, LONG vol)
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
#define DSBLOCK_FROMWRITECURSOR
#define IDsDriverBuffer_SetPosition(p, a)
#define IDirectSound3DBuffer_AddRef(p)
#define DSERR_CONTROLUNAVAIL
#define IDsDriverBuffer_SetVolumePan(p, a)
LPWAVEFORMATEX DSOUND_CopyFormat(LPCWAVEFORMATEX wfex) DECLSPEC_HIDDEN
#define DSCAPS_SECONDARYMONO
HRESULT IDirectSoundBufferImpl_Destroy(IDirectSoundBufferImpl *pdsb)
#define FillMemory(BUF, SIZ, MASK)
LPWAVEFORMATEX lpwfxFormat
void DSOUND_CheckEvent(const IDirectSoundBufferImpl *dsb, DWORD playpos, int len) DECLSPEC_HIDDEN
#define InterlockedDecrement
#define DSBSTATUS_PLAYING
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
void DSOUND_MixToTemporary(const IDirectSoundBufferImpl *dsb, DWORD writepos, DWORD mixlen, BOOL inmixer) DECLSPEC_HIDDEN
IKsBufferPropertySetImpl * iks
DirectSoundDevice * device
const GUID IID_IKsPropertySet
struct IDirectSoundBuffer * LPDIRECTSOUNDBUFFER
static IDirectSoundBufferImpl * impl_from_IDirectSoundBuffer8(IDirectSoundBuffer8 *iface)
static HRESULT WINAPI IDirectSoundNotifyImpl_SetNotificationPositions(LPDIRECTSOUNDNOTIFY iface, DWORD howmuch, LPCDSBPOSITIONNOTIFY notify)
static HRESULT WINAPI IDirectSoundBufferImpl_SetFrequency(IDirectSoundBuffer8 *iface, DWORD freq)
#define DS3D_DEFAULTCONEANGLE
static const IDirectSoundBuffer8Vtbl dsbvt
struct IDirectSoundNotify * LPDIRECTSOUNDNOTIFY
static ULONG WINAPI IDirectSoundNotifyImpl_Release(LPDIRECTSOUNDNOTIFY iface)
static HRESULT IDirectSoundNotifyImpl_Destroy(IDirectSoundNotifyImpl *pdsn)
#define IDsDriverBuffer_GetPosition(p, a, b)
#define InterlockedIncrement
static HRESULT WINAPI IDirectSoundBufferImpl_QueryInterface(IDirectSoundBuffer8 *iface, REFIID riid, void **ppobj)
void secondarybuffer_destroy(IDirectSoundBufferImpl *This)
static HRESULT WINAPI IDirectSoundBufferImpl_Play(IDirectSoundBuffer8 *iface, DWORD reserved1, DWORD reserved2, DWORD flags)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
static HRESULT WINAPI IDirectSoundBufferImpl_AcquireResources(IDirectSoundBuffer8 *iface, DWORD dwFlags, DWORD dwEffectsCount, DWORD *pdwResultCodes)
#define DS3D_DEFAULTCONEOUTSIDEVOLUME
IDirectSoundBufferImpl * dsb
void primarybuffer_destroy(IDirectSoundBufferImpl *This) DECLSPEC_HIDDEN
static HRESULT WINAPI IDirectSoundBufferImpl_SetPan(IDirectSoundBuffer8 *iface, LONG pan)
const IDirectSoundNotifyVtbl * lpVtbl
#define DSBCAPS_CTRLFREQUENCY
static HRESULT WINAPI IDirectSoundBufferImpl_GetPan(IDirectSoundBuffer8 *iface, LONG *pan)
struct IDsDriverPropertySet * PIDSDRIVERPROPERTYSET
#define IDsDriverBuffer_Lock(p, a, b, c, d, e, f, g)
struct IDirectSound3DBuffer * LPDIRECTSOUND3DBUFFER
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
static ULONG WINAPI IDirectSoundNotifyImpl_AddRef(LPDIRECTSOUNDNOTIFY iface)
DWORD DSOUND_secpos_to_bufpos(const IDirectSoundBufferImpl *dsb, DWORD secpos, DWORD secmixpos, DWORD *overshot) DECLSPEC_HIDDEN
static HRESULT WINAPI IDirectSoundNotifyImpl_QueryInterface(LPDIRECTSOUNDNOTIFY iface, REFIID riid, LPVOID *ppobj)
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
IDirectSoundBuffer8 IDirectSoundBuffer8_iface
LPDSBPOSITIONNOTIFY notifies
static ULONG WINAPI IKsBufferPropertySetImpl_AddRef(LPKSPROPERTYSET iface)
PIDSDRIVERNOTIFY hwnotify
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
DWORD dwUnlockTransferRate
static HRESULT WINAPI IDirectSoundBufferImpl_GetFrequency(IDirectSoundBuffer8 *iface, DWORD *freq)
#define IDsDriverPropertySet_Get(p, a, b, c, d, e, f)
static HRESULT WINAPI IDirectSoundBufferImpl_GetStatus(IDirectSoundBuffer8 *iface, DWORD *status)
#define IDsDriverBuffer_Stop(p)
static HRESULT WINAPI IDirectSoundBufferImpl_Initialize(IDirectSoundBuffer8 *iface, IDirectSound *dsound, LPCDSBUFFERDESC dbsd)
static const IDirectSoundNotifyVtbl dsnvt
static HRESULT WINAPI IDirectSoundBufferImpl_Restore(IDirectSoundBuffer8 *iface)
static BOOL is_primary_buffer(IDirectSoundBufferImpl *This)
#define DSBLOCK_ENTIREBUFFER
#define HeapFree(x, y, z)
static HRESULT WINAPI IDirectSoundBufferImpl_GetCaps(IDirectSoundBuffer8 *iface, LPDSBCAPS caps)
#define IDsDriverNotify_SetNotificationPositions(p, a, b)
void DSOUND_RecalcVolPan(PDSVOLUMEPAN volpan) DECLSPEC_HIDDEN
#define DSBCAPS_LOCHARDWARE
#define DSDDESC_USESYSTEMMEMORY
#define DSCAPS_SECONDARY8BIT
NTSYSAPI BOOLEAN NTAPI RtlAcquireResourceExclusive(_In_ PRTL_RESOURCE Resource, _In_ BOOLEAN Wait)