31 const IDirectSoundFullDuplexVtbl *
lpVtbl;
56 const IDirectSoundCaptureVtbl *
lpVtbl;
109 TRACE(
"(%p,%p)\n",pdsfd,ppunk);
112 ERR(
"invalid parameter: pdsfd == NULL\n");
117 ERR(
"invalid parameter: ppunk == NULL\n");
122 if (pdsfdunk ==
NULL) {
123 WARN(
"out of memory\n");
180 TRACE(
"(%p,%p,%p,%p)\n",
This,dsbd,ppdsb,lpunk);
226 TRACE(
"(%p, %p)\n",
This, lpdwSpeakerConfig);
278 TRACE(
"(%p,%p)\n",pdsfd,ppds8);
281 ERR(
"invalid parameter: pdsfd == NULL\n");
286 ERR(
"invalid parameter: ppds8 == NULL\n");
291 WARN(
"not initialized\n");
297 if (pdsfdds8 ==
NULL) {
298 WARN(
"out of memory\n");
355 TRACE(
"(%p,%p,%p,%p)\n",
This,lpcDSCBufferDesc,lplpDSCaptureBuffer,
pUnk);
392 TRACE(
"(%p,%p)\n",pdsfd,ppdsc8);
395 ERR(
"invalid parameter: pdsfd == NULL\n");
399 if (ppdsc8 ==
NULL) {
400 ERR(
"invalid parameter: ppdsc8 == NULL\n");
405 WARN(
"not initialized\n");
411 if (pdsfddsc ==
NULL) {
412 WARN(
"out of memory\n");
448 WARN(
"invalid parameter\n");
455 if (!
This->pUnknown) {
457 if (!
This->pUnknown) {
458 WARN(
"IDirectSoundFullDuplex_IUnknown_Create() failed\n");
464 *ppobj =
This->pUnknown;
475 WARN(
"IDirectSoundFullDuplex_IDirectSound8_Create() failed\n");
487 WARN(
"IDirectSoundFullDuplex_IDirectSoundCapture_Create() failed\n");
508 if (
This->capture_device)
510 if (
This->renderer_device)
533 TRACE(
"(%p,%s,%s,%p,%p,%p,%x,%p,%p)\n",
This,
535 lpDscBufferDesc, lpDsBufferDesc,
hWnd, dwLevel,
536 lplpDirectSoundCaptureBuffer8, lplpDirectSoundBuffer8);
538 if (!lplpDirectSoundCaptureBuffer8 || !lplpDirectSoundBuffer8)
542 WARN(
"already initialized\n");
543 *lplpDirectSoundCaptureBuffer8 =
NULL;
544 *lplpDirectSoundBuffer8 =
NULL;
552 WARN(
"DirectSoundDevice_Initialize() failed\n");
553 *lplpDirectSoundCaptureBuffer8 =
NULL;
554 *lplpDirectSoundBuffer8 =
NULL;
561 (IDirectSoundBuffer**)lplpDirectSoundBuffer8,
NULL);
563 WARN(
"IDirectSoundBufferImpl_Create() failed\n");
564 *lplpDirectSoundCaptureBuffer8 =
NULL;
565 *lplpDirectSoundBuffer8 =
NULL;
573 WARN(
"DirectSoundCaptureDevice_Initialize() failed\n");
574 *lplpDirectSoundCaptureBuffer8 =
NULL;
575 *lplpDirectSoundBuffer8 =
NULL;
581 (IDirectSoundCaptureBuffer**)lplpDirectSoundCaptureBuffer8,
584 WARN(
"IDirectSoundCaptureBufferImpl_Create() failed\n");
585 *lplpDirectSoundCaptureBuffer8 =
NULL;
586 *lplpDirectSoundBuffer8 =
NULL;
593static const IDirectSoundFullDuplexVtbl
dsfdvt =
611 if (ppDSFD ==
NULL) {
612 WARN(
"invalid parameter: ppDSFD == NULL\n");
629 WARN(
"out of memory\n");
681 TRACE(
"(%s,%s,%p,%p,%p,%x,%p,%p,%p,%p)\n",
683 pcDSCBufferDesc, pcDSBufferDesc,
hWnd, dwLevel, ppDSFD, ppDSCBuffer8,
684 ppDSBuffer8, pUnkOuter);
687 WARN(
"pUnkOuter != 0\n");
692 if (pcDSCBufferDesc ==
NULL) {
693 WARN(
"invalid parameter: pcDSCBufferDesc == NULL\n");
698 if (pcDSBufferDesc ==
NULL) {
699 WARN(
"invalid parameter: pcDSBufferDesc == NULL\n");
704 if (ppDSFD ==
NULL) {
705 WARN(
"invalid parameter: ppDSFD == NULL\n");
709 if (ppDSCBuffer8 ==
NULL) {
710 WARN(
"invalid parameter: ppDSCBuffer8 == NULL\n");
715 if (ppDSBuffer8 ==
NULL) {
716 WARN(
"invalid parameter: ppDSBuffer8 == NULL\n");
729 hWnd, dwLevel, ppDSCBuffer8,
733 WARN(
"IDirectSoundFullDuplexImpl_Initialize failed\n");
#define InterlockedIncrement
#define InterlockedDecrement
HRESULT DSOUND_CaptureCreate8(REFIID riid, LPDIRECTSOUNDCAPTURE8 *ppDSC8)
HRESULT DSOUND_Create8(REFIID riid, LPDIRECTSOUND8 *ppDS)
const char * dumpCooperativeLevel(DWORD level)
static HRESULT WINAPI IDirectSoundFullDuplex_IDirectSound8_GetSpeakerConfig(LPDIRECTSOUND8 iface, LPDWORD lpdwSpeakerConfig)
static HRESULT WINAPI IDirectSoundFullDuplex_IDirectSoundCapture_QueryInterface(LPDIRECTSOUNDCAPTURE iface, REFIID riid, LPVOID *ppobj)
static HRESULT WINAPI IDirectSoundFullDuplex_IDirectSoundCapture_Initialize(LPDIRECTSOUNDCAPTURE iface, LPCGUID lpcGUID)
static HRESULT IDirectSoundFullDuplex_IUnknown_Create(LPDIRECTSOUNDFULLDUPLEX pdsfd, LPUNKNOWN *ppunk)
static ULONG WINAPI IDirectSoundFullDuplex_IDirectSound8_Release(LPDIRECTSOUND8 iface)
static HRESULT WINAPI IDirectSoundFullDuplex_IUnknown_QueryInterface(LPUNKNOWN iface, REFIID riid, LPVOID *ppobj)
static const IDirectSoundCaptureVtbl DirectSoundFullDuplex_DirectSoundCapture_Vtbl
static HRESULT WINAPI IDirectSoundFullDuplexImpl_QueryInterface(LPDIRECTSOUNDFULLDUPLEX iface, REFIID riid, LPVOID *ppobj)
static HRESULT WINAPI IDirectSoundFullDuplex_IDirectSound8_CreateSoundBuffer(LPDIRECTSOUND8 iface, LPCDSBUFFERDESC dsbd, LPLPDIRECTSOUNDBUFFER ppdsb, LPUNKNOWN lpunk)
static HRESULT WINAPI IDirectSoundFullDuplex_IDirectSound8_QueryInterface(LPDIRECTSOUND8 iface, REFIID riid, LPVOID *ppobj)
static HRESULT WINAPI IDirectSoundFullDuplex_IDirectSound8_VerifyCertification(LPDIRECTSOUND8 iface, DWORD *cert)
static ULONG WINAPI IDirectSoundFullDuplexImpl_Release(LPDIRECTSOUNDFULLDUPLEX iface)
HRESULT DSOUND_FullDuplexCreate(REFIID riid, LPDIRECTSOUNDFULLDUPLEX *ppDSFD)
static const IUnknownVtbl DirectSoundFullDuplex_Unknown_Vtbl
static HRESULT WINAPI IDirectSoundFullDuplex_IDirectSound8_Initialize(LPDIRECTSOUND8 iface, LPCGUID lpcGuid)
HRESULT WINAPI DirectSoundFullDuplexCreate(LPCGUID pcGuidCaptureDevice, LPCGUID pcGuidRenderDevice, LPCDSCBUFFERDESC pcDSCBufferDesc, LPCDSBUFFERDESC pcDSBufferDesc, HWND hWnd, DWORD dwLevel, LPDIRECTSOUNDFULLDUPLEX *ppDSFD, LPDIRECTSOUNDCAPTUREBUFFER8 *ppDSCBuffer8, LPDIRECTSOUNDBUFFER8 *ppDSBuffer8, LPUNKNOWN pUnkOuter)
static HRESULT WINAPI IDirectSoundFullDuplex_IDirectSoundCapture_GetCaps(LPDIRECTSOUNDCAPTURE iface, LPDSCCAPS lpDSCCaps)
static HRESULT WINAPI IDirectSoundFullDuplex_IDirectSound8_Compact(LPDIRECTSOUND8 iface)
static HRESULT WINAPI IDirectSoundFullDuplex_IDirectSound8_SetCooperativeLevel(LPDIRECTSOUND8 iface, HWND hwnd, DWORD level)
static const IDirectSound8Vtbl DirectSoundFullDuplex_DirectSound8_Vtbl
static ULONG WINAPI IDirectSoundFullDuplex_IUnknown_AddRef(LPUNKNOWN iface)
static ULONG WINAPI IDirectSoundFullDuplex_IDirectSoundCapture_AddRef(LPDIRECTSOUNDCAPTURE iface)
static HRESULT WINAPI IDirectSoundFullDuplex_IDirectSound8_GetCaps(LPDIRECTSOUND8 iface, LPDSCAPS lpDSCaps)
static ULONG WINAPI IDirectSoundFullDuplex_IDirectSoundCapture_Release(LPDIRECTSOUNDCAPTURE iface)
static HRESULT WINAPI IDirectSoundFullDuplex_IDirectSound8_SetSpeakerConfig(LPDIRECTSOUND8 iface, DWORD config)
static ULONG WINAPI IDirectSoundFullDuplex_IUnknown_Release(LPUNKNOWN iface)
static HRESULT IDirectSoundFullDuplex_IDirectSound8_Create(LPDIRECTSOUNDFULLDUPLEX pdsfd, LPDIRECTSOUND8 *ppds8)
static HRESULT IDirectSoundFullDuplex_IDirectSoundCapture_Create(LPDIRECTSOUNDFULLDUPLEX pdsfd, LPDIRECTSOUNDCAPTURE8 *ppdsc8)
static HRESULT WINAPI IDirectSoundFullDuplexImpl_Initialize(LPDIRECTSOUNDFULLDUPLEX iface, LPCGUID pCaptureGuid, LPCGUID pRendererGuid, LPCDSCBUFFERDESC lpDscBufferDesc, LPCDSBUFFERDESC lpDsBufferDesc, HWND hWnd, DWORD dwLevel, LPLPDIRECTSOUNDCAPTUREBUFFER8 lplpDirectSoundCaptureBuffer8, LPLPDIRECTSOUNDBUFFER8 lplpDirectSoundBuffer8)
static const IDirectSoundFullDuplexVtbl dsfdvt
static ULONG WINAPI IDirectSoundFullDuplexImpl_AddRef(LPDIRECTSOUNDFULLDUPLEX iface)
static HRESULT WINAPI IDirectSoundFullDuplex_IDirectSoundCapture_CreateCaptureBuffer(LPDIRECTSOUNDCAPTURE iface, LPCDSCBUFFERDESC lpcDSCBufferDesc, LPDIRECTSOUNDCAPTUREBUFFER *lplpDSCaptureBuffer, LPUNKNOWN pUnk)
static HRESULT WINAPI IDirectSoundFullDuplex_IDirectSound8_DuplicateSoundBuffer(LPDIRECTSOUND8 iface, LPDIRECTSOUNDBUFFER psb, LPLPDIRECTSOUNDBUFFER ppdsb)
static ULONG WINAPI IDirectSoundFullDuplex_IDirectSound8_AddRef(LPDIRECTSOUND8 iface)
#define HeapFree(x, y, z)
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
#define IDirectSound8_CreateSoundBuffer(p, a, b, c)
#define IDirectSound8_Compact(p)
#define DSERR_UNINITIALIZED
#define IID_IDirectSoundCapture8
#define DSERR_ALREADYINITIALIZED
struct IDirectSoundCapture * LPDIRECTSOUNDCAPTURE
struct IDirectSoundCaptureBuffer * LPDIRECTSOUNDCAPTUREBUFFER
#define IDirectSoundCapture_Release(p)
struct IDirectSoundBuffer * LPDIRECTSOUNDBUFFER
struct IDirectSoundCaptureBuffer8 * LPDIRECTSOUNDCAPTUREBUFFER8
struct IDirectSoundFullDuplex * LPDIRECTSOUNDFULLDUPLEX
struct IDirectSoundBuffer ** LPLPDIRECTSOUNDBUFFER
#define IDirectSoundCapture_CreateCaptureBuffer(p, a, b, c)
#define IDirectSoundCapture_Initialize(p, a)
#define IDirectSound8_SetSpeakerConfig(p, a)
#define DSERR_OUTOFMEMORY
struct IDirectSoundBuffer8 ** LPLPDIRECTSOUNDBUFFER8
#define IDirectSound8_GetCaps(p, a)
#define IDirectSound_Initialize(p, a)
#define IDirectSoundFullDuplex_QueryInterface(p, a, b)
struct IDirectSoundCaptureBuffer8 ** LPLPDIRECTSOUNDCAPTUREBUFFER8
#define DSERR_INVALIDPARAM
struct IDirectSound8 * LPDIRECTSOUND8
#define DSERR_NOAGGREGATION
struct IDirectSoundBuffer8 * LPDIRECTSOUNDBUFFER8
#define IDirectSound_Release(p)
#define IDirectSound8_Initialize(p, a)
#define IDirectSound8_DuplicateSoundBuffer(p, a, b)
#define IDirectSound8_GetSpeakerConfig(p, a)
struct IDirectSoundCapture * LPDIRECTSOUNDCAPTURE8
#define IDirectSound8_VerifyCertification(p, a)
#define IDirectSoundCapture_GetCaps(p, a)
#define IDirectSound8_SetCooperativeLevel(p, a, b)
void setup_dsound_options(void)
#define IsEqualIID(riid1, riid2)
IDirectSoundCapture * capture_device
LPDIRECTSOUNDCAPTURE pDSC
IDirectSound8 * renderer_device
const IDirectSoundFullDuplexVtbl * lpVtbl
IDirectSoundFullDuplexImpl * pdsfd
const IDirectSound8Vtbl * lpVtbl
const IDirectSoundCaptureVtbl * lpVtbl
IDirectSoundFullDuplexImpl * pdsfd
const IUnknownVtbl * lpVtbl
IDirectSoundFullDuplexImpl * pdsfd