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;
123static 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");
903static 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);
#define InterlockedIncrement
#define InterlockedDecrement
static void list_remove(struct list_entry *entry)
static void list_add_head(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
const GUID IID_IKsPropertySet
static const IDirectSoundNotifyVtbl dsnvt
HRESULT IKsBufferPropertySetImpl_Create(IDirectSoundBufferImpl *dsb, IKsBufferPropertySetImpl **piks)
static HRESULT WINAPI IDirectSoundBufferImpl_Stop(IDirectSoundBuffer8 *iface)
static HRESULT WINAPI IKsBufferPropertySetImpl_QuerySupport(LPKSPROPERTYSET iface, REFGUID guidPropSet, ULONG dwPropID, PULONG pTypeSupport)
HRESULT IDirectSoundBufferImpl_Destroy(IDirectSoundBufferImpl *pdsb)
HRESULT IKsBufferPropertySetImpl_Destroy(IKsBufferPropertySetImpl *piks)
static ULONG WINAPI IDirectSoundNotifyImpl_Release(LPDIRECTSOUNDNOTIFY iface)
static BOOL is_primary_buffer(IDirectSoundBufferImpl *This)
static HRESULT WINAPI IDirectSoundBufferImpl_SetFrequency(IDirectSoundBuffer8 *iface, DWORD freq)
static HRESULT IDirectSoundNotifyImpl_Create(IDirectSoundBufferImpl *dsb, IDirectSoundNotifyImpl **pdsn)
static HRESULT WINAPI IDirectSoundBufferImpl_Initialize(IDirectSoundBuffer8 *iface, IDirectSound *dsound, LPCDSBUFFERDESC dbsd)
static HRESULT WINAPI IDirectSoundBufferImpl_SetPan(IDirectSoundBuffer8 *iface, LONG pan)
static ULONG WINAPI IKsBufferPropertySetImpl_Release(LPKSPROPERTYSET iface)
static HRESULT WINAPI IDirectSoundBufferImpl_AcquireResources(IDirectSoundBuffer8 *iface, DWORD dwFlags, DWORD dwEffectsCount, DWORD *pdwResultCodes)
static ULONG WINAPI IKsBufferPropertySetImpl_AddRef(LPKSPROPERTYSET iface)
static HRESULT WINAPI IDirectSoundBufferImpl_Play(IDirectSoundBuffer8 *iface, DWORD reserved1, DWORD reserved2, DWORD flags)
static HRESULT WINAPI IDirectSoundBufferImpl_SetVolume(IDirectSoundBuffer8 *iface, LONG vol)
static HRESULT WINAPI IDirectSoundBufferImpl_Restore(IDirectSoundBuffer8 *iface)
static HRESULT WINAPI IDirectSoundBufferImpl_GetFrequency(IDirectSoundBuffer8 *iface, DWORD *freq)
static HRESULT WINAPI IDirectSoundBufferImpl_GetCurrentPosition(IDirectSoundBuffer8 *iface, DWORD *playpos, DWORD *writepos)
static HRESULT WINAPI IDirectSoundBufferImpl_GetStatus(IDirectSoundBuffer8 *iface, DWORD *status)
static IDirectSoundBufferImpl * impl_from_IDirectSoundBuffer8(IDirectSoundBuffer8 *iface)
static HRESULT WINAPI IKsBufferPropertySetImpl_QueryInterface(LPKSPROPERTYSET iface, REFIID riid, LPVOID *ppobj)
static HRESULT WINAPI IDirectSoundBufferImpl_SetCurrentPosition(IDirectSoundBuffer8 *iface, DWORD newpos)
static HRESULT WINAPI IDirectSoundBufferImpl_GetCaps(IDirectSoundBuffer8 *iface, LPDSBCAPS caps)
static HRESULT IDirectSoundNotifyImpl_Destroy(IDirectSoundNotifyImpl *pdsn)
static HRESULT WINAPI IDirectSoundNotifyImpl_SetNotificationPositions(LPDIRECTSOUNDNOTIFY iface, DWORD howmuch, LPCDSBPOSITIONNOTIFY notify)
static HRESULT WINAPI IDirectSoundBufferImpl_SetFX(IDirectSoundBuffer8 *iface, DWORD dwEffectsCount, LPDSEFFECTDESC pDSFXDesc, DWORD *pdwResultCodes)
static HRESULT WINAPI IDirectSoundNotifyImpl_QueryInterface(LPDIRECTSOUNDNOTIFY iface, REFIID riid, LPVOID *ppobj)
HRESULT IDirectSoundBufferImpl_Create(DirectSoundDevice *device, IDirectSoundBufferImpl **pdsb, LPCDSBUFFERDESC dsbd)
static HRESULT WINAPI IDirectSoundBufferImpl_SetFormat(IDirectSoundBuffer8 *iface, LPCWAVEFORMATEX wfex)
static HRESULT WINAPI IDirectSoundBufferImpl_Unlock(IDirectSoundBuffer8 *iface, void *p1, DWORD x1, void *p2, DWORD x2)
static HRESULT WINAPI IKsBufferPropertySetImpl_Get(LPKSPROPERTYSET iface, REFGUID guidPropSet, ULONG dwPropID, LPVOID pInstanceData, ULONG cbInstanceData, LPVOID pPropData, ULONG cbPropData, PULONG pcbReturned)
HRESULT IDirectSoundBufferImpl_Duplicate(DirectSoundDevice *device, IDirectSoundBufferImpl **ppdsb, IDirectSoundBufferImpl *pdsb)
static const IDirectSoundBuffer8Vtbl dsbvt
static HRESULT WINAPI IDirectSoundBufferImpl_QueryInterface(IDirectSoundBuffer8 *iface, REFIID riid, void **ppobj)
static HRESULT WINAPI IDirectSoundBufferImpl_GetFormat(IDirectSoundBuffer8 *iface, LPWAVEFORMATEX lpwf, DWORD wfsize, DWORD *wfwritten)
static ULONG WINAPI IDirectSoundBufferImpl_AddRef(IDirectSoundBuffer8 *iface)
static ULONG WINAPI IDirectSoundBufferImpl_Release(IDirectSoundBuffer8 *iface)
static HRESULT WINAPI IDirectSoundBufferImpl_GetVolume(IDirectSoundBuffer8 *iface, LONG *vol)
static HRESULT WINAPI IKsBufferPropertySetImpl_Set(LPKSPROPERTYSET iface, REFGUID guidPropSet, ULONG dwPropID, LPVOID pInstanceData, ULONG cbInstanceData, LPVOID pPropData, ULONG cbPropData)
static HRESULT WINAPI IDirectSoundBufferImpl_GetPan(IDirectSoundBuffer8 *iface, LONG *pan)
static HRESULT WINAPI IDirectSoundBufferImpl_GetObjectInPath(IDirectSoundBuffer8 *iface, REFGUID rguidObject, DWORD dwIndex, REFGUID rguidInterface, void **ppObject)
static HRESULT WINAPI IDirectSoundBufferImpl_Lock(IDirectSoundBuffer8 *iface, DWORD writecursor, DWORD writebytes, void **lplpaudioptr1, DWORD *audiobytes1, void **lplpaudioptr2, DWORD *audiobytes2, DWORD flags)
static ULONG WINAPI IDirectSoundNotifyImpl_AddRef(LPDIRECTSOUNDNOTIFY iface)
void secondarybuffer_destroy(IDirectSoundBufferImpl *This)
static const IKsPropertySetVtbl iksbvt
HRESULT DirectSoundDevice_RemoveBuffer(DirectSoundDevice *device, IDirectSoundBufferImpl *pDSB)
HRESULT DirectSoundDevice_AddBuffer(DirectSoundDevice *device, IDirectSoundBufferImpl *pDSB)
#define HeapFree(x, y, z)
DWORD WINAPI GetTickCount(VOID)
#define IDsDriverBuffer_Stop(p)
struct IDsDriverPropertySet * PIDSDRIVERPROPERTYSET
#define IDsDriver_CreateSoundBuffer(p, a, b, c, d, e, f)
#define IDsDriverBuffer_Play(p, a, b, c)
#define IDsDriverBuffer_Unlock(p, a, b, c, d)
#define IDsDriverPropertySet_Set(p, a, b, c, d, e)
#define DSDDESC_DONTNEEDWRITELEAD
#define IDsDriverBuffer_Release(p)
#define IDsDriverBuffer_SetVolumePan(p, a)
#define DSDDESC_DONTNEEDSECONDARYLOCK
#define IDsDriverNotify_SetNotificationPositions(p, a, b)
#define DSDDESC_USESYSTEMMEMORY
#define IDsDriverPropertySet_Get(p, a, b, c, d, e, f)
#define IDsDriver_DuplicateSoundBuffer(p, a, b)
#define IDsDriverPropertySet_QuerySupport(p, a, b, c)
#define IDsDriver_QueryInterface(p, a, b)
#define IDsDriverBuffer_GetPosition(p, a, b)
#define IDsDriverPropertySet_Release(p)
#define IDsDriverBuffer_Lock(p, a, b, c, d, e, f, g)
#define IDsDriverBuffer_SetPosition(p, a)
#define DSCAPS_SECONDARYSTEREO
#define DSERR_ALREADYINITIALIZED
#define IDirectSoundBuffer_AddRef(p)
#define DSBCAPS_CTRLVOLUME
struct IDirectSoundBuffer * LPDIRECTSOUNDBUFFER
#define DSERR_CONTROLUNAVAIL
#define DSCAPS_SECONDARYMONO
#define DS3D_DEFAULTCONEANGLE
#define IDirectSoundNotify_AddRef(p)
struct IDirectSound3DBuffer * LPDIRECTSOUND3DBUFFER
#define DSCAPS_SECONDARY8BIT
#define DSERR_OUTOFMEMORY
#define DSBLOCK_ENTIREBUFFER
#define DSBLOCK_FROMWRITECURSOR
#define DSBSTATUS_LOOPING
#define DSBFREQUENCY_ORIGINAL
#define DS3D_DEFAULTMINDISTANCE
#define DSERR_INVALIDCALL
#define DSCAPS_SECONDARY16BIT
#define DSBCAPS_LOCSOFTWARE
#define DSBSTATUS_PLAYING
#define DSERR_INVALIDPARAM
#define DSBCAPS_CTRLFREQUENCY
#define IDirectSound3DBuffer_AddRef(p)
#define IKsPropertySet_AddRef(p)
struct IDirectSoundNotify * LPDIRECTSOUNDNOTIFY
#define IDirectSoundBuffer8_AddRef(p)
#define DS3D_DEFAULTCONEOUTSIDEVOLUME
struct IDirectSoundBuffer8 * LPDIRECTSOUNDBUFFER8
struct _DS3DBUFFER DS3DBUFFER
#define IDirectSoundBuffer_QueryInterface(p, a, b)
#define DS3D_DEFAULTMAXDISTANCE
#define IDirectSoundBuffer_Release(p)
#define DSBCAPS_LOCHARDWARE
#define DSBCAPS_PRIMARYBUFFER
DWORD DSOUND_secpos_to_bufpos(const IDirectSoundBufferImpl *dsb, DWORD secpos, DWORD secmixpos, DWORD *overshot) DECLSPEC_HIDDEN
HRESULT IDirectSound3DBufferImpl_Create(IDirectSoundBufferImpl *dsb, IDirectSound3DBufferImpl **pds3db) DECLSPEC_HIDDEN
void DSOUND_Calc3DBuffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN
HRESULT primarybuffer_SetFormat(DirectSoundDevice *device, LPCWAVEFORMATEX wfex) DECLSPEC_HIDDEN
LPWAVEFORMATEX DSOUND_CopyFormat(LPCWAVEFORMATEX wfex) DECLSPEC_HIDDEN
void DSOUND_MixToTemporary(const IDirectSoundBufferImpl *dsb, DWORD writepos, DWORD mixlen, BOOL inmixer) DECLSPEC_HIDDEN
void DSOUND_RecalcVolPan(PDSVOLUMEPAN volpan) DECLSPEC_HIDDEN
HRESULT IDirectSound3DBufferImpl_Destroy(IDirectSound3DBufferImpl *pds3db) DECLSPEC_HIDDEN
void DSOUND_CheckEvent(const IDirectSoundBufferImpl *dsb, DWORD playpos, int len) DECLSPEC_HIDDEN
void DSOUND_RecalcFormat(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN
void primarybuffer_destroy(IDirectSoundBufferImpl *This) DECLSPEC_HIDDEN
#define FillMemory(BUF, SIZ, MASK)
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
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
double __cdecl remainder(double, double)
NTSYSAPI BOOLEAN NTAPI RtlAcquireResourceShared(_In_ PRTL_RESOURCE Resource, _In_ BOOLEAN Wait)
NTSYSAPI VOID NTAPI RtlInitializeResource(_In_ PRTL_RESOURCE Resource)
NTSYSAPI BOOLEAN NTAPI RtlAcquireResourceExclusive(_In_ PRTL_RESOURCE Resource, _In_ BOOLEAN Wait)
NTSYSAPI VOID NTAPI RtlDeleteResource(_In_ PRTL_RESOURCE Resource)
NTSYSAPI VOID NTAPI RtlReleaseResource(_In_ PRTL_RESOURCE Resource)
_In_ DWORD _In_ DWORD dwOffset
#define IsEqualGUID(rguid1, rguid2)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
IDirectSoundNotifyImpl * notify
IDirectSound3DBufferImpl * ds3db
IKsBufferPropertySetImpl * iks
DirectSoundDevice * device
LPDSBPOSITIONNOTIFY notifies
IDirectSoundBuffer8 IDirectSoundBuffer8_iface
PIDSDRIVERNOTIFY hwnotify
IDirectSoundBufferImpl * dsb
const IDirectSoundNotifyVtbl * lpVtbl
IDirectSoundBufferImpl * dsb
const IKsPropertySetVtbl * lpVtbl
D3DVECTOR vConeOrientation
DWORD dwUnlockTransferRate
LPWAVEFORMATEX lpwfxFormat
#define CONTAINING_RECORD(address, type, field)
#define E_PROP_ID_UNSUPPORTED
DWORD WINAPI GetCurrentThreadId(void)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1