Ignore:
Timestamp:
Oct 22, 1999, 8:09:16 PM (26 years ago)
Author:
sandervl
Message:

Implemented correct waveOutGetNumDevs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/winmm/dwaveout.cpp

    r1011 r1404  
    1 /* $Id: dwaveout.cpp,v 1.7 1999-09-23 09:35:24 sandervl Exp $ */
     1/* $Id: dwaveout.cpp,v 1.8 1999-10-22 18:09:15 sandervl Exp $ */
    22
    33/*
     
    5656   this->dwInstance = dwInstance;
    5757
    58    callback((ULONG)this, WOM_OPEN, dwInstance, 0, 0);
     58   if(!ulError)
     59        callback((ULONG)this, WOM_OPEN, dwInstance, 0, 0);
    5960}
    6061/******************************************************************************/
     
    6667   this->hwndCallback = hwndCallback;
    6768
    68    PostMessageA(hwndCallback, WOM_OPEN, 0, 0);
     69   if(!ulError)
     70        PostMessageA(hwndCallback, WOM_OPEN, 0, 0);
    6971}
    7072/******************************************************************************/
     
    133135#endif
    134136    mciError(rc);
    135     ulError = MMSYSERR_NOTENABLED;
     137    ulError = MMSYSERR_NODRIVER;
    136138   }
    137139   if(rc == 0) {
     
    178180   MCI_GENERIC_PARMS    GenericParms;
    179181
    180    // Generic parameters
    181    GenericParms.hwndCallback = 0;   //hwndFrame
    182 
    183    // Stop the playback.
    184    mciSendCommand(DeviceId, MCI_STOP,MCI_WAIT, (PVOID)&GenericParms,0);
    185 
    186    mciSendCommand(DeviceId,
     182   if(!ulError) {
     183        // Generic parameters
     184        GenericParms.hwndCallback = 0;   //hwndFrame
     185
     186        // Stop the playback.
     187        mciSendCommand(DeviceId, MCI_STOP,MCI_WAIT, (PVOID)&GenericParms,0);
     188
     189        mciSendCommand(DeviceId,
    187190                  MCI_BUFFER,
    188191                  MCI_WAIT | MCI_DEALLOCATE_MEMORY,
     
    190193                  0);
    191194
    192    // Generic parameters
    193    GenericParms.hwndCallback = 0;   //hwndFrame
    194 
    195    // Close the device
    196    mciSendCommand(DeviceId, MCI_CLOSE, MCI_WAIT, (PVOID)&GenericParms, 0);
     195        // Generic parameters
     196        GenericParms.hwndCallback = 0;   //hwndFrame
     197
     198        // Close the device
     199        mciSendCommand(DeviceId, MCI_CLOSE, MCI_WAIT, (PVOID)&GenericParms, 0);
     200   }
    197201
    198202   if(wmutex)
    199     wmutex->enter(VMUTEX_WAIT_FOREVER);
     203        wmutex->enter(VMUTEX_WAIT_FOREVER);
    200204
    201205   State = STATE_STOPPED;
     
    215219    wmutex->leave();
    216220
    217    if(callback) {
    218     callback((ULONG)this, WOM_CLOSE, dwInstance, 0, 0);
    219    }
    220    else
    221    if(hwndCallback)
    222     PostMessageA(hwndCallback, WOM_CLOSE, 0, 0);
     221   if(!ulError) {
     222        if(callback) {
     223                callback((ULONG)this, WOM_CLOSE, dwInstance, 0, 0);
     224        }
     225        else
     226        if(hwndCallback)
     227                PostMessageA(hwndCallback, WOM_CLOSE, 0, 0);
     228   }
    223229
    224230   if(wmutex)
     
    237243{
    238244  return(ulError);
     245}
     246/******************************************************************************/
     247/******************************************************************************/
     248int DartWaveOut::getNumDevices()
     249{
     250 MCI_GENERIC_PARMS  GenericParms;
     251 MCI_AMP_OPEN_PARMS AmpOpenParms;
     252 APIRET rc;
     253
     254   // Setup the open structure, pass the playlist and tell MCI_OPEN to use it
     255   memset(&AmpOpenParms,0,sizeof(AmpOpenParms));
     256
     257   AmpOpenParms.usDeviceID = ( USHORT ) 0;
     258   AmpOpenParms.pszDeviceType = ( PSZ ) MCI_DEVTYPE_AUDIO_AMPMIX;
     259
     260   rc = mciSendCommand(0, MCI_OPEN,
     261                       MCI_WAIT | MCI_OPEN_TYPE_ID | MCI_OPEN_SHAREABLE,
     262                       (PVOID) &AmpOpenParms,
     263                       0);
     264
     265   if(rc) {
     266        return 0; //no devices present
     267   }
     268
     269   // Generic parameters
     270   GenericParms.hwndCallback = 0;   //hwndFrame
     271
     272   // Close the device
     273   mciSendCommand(AmpOpenParms.usDeviceID, MCI_CLOSE, MCI_WAIT, (PVOID)&GenericParms, 0);
     274   
     275   return 1;
    239276}
    240277/******************************************************************************/
Note: See TracChangeset for help on using the changeset viewer.