Commit 5c8fb168 authored by Robert Reif's avatar Robert Reif Committed by Alexandre Julliard

Finish DirectSoundCapture/DirectSoundCapture8 split.

Add tests to verify split.
parent cb6e4a12
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)
......
...@@ -665,6 +665,7 @@ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpvReserved) ...@@ -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);
} }
......
...@@ -64,6 +64,7 @@ typedef struct PrimaryBufferImpl PrimaryBufferImpl; ...@@ -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 ...@@ -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 ...@@ -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); ...@@ -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);
......
...@@ -688,7 +688,7 @@ static HRESULT WINAPI DSPROPERTY_DescriptionA( ...@@ -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( ...@@ -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( ...@@ -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;
......
...@@ -401,7 +401,7 @@ extern HRESULT WINAPI DirectSoundCaptureEnumerateA(LPDSENUMCALLBACKA, LPVOID); ...@@ -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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment