From db4cc8df2e153813c18bc824b2676d8858daa91c Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Sat, 10 Dec 2005 00:36:34 +0000 Subject: [PATCH] Floppy drives can be reassigned, and other things can end up on A: and B:. Check the actual device type. --- .../MemoryCardDriverThreaded_Windows.cpp | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Windows.cpp b/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Windows.cpp index e0b7412a57..919f15c6df 100644 --- a/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Windows.cpp +++ b/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Windows.cpp @@ -58,6 +58,23 @@ void MemoryCardDriverThreaded_Windows::Reset() m_dwLastLogicalDrives = 0; } +static bool IsFloppyDrive( char c ) +{ + char szBuf[1024]; + + QueryDosDevice( ssprintf("%c:", c), szBuf, 1024 ); + + char *p = szBuf; + while( *p ) + { + if( BeginsWith(p, "\\Device\\Floppy") ) + return true; + + p += strlen(p)+1; + } + return false; +} + bool MemoryCardDriverThreaded_Windows::DoOneUpdate( bool bMount, vector& vStorageDevicesOut ) { DWORD dwNewLogicalDrives = ::GetLogicalDrives(); @@ -74,11 +91,13 @@ bool MemoryCardDriverThreaded_Windows::DoOneUpdate( bool bMount, vector