#include "global.h" #include "MemoryCardDriverThreaded.h" #include "RageLog.h" #include "RageUtil.h" #include "RageFileManager.h" int MemoryCardDriverThreaded::MountThread_Start( void *p ) { ((MemoryCardDriverThreaded*)p)->MountThreadMain(); return 0; } template bool VectorsAreEqual( const T &a, const T &b ) { if( a.size() != b.size() ) return false; for( unsigned i=0; iTrace( "Shutting down Mount thread..." ); m_threadMemoryCardMount.Wait(); LOG->Trace( "Mount thread shut down." ); } bool MemoryCardDriverThreaded::StorageDevicesChanged() { LockMut( m_mutexStorageDevices ); if( m_bStorageDevicesChanged ) { m_bStorageDevicesChanged = false; return true; } else { return false; } } void MemoryCardDriverThreaded::GetStorageDevices( vector& vDevicesOut ) { LockMut( m_mutexStorageDevices ); vDevicesOut.clear(); for( unsigned i=0; i::const_iterator iter = find( m_vStorageDevices.begin(), m_vStorageDevices.end(), *pDevice ); if( iter == m_vStorageDevices.end() ) { LOG->Warn( "Trying to mount a memory card that is no longer connected. bus %d port %d device %d path %s", pDevice->iBus, pDevice->iPort, pDevice->iLevel, pDevice->sOsMountDir.c_str() ); return false; } if( !iter->bWriteTestSucceeded ) return false; this->Mount( pDevice, sMountPoint ); return true; } /* * Copyright (c) 2003 by the person(s) listed below. All rights reserved. * Chris Danford */