Module: wine Branch: master Commit: 708eaaa6be40dd99bdd10b348e586f0f0791f137 URL: http://source.winehq.org/git/wine.git/?a=commit;h=708eaaa6be40dd99bdd10b348e...
Author: Maarten Lankhorst m.b.lankhorst@gmail.com Date: Sat Nov 14 14:30:49 2009 +0100
dsound: Implement DirectSoundCaptureEnumerateA on top of DirectSoundCaptureEnumerateW.
---
dlls/dsound/dsound_main.c | 42 ++++++------------------------------------ 1 files changed, 6 insertions(+), 36 deletions(-)
diff --git a/dlls/dsound/dsound_main.c b/dlls/dsound/dsound_main.c index eaeb778..bfb8708 100644 --- a/dlls/dsound/dsound_main.c +++ b/dlls/dsound/dsound_main.c @@ -400,51 +400,21 @@ HRESULT WINAPI DirectSoundEnumerateW( * Success: DS_OK * Failure: DSERR_INVALIDPARAM */ -HRESULT WINAPI -DirectSoundCaptureEnumerateA( +HRESULT WINAPI DirectSoundCaptureEnumerateA( LPDSENUMCALLBACKA lpDSEnumCallback, LPVOID lpContext) { - unsigned devs, wid; - DSDRIVERDESC desc; - GUID guid; - int err; - - TRACE("(%p,%p)\n", lpDSEnumCallback, lpContext ); + struct morecontext context;
if (lpDSEnumCallback == NULL) { - WARN("invalid parameter: lpDSEnumCallback == NULL\n"); + WARN("invalid parameter: lpDSEnumCallback == NULL\n"); return DSERR_INVALIDPARAM; }
- devs = waveInGetNumDevs(); - if (devs > 0) { - if (GetDeviceID(&DSDEVID_DefaultCapture, &guid) == DS_OK) { - for (wid = 0; wid < devs; ++wid) { - if (IsEqualGUID( &guid, &DSOUND_capture_guids[wid] ) ) { - err = mmErr(waveInMessage(UlongToHandle(wid),DRV_QUERYDSOUNDDESC,(DWORD_PTR)&desc,0)); - if (err == DS_OK) { - TRACE("calling lpDSEnumCallback(NULL,"%s","%s",%p)\n", - "Primary Sound Capture Driver",desc.szDrvname,lpContext); - if (lpDSEnumCallback(NULL, "Primary Sound Capture Driver", desc.szDrvname, lpContext) == FALSE) - return DS_OK; - } - } - } - } - } - - for (wid = 0; wid < devs; ++wid) { - err = mmErr(waveInMessage(UlongToHandle(wid),DRV_QUERYDSOUNDDESC,(DWORD_PTR)&desc,0)); - if (err == DS_OK) { - TRACE("calling lpDSEnumCallback(%s,"%s","%s",%p)\n", - debugstr_guid(&DSOUND_capture_guids[wid]),desc.szDesc,desc.szDrvname,lpContext); - if (lpDSEnumCallback(&DSOUND_capture_guids[wid], desc.szDesc, desc.szDrvname, lpContext) == FALSE) - return DS_OK; - } - } + context.callA = lpDSEnumCallback; + context.data = lpContext;
- return DS_OK; + return DirectSoundCaptureEnumerateW(a_to_w_callback, &context); }
/***************************************************************************