From 816845026ced45df4ae90b33586141f8cf1b6c29 Mon Sep 17 00:00:00 2001 From: Eric Pouech Date: Sat, 2 Dec 2000 23:42:42 +0000 Subject: [PATCH] Fixed bugs when tray was open. --- dlls/winmm/mcicda/mcicda.c | 17 +++++++---------- misc/cdrom.c | 2 +- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/dlls/winmm/mcicda/mcicda.c b/dlls/winmm/mcicda/mcicda.c index 6956167af34..68ed6a0310f 100644 --- a/dlls/winmm/mcicda/mcicda.c +++ b/dlls/winmm/mcicda/mcicda.c @@ -256,12 +256,10 @@ static DWORD MCICDA_Open(UINT wDevID, DWORD dwFlags, LPMCI_OPEN_PARMSA lpOpenPar dev = CDROM_OpenDev(&wmcda->wcda); if (!CDROM_Audio_GetTracksInfo(&wmcda->wcda, dev)) { - WARN("error reading TracksInfo !\n"); - CDROM_CloseDev(dev); - return MCIERR_INTERNAL; + wmcda->mciMode = MCI_MODE_OPEN; + } else { + MCICDA_Seek(wDevID, MCI_SEEK_TO_START, &seekParms); } - - MCICDA_Seek(wDevID, MCI_SEEK_TO_START, &seekParms); CDROM_CloseDev(dev); return 0; @@ -466,8 +464,7 @@ static DWORD MCICDA_Status(UINT wDevID, DWORD dwFlags, LPMCI_STATUS_PARMS lpParm TRACE("LENGTH=%lu !\n", lpParms->dwReturn); break; case MCI_STATUS_MODE: - if (!CDROM_Audio_GetCDStatus(&wmcda->wcda, -1)) - return MCICDA_GetError(wmcda); + CDROM_Audio_GetCDStatus(&wmcda->wcda, -1); lpParms->dwReturn = MCICDA_Mode(wmcda->wcda.cdaMode); if (!lpParms->dwReturn) lpParms->dwReturn = wmcda->mciMode; TRACE("MCI_STATUS_MODE=%08lX !\n", lpParms->dwReturn); @@ -475,9 +472,9 @@ static DWORD MCICDA_Status(UINT wDevID, DWORD dwFlags, LPMCI_STATUS_PARMS lpParm ret = MCI_RESOURCE_RETURNED; break; case MCI_STATUS_MEDIA_PRESENT: - if(!CDROM_Audio_GetCDStatus(&wmcda->wcda, -1)) - return MCICDA_GetError(wmcda); - lpParms->dwReturn = (wmcda->wcda.nTracks == 0) ? + CDROM_Audio_GetCDStatus(&wmcda->wcda, -1); + lpParms->dwReturn = (wmcda->wcda.nTracks == 0 || + wmcda->wcda.cdaMode == WINE_CDA_OPEN) ? MAKEMCIRESOURCE(FALSE, MCI_FALSE) : MAKEMCIRESOURCE(TRUE, MCI_TRUE); TRACE("MCI_STATUS_MEDIA_PRESENT =%c!\n", LOWORD(lpParms->dwReturn) ? 'Y' : 'N'); ret = MCI_RESOURCE_RETURNED; diff --git a/misc/cdrom.c b/misc/cdrom.c index f7c6f7a3ada..695eb184b01 100644 --- a/misc/cdrom.c +++ b/misc/cdrom.c @@ -577,7 +577,7 @@ int CDROM_SetDoor(WINE_CDAUDIO* wcda, int open, int parentdev) if (open) { ret = ioctl(dev, CDROMEJECT); } else { - ret = ioctl(dev, CDROMEJECT, 1); + ret = ioctl(dev, CDROMCLOSETRAY); } #else ret = (ioctl(dev, CDIOCALLOW, NULL)) ||