diff --git a/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Windows.cpp b/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Windows.cpp index b642d91f2c..7a5389f39f 100644 --- a/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Windows.cpp +++ b/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Windows.cpp @@ -75,6 +75,68 @@ static bool IsFloppyDrive( char c ) return false; } +void MemoryCardDriverThreaded_Windows::GetUSBStorageDevices( vector& vDevicesOut ) +{ + const int MAX_DRIVES = 26; + CString sDrives; + for( int i=0; iMount( &usbd ); + FILEMAN->Mount( "dir", usbd.sOsMountDir, TEMP_MOUNT_POINT_INTERNAL ); + FILEMAN->Mount( "timeout", TEMP_MOUNT_POINT_INTERNAL, TEMP_MOUNT_POINT ); + + usbd.bIsNameAvailable = PROFILEMAN->FastLoadProfileNameFromMemoryCard( TEMP_MOUNT_POINT, usbd.sName ); + + FILEMAN->Unmount( "timeout", TEMP_MOUNT_POINT_INTERNAL, TEMP_MOUNT_POINT ); + FILEMAN->Unmount( "dir", usbd.sOsMountDir, TEMP_MOUNT_POINT_INTERNAL ); + } + + LOG->Trace( "Found drives: %s", sDrives.c_str() ); +} + bool MemoryCardDriverThreaded_Windows::DoOneUpdate( bool bMount, vector& vStorageDevicesOut ) { DWORD dwNewLogicalDrives = ::GetLogicalDrives(); @@ -86,73 +148,8 @@ bool MemoryCardDriverThreaded_Windows::DoOneUpdate( bool bMount, vector vNewStorageDevices; + GetUSBStorageDevices( vStorageDevicesOut ); - const int MAX_DRIVES = 26; - CString sDrives; - for( int i=0; iMount( &usbd ); - FILEMAN->Mount( "dir", usbd.sOsMountDir, TEMP_MOUNT_POINT_INTERNAL ); - FILEMAN->Mount( "timeout", TEMP_MOUNT_POINT_INTERNAL, TEMP_MOUNT_POINT ); - - usbd.bIsNameAvailable = PROFILEMAN->FastLoadProfileNameFromMemoryCard( TEMP_MOUNT_POINT, usbd.sName ); - - FILEMAN->Unmount( "timeout", TEMP_MOUNT_POINT_INTERNAL, TEMP_MOUNT_POINT ); - FILEMAN->Unmount( "dir", usbd.sOsMountDir, TEMP_MOUNT_POINT_INTERNAL ); - } - - CHECKPOINT; - - vStorageDevicesOut = vNewStorageDevices; - - CHECKPOINT; - LOG->Trace( "Found drives: %s", sDrives.c_str() ); - } return true; } diff --git a/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Windows.h b/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Windows.h index 68981d327e..9124f53ae2 100644 --- a/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Windows.h +++ b/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Windows.h @@ -17,6 +17,8 @@ public: virtual void Reset(); private: + void GetUSBStorageDevices( vector& vDevicesOut ); + DWORD m_dwLastLogicalDrives; };