Ignore:
Timestamp:
Dec 18, 1999, 11:15:16 AM (26 years ago)
Author:
sandervl
Message:

JW's update (wine 991212)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/msacm32/stream.cpp

    r1607 r2103  
    4848    ret = SendDriverMessage(was->pDrv->hDrvr, ACMDM_STREAM_CLOSE, (DWORD)&was->drvInst, 0);
    4949    if (ret == MMSYSERR_NOERROR) {
    50         /* FIXME: shall the was->pDrv->hDrvr be also closed ? */
     50        if (was->hAcmDriver)
     51            acmDriverClose(was->hAcmDriver, 0L);       
    5152        HeapFree(MSACM_hHeap, 0, was);
    5253    }
     
    169170        was->obj.pACMDriverID = wad->obj.pACMDriverID;
    170171        was->pDrv = wad;
    171        
     172        was->hAcmDriver = 0; /* not to close it in acmStreamClose */
     173
    172174        ret = SendDriverMessage(wad->hDrvr, ACMDM_STREAM_OPEN, (DWORD)&was->drvInst, 0L);
    173175        if (ret != MMSYSERR_NOERROR)
     
    183185                    was->obj.pACMDriverID = wad->obj.pACMDriverID;
    184186                    was->pDrv = wad;
     187                    was->hAcmDriver = had;
    185188                   
    186189                    ret = SendDriverMessage(wad->hDrvr, ACMDM_STREAM_OPEN, (DWORD)&was->drvInst, 0L);
    187                     /* FIXME: when shall the acmDriver be Close():d ? */
    188                     if (ret == MMSYSERR_NOERROR)
     190                    if (ret == MMSYSERR_NOERROR) {
     191                        if (fdwOpen & ACM_STREAMOPENF_QUERY) {
     192                            acmDriverClose(had, 0L);
     193                        }
    189194                        break;
     195                    }
    190196                }
    191197                /* no match, close this acm driver and try next one */
     
    198204        }
    199205    }
     206    ret = MMSYSERR_NOERROR;
     207    if (!(fdwOpen & ACM_STREAMOPENF_QUERY)) {
     208        if (phas)
     209            *phas = (HACMSTREAM)was;
     210        dprintf(("=> (%d)\n", ret));
     211        return ret;
     212    }
     213errCleanUp:             
    200214    if (phas)
    201         *phas = (HACMSTREAM)was;
    202     dprintf(("=> (%d)\n", ret));
    203     ret = MMSYSERR_NOERROR;
    204     if (!(fdwOpen & ACM_STREAMOPENF_QUERY))
    205         return ret;
    206 errCleanUp:             
     215        *phas = (HACMSTREAM)0;
    207216    HeapFree(MSACM_hHeap, 0, was);
    208217    dprintf(("=> (%d)\n", ret));
Note: See TracChangeset for help on using the changeset viewer.