Finish DirectSoundCapture/DirectSoundCapture8 split.

Add tests to verify split.
This commit is contained in:
Robert Reif 2005-06-04 09:38:14 +00:00 committed by Alexandre Julliard
parent cb6e4a12ea
commit 5c8fb16893
6 changed files with 454 additions and 256 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
1 stdcall DirectSoundCreate(ptr ptr ptr) 1 stdcall DirectSoundCreate(ptr ptr ptr)
2 stdcall DirectSoundEnumerateA(ptr ptr) 2 stdcall DirectSoundEnumerateA(ptr ptr)
3 stdcall DirectSoundEnumerateW(ptr ptr) 3 stdcall DirectSoundEnumerateW(ptr ptr)
6 stdcall DirectSoundCaptureCreate(ptr ptr ptr) DirectSoundCaptureCreate8 6 stdcall DirectSoundCaptureCreate(ptr ptr ptr)
7 stdcall DirectSoundCaptureEnumerateA(ptr ptr) 7 stdcall DirectSoundCaptureEnumerateA(ptr ptr)
8 stdcall DirectSoundCaptureEnumerateW(ptr ptr) 8 stdcall DirectSoundCaptureEnumerateW(ptr ptr)
9 stdcall GetDeviceID(ptr ptr) 9 stdcall GetDeviceID(ptr ptr)

View File

@ -665,6 +665,7 @@ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpvReserved)
TRACE("DLL_PROCESS_ATTACH\n"); TRACE("DLL_PROCESS_ATTACH\n");
for (i = 0; i < MAXWAVEDRIVERS; i++) { for (i = 0; i < MAXWAVEDRIVERS; i++) {
DSOUND_renderer[i] = NULL; DSOUND_renderer[i] = NULL;
DSOUND_capture[i] = NULL;
INIT_GUID(DSOUND_renderer_guids[i], 0xbd6dd71a, 0x3deb, 0x11d1, 0xb1, 0x71, 0x00, 0xc0, 0x4f, 0xc2, 0x00, 0x00 + i); INIT_GUID(DSOUND_renderer_guids[i], 0xbd6dd71a, 0x3deb, 0x11d1, 0xb1, 0x71, 0x00, 0xc0, 0x4f, 0xc2, 0x00, 0x00 + i);
INIT_GUID(DSOUND_capture_guids[i], 0xbd6dd71b, 0x3deb, 0x11d1, 0xb1, 0x71, 0x00, 0xc0, 0x4f, 0xc2, 0x00, 0x00 + i); INIT_GUID(DSOUND_capture_guids[i], 0xbd6dd71b, 0x3deb, 0x11d1, 0xb1, 0x71, 0x00, 0xc0, 0x4f, 0xc2, 0x00, 0x00 + i);
} }

View File

@ -64,6 +64,7 @@ typedef struct PrimaryBufferImpl PrimaryBufferImpl;
typedef struct SecondaryBufferImpl SecondaryBufferImpl; typedef struct SecondaryBufferImpl SecondaryBufferImpl;
typedef struct IClassFactoryImpl IClassFactoryImpl; typedef struct IClassFactoryImpl IClassFactoryImpl;
typedef struct DirectSoundDevice DirectSoundDevice; typedef struct DirectSoundDevice DirectSoundDevice;
typedef struct DirectSoundCaptureDevice DirectSoundCaptureDevice;
/***************************************************************************** /*****************************************************************************
* IDirectSound implementation structure * IDirectSound implementation structure
@ -280,9 +281,14 @@ struct IDirectSoundCaptureImpl
const IDirectSoundCaptureVtbl *lpVtbl; const IDirectSoundCaptureVtbl *lpVtbl;
DWORD ref; DWORD ref;
DirectSoundCaptureDevice *device;
};
struct DirectSoundCaptureDevice
{
/* IDirectSoundCaptureImpl fields */ /* IDirectSoundCaptureImpl fields */
GUID guid; GUID guid;
BOOL initialized; DWORD ref;
/* DirectSound driver stuff */ /* DirectSound driver stuff */
PIDSCDRIVER driver; PIDSCDRIVER driver;
@ -308,6 +314,17 @@ struct IDirectSoundCaptureImpl
CRITICAL_SECTION lock; CRITICAL_SECTION lock;
}; };
HRESULT WINAPI IDirectSoundCaptureImpl_Create(
LPDIRECTSOUNDCAPTURE8 * ppds);
HRESULT WINAPI DSOUND_CaptureCreate(
LPDIRECTSOUNDCAPTURE *ppDSC,
IUnknown *pUnkOuter);
HRESULT WINAPI DSOUND_CaptureCreate8(
LPDIRECTSOUNDCAPTURE8 *ppDSC8,
IUnknown *pUnkOuter);
/***************************************************************************** /*****************************************************************************
* IDirectSoundCaptureBuffer implementation structure * IDirectSoundCaptureBuffer implementation structure
*/ */
@ -498,6 +515,8 @@ void DSOUND_Calc3DBuffer(IDirectSoundBufferImpl *dsb);
extern DirectSoundDevice* DSOUND_renderer[MAXWAVEDRIVERS]; extern DirectSoundDevice* DSOUND_renderer[MAXWAVEDRIVERS];
extern GUID DSOUND_renderer_guids[MAXWAVEDRIVERS]; extern GUID DSOUND_renderer_guids[MAXWAVEDRIVERS];
extern DirectSoundCaptureDevice * DSOUND_capture[MAXWAVEDRIVERS];
extern GUID DSOUND_capture_guids[MAXWAVEDRIVERS]; extern GUID DSOUND_capture_guids[MAXWAVEDRIVERS];
extern HRESULT mmErr(UINT err); extern HRESULT mmErr(UINT err);

View File

@ -688,7 +688,7 @@ static HRESULT WINAPI DSPROPERTY_DescriptionA(
if (err == DS_OK && drv) if (err == DS_OK && drv)
ppd->Type = DIRECTSOUNDDEVICE_TYPE_VXD; ppd->Type = DIRECTSOUNDDEVICE_TYPE_VXD;
else else
WARN("waveOutMessage(DRV_QUERYDSOUNDIFACE) failed\n"); WARN("waveInMessage(DRV_QUERYDSOUNDIFACE) failed\n");
break; break;
} else { } else {
WARN("no memory\n"); WARN("no memory\n");
@ -784,7 +784,7 @@ static HRESULT WINAPI DSPROPERTY_DescriptionA(
if (err == DS_OK && drv) if (err == DS_OK && drv)
ppd->Type = DIRECTSOUNDDEVICE_TYPE_VXD; ppd->Type = DIRECTSOUNDDEVICE_TYPE_VXD;
else else
WARN("waveOutMessage(DRV_QUERYDSOUNDIFACE) failed\n"); WARN("waveInMessage(DRV_QUERYDSOUNDIFACE) failed\n");
found = TRUE; found = TRUE;
break; break;
} else { } else {
@ -1508,7 +1508,7 @@ HRESULT WINAPI IKsPrivatePropertySetImpl_Create(
IKsPrivatePropertySetImpl *iks; IKsPrivatePropertySetImpl *iks;
iks = HeapAlloc(GetProcessHeap(),0,sizeof(*iks)); iks = HeapAlloc(GetProcessHeap(),0,sizeof(*iks));
iks->ref = 0; iks->ref = 1;
iks->lpVtbl = &ikspvt; iks->lpVtbl = &ikspvt;
*piks = iks; *piks = iks;

View File

@ -401,7 +401,7 @@ extern HRESULT WINAPI DirectSoundCaptureEnumerateA(LPDSENUMCALLBACKA, LPVOID);
extern HRESULT WINAPI DirectSoundCaptureEnumerateW(LPDSENUMCALLBACKW, LPVOID); extern HRESULT WINAPI DirectSoundCaptureEnumerateW(LPDSENUMCALLBACKW, LPVOID);
extern HRESULT WINAPI DirectSoundCreate8(LPCGUID lpGUID,LPDIRECTSOUND8 *ppDS8,LPUNKNOWN pUnkOuter); extern HRESULT WINAPI DirectSoundCreate8(LPCGUID lpGUID,LPDIRECTSOUND8 *ppDS8,LPUNKNOWN pUnkOuter);
extern HRESULT WINAPI DirectSoundCaptureCreate8(LPCGUID lpGUID, LPDIRECTSOUNDCAPTURE *ppDSC8, LPUNKNOWN pUnkOuter); extern HRESULT WINAPI DirectSoundCaptureCreate8(LPCGUID lpGUID, LPDIRECTSOUNDCAPTURE8 *ppDSC8, LPUNKNOWN pUnkOuter);
extern HRESULT WINAPI DirectSoundFullDuplexCreate(LPCGUID pcGuidCaptureDevice, LPCGUID pcGuidRenderDevice, extern HRESULT WINAPI DirectSoundFullDuplexCreate(LPCGUID pcGuidCaptureDevice, LPCGUID pcGuidRenderDevice,
LPCDSCBUFFERDESC pcDSCBufferDesc, LPCDSBUFFERDESC pcDSBufferDesc, HWND hWnd, DWORD dwLevel, LPCDSCBUFFERDESC pcDSCBufferDesc, LPCDSBUFFERDESC pcDSBufferDesc, HWND hWnd, DWORD dwLevel,
LPDIRECTSOUNDFULLDUPLEX *ppDSFD, LPDIRECTSOUNDCAPTUREBUFFER8 *ppDSCBuffer8, LPDIRECTSOUNDBUFFER8 *ppDSBuffer8, LPUNKNOWN pUnkOuter); LPDIRECTSOUNDFULLDUPLEX *ppDSFD, LPDIRECTSOUNDCAPTUREBUFFER8 *ppDSCBuffer8, LPDIRECTSOUNDBUFFER8 *ppDSBuffer8, LPUNKNOWN pUnkOuter);