36 const IDirectSoundNotifyVtbl *
lpVtbl;
53 WARN(
"invalid parameter\n");
75 if (
This->dscb->hwnotify)
94 WARN(
"invalid parameter: notify == NULL\n");
100 for (
i=0;
i<howmuch;
i++)
101 TRACE(
"notify at %d to %p\n",
105 if (
This->dscb->hwnotify) {
109 WARN(
"IDsDriverNotify_SetNotificationPositions failed\n");
111 }
else if (howmuch > 0) {
114 if (
This->dscb->notifies)
122 WARN(
"out of memory\n");
126 This->dscb->nrofnotifies = howmuch;
130 This->dscb->nrofnotifies = 0;
136static const IDirectSoundNotifyVtbl
dscnvt =
149 TRACE(
"(%p,%p)\n",dscb,pdscn);
154 WARN(
"out of memory\n");
191 WARN(
"invalid parameter\n");
202 if (
This->device->hwbuf && !
This->hwnotify) {
204 &IID_IDsDriverNotify, (
LPVOID*)&(
This->hwnotify));
206 WARN(
"IDsCaptureDriverBuffer_QueryInterface failed\n");
213 *ppobj =
This->notify;
217 WARN(
"IID_IDirectSoundNotify\n");
249 TRACE(
"deleting object\n");
255 if (
This->device->hwi) {
259 This->device->pwave = 0;
260 This->device->hwi = 0;
263 if (
This->device->hwbuf)
267 This->device->capture_buffer =
NULL;
293 if (lpDSCBCaps ==
NULL) {
294 WARN(
"invalid parameter: lpDSCBCaps == NULL\n");
299 WARN(
"invalid parameter: lpDSCBCaps->dwSize = %d\n", lpDSCBCaps->
dwSize);
304 WARN(
"invalid parameter: This->device == NULL\n");
313 TRACE(
"returning DS_OK\n");
325 TRACE(
"(%p,%p,%p)\n",
This, lpdwCapturePosition, lpdwReadPosition );
328 WARN(
"invalid parameter: This->device == NULL\n");
332 if (
This->device->driver) {
335 WARN(
"IDsCaptureDriverBuffer_GetPosition failed\n");
336 }
else if (
This->device->hwi) {
341 if (lpdwCapturePosition)
342 *lpdwCapturePosition = (
This->device->pwave[
This->device->index].dwBufferLength +
pos) %
This->device->buflen;
343 if (lpdwReadPosition)
344 *lpdwReadPosition =
pos;
352 TRACE(
"cappos=%d readpos=%d\n", (lpdwCapturePosition?*lpdwCapturePosition:-1), (lpdwReadPosition?*lpdwReadPosition:-1));
361 DWORD dwSizeAllocated,
366 TRACE(
"(%p,%p,0x%08x,%p)\n",
This, lpwfxFormat, dwSizeAllocated,
370 WARN(
"invalid parameter: This->device == NULL\n");
380 *lpdwSizeWritten = dwSizeAllocated;
385 TRACE(
"invalid parameter: lpdwSizeWritten = NULL\n");
403 WARN(
"invalid parameter: This->device == NULL\n");
407 if (lpdwStatus ==
NULL) {
408 WARN(
"invalid parameter: lpdwStatus == NULL\n");
415 TRACE(
"old This->device->state=%s, old lpdwStatus=%08x\n",
423 TRACE(
"new This->device->state=%s, new lpdwStatus=%08x\n",
427 TRACE(
"status=%x\n", *lpdwStatus);
428 TRACE(
"returning DS_OK\n");
440 FIXME(
"(%p,%p,%p): stub\n",
This, lpDSC, lpcDSCBDesc );
458 TRACE(
"(%p,%08u,%08u,%p,%p,%p,%p,0x%08x) at %d\n",
This, dwReadCusor,
459 dwReadBytes, lplpvAudioPtr1, lpdwAudioBytes1, lplpvAudioPtr2,
463 WARN(
"invalid parameter: This->device == NULL\n");
467 if (lplpvAudioPtr1 ==
NULL) {
468 WARN(
"invalid parameter: lplpvAudioPtr1 == NULL\n");
472 if (lpdwAudioBytes1 ==
NULL) {
473 WARN(
"invalid parameter: lpdwAudioBytes1 == NULL\n");
479 if (
This->device->driver) {
481 lpdwAudioBytes1, lplpvAudioPtr2,
482 lpdwAudioBytes2, dwReadCusor,
485 WARN(
"IDsCaptureDriverBuffer_Lock failed\n");
486 }
else if (
This->device->hwi) {
487 *lplpvAudioPtr1 =
This->device->buffer + dwReadCusor;
488 if ( (dwReadCusor + dwReadBytes) >
This->device->buflen) {
489 *lpdwAudioBytes1 =
This->device->buflen - dwReadCusor;
491 *lplpvAudioPtr2 =
This->device->buffer;
493 *lpdwAudioBytes2 = dwReadBytes - *lpdwAudioBytes1;
495 *lpdwAudioBytes1 = dwReadBytes;
499 *lpdwAudioBytes2 = 0;
502 TRACE(
"invalid call\n");
522 WARN(
"invalid parameter: This->device == NULL\n");
526 if ( (
This->device->driver == 0) && (
This->device->hwi == 0) ) {
543 if (
This->device->driver) {
546 WARN(
"IDsCaptureDriverBuffer_Start failed\n");
547 }
else if (
This->device->hwi) {
562 for (
c = 0;
c <
device->nrofpwaves; ++
c) {
567 device->pwave[
c].dwBufferLength = blocksize;
568 device->pwave[
c].dwBytesRecorded = 0;
574 WARN(
"waveInPrepareHeader failed\n");
582 WARN(
"waveInAddBuffer failed\n");
598 WARN(
"waveInStart failed\n");
602 WARN(
"calling waveInClose because of error\n");
623 WARN(
"invalid parameter: This->device == NULL\n");
638 if (
This->device->driver) {
641 WARN(
"IDsCaptureDriverBuffer_Stop() failed\n");
642 }
else if (
This->device->hwi) {
645 WARN(
"waveInReset() failed\n");
661 DWORD dwAudioBytes2 )
665 TRACE(
"(%p,%p,%08u,%p,%08u)\n",
This, lpvAudioPtr1, dwAudioBytes1,
666 lpvAudioPtr2, dwAudioBytes2 );
668 if (lpvAudioPtr1 ==
NULL) {
669 WARN(
"invalid parameter: lpvAudioPtr1 == NULL\n");
673 if (
This->device->driver) {
675 dwAudioBytes1, lpvAudioPtr2, dwAudioBytes2);
677 WARN(
"IDsCaptureDriverBuffer_Unlock failed\n");
678 }
else if (!
This->device->hwi) {
679 WARN(
"invalid call\n");
711 FIXME(
"(%p,%u,%p): stub\n",
This, dwFXCount, pdwFXStatus );
716static const IDirectSoundCaptureBuffer8Vtbl
dscbvt =
742 for (
i = 0;
i <
This->nrofnotifies; ++
i) {
750 TRACE(
"signalled event %p (%d)\n",
event->hEventNotify,
i);
758 TRACE(
"signalled event %p (%d)\n",
event->hEventNotify,
i);
770 TRACE(
"(%p,%08x(%s),%08lx,%08lx,%08lx) entering at %d\n",hwi,
msg,
776 TRACE(
"DirectSoundCapture msg=MM_WIM_DATA, old This->state=%s, old This->index=%d\n",
785 TRACE(
"end of buffer\n");
799 TRACE(
"DirectSoundCapture new This->state=%s, new This->index=%d\n",
804 TRACE(
"completed\n");
813 TRACE(
"(%p,%p,%p)\n",
device, ppobj, lpcDSCBufferDesc);
816 WARN(
"invalid parameter: ppobj == NULL\n");
821 WARN(
"not initialized\n");
826 if (lpcDSCBufferDesc ==
NULL) {
827 WARN(
"invalid parameter: lpcDSCBufferDesc == NULL\n");
836 WARN(
"invalid lpcDSCBufferDesc\n");
843 TRACE(
"(formattag=0x%04x,chans=%d,samplerate=%d,"
844 "bytespersec=%d,blockalign=%d,bitspersamp=%d,cbSize=%d)\n",
864 if ( *ppobj ==
NULL ) {
865 WARN(
"out of memory\n");
876 This->device->capture_buffer =
This;
878 This->nrofnotifies = 0;
882 lpcDSCBufferDesc->
dwSize);
887 This->device->capture_buffer = 0;
897 FIXME(
"DSDDESC_DOMMSYSTEMOPEN not supported\n");
902 TRACE(
"desired buflen=%d, old buffer=%p\n", buflen,
device->buffer);
908 if (newbuf ==
NULL) {
909 WARN(
"failed to allocate capture buffer\n");
927 WARN(
"IDsCaptureDriver_CreateCaptureBuffer failed\n");
928 This->device->capture_buffer = 0;
939 WARN(
"waveInOpen failed\n");
940 This->device->capture_buffer = 0;
947 TRACE(
"desired buflen=%d, old buffer=%p\n", buflen,
device->buffer);
952 if (newbuf ==
NULL) {
953 WARN(
"failed to allocate capture buffer\n");
963 TRACE(
"returning DS_OK\n");
977 TRACE(
"(%p)\n", ppDevice);
983 WARN(
"out of memory\n");
991 device->lock.DebugInfo->Spare[0] = (
DWORD_PTR)(__FILE__
": DirectSoundCaptureDevice.lock");
1005 TRACE(
"deleting object\n");
1006 if (
device->capture_buffer)
1016 device->lock.DebugInfo->Spare[0] = 0;
1038 lpcGUID = &DSDEVID_DefaultCapture;
1041 WARN(
"invalid parameter: lpcGUID\n");
1047 WARN(
"no audio devices found\n");
1052 for (wid=0; wid<widn; wid++) {
1059 if (found ==
FALSE) {
1060 WARN(
"No device found matching given ID!\n");
1065 WARN(
"already in use\n");
1071 WARN(
"DirectSoundCaptureDevice_Create failed\n");
1084 WARN(
"waveInMessage failed; err=%x\n",
err);
1092 TRACE(
"using DirectSound driver\n");
1095 WARN(
"IDsCaptureDriver_GetDriverDesc failed\n");
1099 TRACE(
"using WINMM\n");
1105 device->drvdesc.dnDevNode = wid;
1119 WARN(
"IDsCaptureDriver_GetCaps failed\n");
1127 device->drvcaps.dwFlags = 0;
1129 sizeof(
device->drvdesc.szDrvname));
1166 if (ppobj ==
NULL) {
1167 WARN(
"invalid parameter\n");
1222 TRACE(
"(%p,%p,%p,%p)\n",iface,lpcDSCBufferDesc,lplpDSCaptureBuffer,
pUnk);
1224 if (lpcDSCBufferDesc ==
NULL) {
1225 WARN(
"invalid parameter: lpcDSCBufferDesc == NULL)\n");
1229 if (lplpDSCaptureBuffer ==
NULL) {
1230 WARN(
"invalid parameter: lplpDSCaptureBuffer == NULL\n");
1235 WARN(
"invalid parameter: pUnk != NULL\n");
1240 if (
This->device->capture_buffer) {
1241 WARN(
"invalid parameter: already has buffer\n");
1249 WARN(
"IDirectSoundCaptureBufferImpl_Create failed\n");
1262 WARN(
"not initialized\n");
1266 if (lpDSCCaps==
NULL) {
1267 WARN(
"invalid parameter: lpDSCCaps== NULL\n");
1271 if (lpDSCCaps->
dwSize <
sizeof(*lpDSCCaps)) {
1272 WARN(
"invalid parameter: lpDSCCaps->dwSize = %d\n", lpDSCCaps->
dwSize);
1276 lpDSCCaps->
dwFlags =
This->device->drvcaps.dwFlags;
1280 TRACE(
"(flags=0x%08x,format=0x%08x,channels=%d)\n",lpDSCCaps->
dwFlags,
1294 WARN(
"already initialized\n");
1300static const IDirectSoundCaptureVtbl
dscvt =
1317 TRACE(
"(%p)\n", ppDSC);
1322 WARN(
"out of memory\n");
1358 WARN(
"IDirectSoundCaptureImpl_Create failed\n");
1387 WARN(
"IDirectSoundCaptureImpl_Create failed\n");
1425 if (ppDSC ==
NULL) {
1426 WARN(
"invalid parameter: ppDSC == NULL\n");
1431 WARN(
"invalid parameter: pUnkOuter != NULL\n");
1481 if (ppDSC8 ==
NULL) {
1482 WARN(
"invalid parameter: ppDSC8 == NULL\n");
1487 WARN(
"invalid parameter: pUnkOuter != NULL\n");
#define InterlockedIncrement
#define InterlockedDecrement
#define UlongToHandle(ul)
HRESULT WINAPI DirectSoundCaptureCreate8(LPCGUID lpcGUID, LPDIRECTSOUNDCAPTURE8 *ppDSC8, LPUNKNOWN pUnkOuter)
HRESULT WINAPI DirectSoundCaptureCreate(LPCGUID lpcGUID, LPDIRECTSOUNDCAPTURE *ppDSC, LPUNKNOWN pUnkOuter)
HRESULT WINAPI GetDeviceID(LPCGUID pGuidSrc, LPGUID pGuidDest)
static HRESULT WINAPI IDirectSoundCaptureBufferImpl_Start(LPDIRECTSOUNDCAPTUREBUFFER8 iface, DWORD dwFlags)
static ULONG WINAPI IDirectSoundCaptureBufferImpl_Release(LPDIRECTSOUNDCAPTUREBUFFER8 iface)
static HRESULT WINAPI IDirectSoundCaptureNotifyImpl_QueryInterface(LPDIRECTSOUNDNOTIFY iface, REFIID riid, LPVOID *ppobj)
HRESULT DSOUND_CaptureCreate8(REFIID riid, LPDIRECTSOUNDCAPTURE8 *ppDSC8)
static ULONG WINAPI IDirectSoundCaptureImpl_AddRef(LPDIRECTSOUNDCAPTURE iface)
static const IDirectSoundCaptureBuffer8Vtbl dscbvt
HRESULT DSOUND_CaptureCreate(REFIID riid, LPDIRECTSOUNDCAPTURE *ppDSC)
static HRESULT DirectSoundCaptureDevice_Initialize(DirectSoundCaptureDevice **ppDevice, LPCGUID lpcGUID)
static HRESULT DirectSoundCaptureDevice_Create(DirectSoundCaptureDevice **ppDevice)
static HRESULT WINAPI IDirectSoundCaptureBufferImpl_GetFXStatus(LPDIRECTSOUNDCAPTUREBUFFER8 iface, DWORD dwFXCount, LPDWORD pdwFXStatus)
static ULONG WINAPI IDirectSoundCaptureImpl_Release(LPDIRECTSOUNDCAPTURE iface)
static HRESULT WINAPI IDirectSoundCaptureBufferImpl_Lock(LPDIRECTSOUNDCAPTUREBUFFER8 iface, DWORD dwReadCusor, DWORD dwReadBytes, LPVOID *lplpvAudioPtr1, LPDWORD lpdwAudioBytes1, LPVOID *lplpvAudioPtr2, LPDWORD lpdwAudioBytes2, DWORD dwFlags)
static HRESULT WINAPI IDirectSoundCaptureImpl_QueryInterface(LPDIRECTSOUNDCAPTURE iface, REFIID riid, LPVOID *ppobj)
static HRESULT WINAPI IDirectSoundCaptureImpl_Initialize(LPDIRECTSOUNDCAPTURE iface, LPCGUID lpcGUID)
static HRESULT IDirectSoundCaptureNotifyImpl_Create(IDirectSoundCaptureBufferImpl *dscb, IDirectSoundCaptureNotifyImpl **pdscn)
static HRESULT WINAPI IDirectSoundCaptureBufferImpl_GetFormat(LPDIRECTSOUNDCAPTUREBUFFER8 iface, LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten)
static ULONG DirectSoundCaptureDevice_Release(DirectSoundCaptureDevice *device)
static const IDirectSoundCaptureVtbl dscvt
static HRESULT IDirectSoundCaptureBufferImpl_Create(DirectSoundCaptureDevice *device, IDirectSoundCaptureBufferImpl **ppobj, LPCDSCBUFFERDESC lpcDSCBufferDesc)
static HRESULT WINAPI IDirectSoundCaptureImpl_GetCaps(LPDIRECTSOUNDCAPTURE iface, LPDSCCAPS lpDSCCaps)
static void CALLBACK DSOUND_capture_callback(HWAVEIN hwi, UINT msg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2)
static ULONG WINAPI IDirectSoundCaptureNotifyImpl_Release(LPDIRECTSOUNDNOTIFY iface)
static const char *const captureStateString[]
static HRESULT WINAPI IDirectSoundCaptureBufferImpl_GetCurrentPosition(LPDIRECTSOUNDCAPTUREBUFFER8 iface, LPDWORD lpdwCapturePosition, LPDWORD lpdwReadPosition)
static void capture_CheckNotify(IDirectSoundCaptureBufferImpl *This, DWORD from, DWORD len)
DirectSoundCaptureDevice * DSOUND_capture[MAXWAVEDRIVERS]
static HRESULT WINAPI IDirectSoundCaptureBufferImpl_QueryInterface(LPDIRECTSOUNDCAPTUREBUFFER8 iface, REFIID riid, LPVOID *ppobj)
static HRESULT WINAPI IDirectSoundCaptureBufferImpl_Stop(LPDIRECTSOUNDCAPTUREBUFFER8 iface)
static HRESULT WINAPI IDirectSoundCaptureImpl_CreateCaptureBuffer(LPDIRECTSOUNDCAPTURE iface, LPCDSCBUFFERDESC lpcDSCBufferDesc, LPDIRECTSOUNDCAPTUREBUFFER *lplpDSCaptureBuffer, LPUNKNOWN pUnk)
static const IDirectSoundNotifyVtbl dscnvt
static HRESULT WINAPI IDirectSoundCaptureBufferImpl_GetObjectInPath(LPDIRECTSOUNDCAPTUREBUFFER8 iface, REFGUID rguidObject, DWORD dwIndex, REFGUID rguidInterface, LPVOID *ppObject)
static HRESULT WINAPI IDirectSoundCaptureNotifyImpl_SetNotificationPositions(LPDIRECTSOUNDNOTIFY iface, DWORD howmuch, LPCDSBPOSITIONNOTIFY notify)
static ULONG WINAPI IDirectSoundCaptureBufferImpl_AddRef(LPDIRECTSOUNDCAPTUREBUFFER8 iface)
static HRESULT IDirectSoundCaptureImpl_Create(LPDIRECTSOUNDCAPTURE8 *ppDSC)
static HRESULT WINAPI IDirectSoundCaptureBufferImpl_Initialize(LPDIRECTSOUNDCAPTUREBUFFER8 iface, LPDIRECTSOUNDCAPTURE lpDSC, LPCDSCBUFFERDESC lpcDSCBDesc)
static HRESULT WINAPI IDirectSoundCaptureBufferImpl_GetStatus(LPDIRECTSOUNDCAPTUREBUFFER8 iface, LPDWORD lpdwStatus)
static HRESULT WINAPI IDirectSoundCaptureBufferImpl_GetCaps(LPDIRECTSOUNDCAPTUREBUFFER8 iface, LPDSCBCAPS lpDSCBCaps)
static HRESULT WINAPI IDirectSoundCaptureBufferImpl_Unlock(LPDIRECTSOUNDCAPTUREBUFFER8 iface, LPVOID lpvAudioPtr1, DWORD dwAudioBytes1, LPVOID lpvAudioPtr2, DWORD dwAudioBytes2)
static ULONG WINAPI IDirectSoundCaptureNotifyImpl_AddRef(LPDIRECTSOUNDNOTIFY iface)
#define HeapFree(x, y, z)
DWORD WINAPI GetTickCount(VOID)
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
#define IDsCaptureDriverBuffer_Release(p)
#define IDsCaptureDriver_GetDriverDesc(p, a)
#define IDsCaptureDriverBuffer_Lock(p, a, b, c, d, e, f, g)
#define IDsCaptureDriverBuffer_QueryInterface(p, a, b)
#define IDsCaptureDriver_GetCaps(p, a)
#define IDsCaptureDriverBuffer_Start(p, a)
#define DSDDESC_DOMMSYSTEMOPEN
#define IDsCaptureDriverBuffer_Stop(p)
#define IDsCaptureDriver_Open(p)
#define IDsDriverNotify_Release(p)
#define IDsDriverNotify_SetNotificationPositions(p, a, b)
#define DSDDESC_USESYSTEMMEMORY
#define IDsCaptureDriver_Release(p)
#define DSDDESC_DOMMSYSTEMSETFORMAT
#define IDsCaptureDriverBuffer_GetPosition(p, a, b)
#define IDsCaptureDriver_Close(p)
#define IDsCaptureDriver_CreateCaptureBuffer(p, a, b, c, d, e, f)
#define IDsCaptureDriverBuffer_Unlock(p, a, b, c, d)
#define DSERR_UNINITIALIZED
#define IID_IDirectSoundCapture8
#define DSERR_ALREADYINITIALIZED
struct IDirectSoundCapture * LPDIRECTSOUNDCAPTURE
struct IDirectSoundCaptureBuffer * LPDIRECTSOUNDCAPTUREBUFFER
#define IDirectSoundCapture_Release(p)
struct IDirectSoundCaptureBuffer8 * LPDIRECTSOUNDCAPTUREBUFFER8
#define IDirectSoundNotify_Release(p)
#define IDirectSoundCapture_AddRef(p)
#define DSERR_UNSUPPORTED
#define IDirectSoundNotify_AddRef(p)
#define IDirectSoundCapture_Initialize(p, a)
#define DSERR_OUTOFMEMORY
#define IDirectSoundCaptureBuffer_QueryInterface(p, a, b)
#define DSCBSTART_LOOPING
#define DSCBSTATUS_LOOPING
#define DSERR_INVALIDCALL
#define DSCBSTATUS_CAPTURING
#define DSERR_INVALIDPARAM
#define DSERR_NOAGGREGATION
struct IDirectSoundNotify * LPDIRECTSOUNDNOTIFY
#define IDirectSoundCaptureBuffer8_AddRef(p)
#define IDirectSoundCaptureBuffer_AddRef(p)
#define DSCCAPS_EMULDRIVER
struct IDirectSoundCapture * LPDIRECTSOUNDCAPTURE8
#define IDirectSoundCaptureBuffer_Release(p)
struct _DSCBCAPS DSCBCAPS
GUID DSOUND_capture_guids[MAXWAVEDRIVERS]
void setup_dsound_options(void)
LPWAVEFORMATEX DSOUND_CopyFormat(LPCWAVEFORMATEX wfex) DECLSPEC_HIDDEN
DWORD DSOUND_fraglen(DWORD nSamplesPerSec, DWORD nBlockAlign) DECLSPEC_HIDDEN
#define DS_HW_ACCEL_EMULATION
#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
#define CALLBACK_FUNCTION
_In_ DWORD _In_ DWORD dwOffset
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
IDirectSoundCaptureNotifyImpl * notify
const IDirectSoundCaptureVtbl * lpVtbl
DirectSoundCaptureDevice * device
const IDirectSoundNotifyVtbl * lpVtbl
IDirectSoundCaptureBufferImpl * dscb
LPWAVEFORMATEX lpwfxFormat
CHAR szPname[MAXPNAMELEN]
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
DWORD WINAPI GetCurrentThreadId(void)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
UINT WINAPI waveInAddBuffer(HWAVEIN hWaveIn, WAVEHDR *lpWaveInHdr, UINT uSize)
UINT WINAPI waveInPrepareHeader(HWAVEIN hWaveIn, WAVEHDR *lpWaveInHdr, UINT uSize)
UINT WINAPI waveInUnprepareHeader(HWAVEIN hWaveIn, WAVEHDR *lpWaveInHdr, UINT uSize)
UINT WINAPI waveInReset(HWAVEIN hWaveIn)
MMRESULT WINAPI waveInOpen(HWAVEIN *lphWaveIn, UINT uDeviceID, LPCWAVEFORMATEX lpFormat, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD dwFlags)
UINT WINAPI waveInGetNumDevs(void)
UINT WINAPI waveInClose(HWAVEIN hWaveIn)
UINT WINAPI waveInStart(HWAVEIN hWaveIn)
UINT WINAPI waveInGetDevCapsA(UINT_PTR uDeviceID, LPWAVEINCAPSA lpCaps, UINT uSize)
UINT WINAPI waveInMessage(HWAVEIN hWaveIn, UINT uMessage, DWORD_PTR dwParam1, DWORD_PTR dwParam2)