diff --git a/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Windows.cpp b/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Windows.cpp index a1cafc28d5..0991f88953 100644 --- a/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Windows.cpp +++ b/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Windows.cpp @@ -64,17 +64,24 @@ void MemoryCardDriverThreaded_Windows::ResetUsbStorage() m_dwLastLogicalDrives = 0; } -void MemoryCardDriverThreaded_Windows::MountThreadDoOneUpdate() +bool MemoryCardDriverThreaded_Windows::MountThreadWaitForUpdate() { DWORD dwNewLogicalDrives = ::GetLogicalDrives(); - if( dwNewLogicalDrives == m_dwLastLogicalDrives ) { // no change from last update usleep( 50000 ); - return; + return false; } + m_dwLastLogicalDrives = dwNewLogicalDrives; + return true; +} + +void MemoryCardDriverThreaded_Windows::MountThreadDoOneUpdate() +{ + DWORD dwNewLogicalDrives = ::GetLogicalDrives(); + { vector vNewStorageDevices; @@ -120,8 +127,6 @@ void MemoryCardDriverThreaded_Windows::MountThreadDoOneUpdate() } CHECKPOINT; - - m_dwLastLogicalDrives = dwNewLogicalDrives; } } diff --git a/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Windows.h b/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Windows.h index cb8c9a14c2..0ec66ac540 100644 --- a/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Windows.h +++ b/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Windows.h @@ -16,6 +16,7 @@ protected: virtual void Mount( UsbStorageDevice* pDevice, CString sMountPoint ); virtual void ResetUsbStorage(); virtual void MountThreadDoOneUpdate(); + virtual bool MountThreadWaitForUpdate(); DWORD m_dwLastLogicalDrives; };