Fixed bug in cache init.

This commit is contained in:
Eric Pouech 2002-02-08 17:11:22 +00:00 committed by Alexandre Julliard
parent 1282ef9420
commit 91f3fc7d59

View File

@ -70,11 +70,10 @@ BOOL MSACM_FindFormatTagInCache(WINE_ACMDRIVERID* padid, DWORD fmtTag, LPDWORD i
*/ */
static BOOL MSACM_FillCache(PWINE_ACMDRIVERID padid) static BOOL MSACM_FillCache(PWINE_ACMDRIVERID padid)
{ {
HACMDRIVER had = 0; HACMDRIVER had = 0;
int ntag; int ntag;
ACMDRIVERDETAILSW add; ACMDRIVERDETAILSW add;
ACMFORMATDETAILSW aftd; ACMFORMATTAGDETAILSW aftd;
WAVEFORMATEX wfx;
if (acmDriverOpen(&had, (HACMDRIVERID)padid, 0) != 0) if (acmDriverOpen(&had, (HACMDRIVERID)padid, 0) != 0)
return FALSE; return FALSE;
@ -95,20 +94,17 @@ static BOOL MSACM_FillCache(PWINE_ACMDRIVERID padid)
padid->fdwSupport = add.fdwSupport; padid->fdwSupport = add.fdwSupport;
aftd.cbStruct = sizeof(aftd); aftd.cbStruct = sizeof(aftd);
/* don't care about retrieving full struct... so a bare WAVEFORMATEX should do */
aftd.pwfx = &wfx;
aftd.cbwfx = sizeof(wfx);
for (ntag = 0; ntag < add.cFormatTags; ntag++) { for (ntag = 0; ntag < add.cFormatTags; ntag++) {
aftd.dwFormatIndex = ntag; aftd.dwFormatTagIndex = ntag;
if (MSACM_Message(had, ACMDM_FORMAT_DETAILS, (LPARAM)&aftd, ACM_FORMATDETAILSF_INDEX)) { if (MSACM_Message(had, ACMDM_FORMATTAG_DETAILS, (LPARAM)&aftd, ACM_FORMATTAGDETAILSF_INDEX)) {
TRACE("IIOs (%s)\n", padid->pszDriverAlias); TRACE("IIOs (%s)\n", padid->pszDriverAlias);
goto errCleanUp; goto errCleanUp;
} }
padid->aFormatTag[ntag].dwFormatTag = aftd.dwFormatTag; padid->aFormatTag[ntag].dwFormatTag = aftd.dwFormatTag;
padid->aFormatTag[ntag].cbwfx = aftd.cbwfx; padid->aFormatTag[ntag].cbwfx = aftd.cbFormatSize;
} }
acmDriverClose(had, 0); acmDriverClose(had, 0);
return TRUE; return TRUE;