2003-12-17 10:20:53 +00:00
|
|
|
#ifndef MEMORY_CARD_ENUMERATOR_H
|
|
|
|
|
#define MEMORY_CARD_ENUMERATOR_H 1
|
|
|
|
|
|
|
|
|
|
struct UsbStorageDevice
|
|
|
|
|
{
|
2003-12-18 07:46:21 +00:00
|
|
|
UsbStorageDevice() { MakeBlank(); }
|
|
|
|
|
|
|
|
|
|
void MakeBlank()
|
2003-12-17 10:20:53 +00:00
|
|
|
{
|
2004-03-21 22:32:16 +00:00
|
|
|
// -1 means "don't know"
|
2003-12-17 10:20:53 +00:00
|
|
|
iBus = -1;
|
2004-04-17 22:57:15 +00:00
|
|
|
iPort = -1;
|
|
|
|
|
iLevel = -1;
|
2004-04-29 04:12:56 +00:00
|
|
|
iScsiIndex = -1;
|
|
|
|
|
sScsiDevice = "";
|
2003-12-19 04:52:07 +00:00
|
|
|
sSerial = "";
|
|
|
|
|
sOsMountDir = "";
|
2004-05-03 00:34:54 +00:00
|
|
|
sName = "";
|
2003-12-17 10:20:53 +00:00
|
|
|
};
|
|
|
|
|
int iBus;
|
2004-04-17 22:57:15 +00:00
|
|
|
int iPort;
|
|
|
|
|
int iLevel;
|
2003-12-17 10:20:53 +00:00
|
|
|
CString sSerial;
|
2004-04-29 04:12:56 +00:00
|
|
|
int iScsiIndex;
|
|
|
|
|
CString sScsiDevice;
|
2003-12-17 10:20:53 +00:00
|
|
|
CString sOsMountDir; // WITHOUT trailing slash
|
2004-04-23 04:17:02 +00:00
|
|
|
CString sName; // Name in the profile on the memory card.
|
|
|
|
|
// This is passed here because it's read in the mounting thread.
|
2003-12-17 10:20:53 +00:00
|
|
|
|
2003-12-18 07:46:21 +00:00
|
|
|
bool IsBlank() { return sOsMountDir.empty(); }
|
|
|
|
|
|
2004-03-21 22:32:16 +00:00
|
|
|
bool operator==(const UsbStorageDevice& other) const
|
2003-12-17 10:20:53 +00:00
|
|
|
{
|
2004-05-03 00:34:54 +00:00
|
|
|
#define COMPARE(x) if( x != other.x ) return false;
|
|
|
|
|
COMPARE( iBus );
|
|
|
|
|
COMPARE( iPort );
|
|
|
|
|
COMPARE( iLevel );
|
|
|
|
|
COMPARE( sName );
|
|
|
|
|
COMPARE( sOsMountDir );
|
|
|
|
|
return true;
|
|
|
|
|
#undef COMPARE
|
2003-12-17 10:20:53 +00:00
|
|
|
}
|
2004-03-21 22:32:16 +00:00
|
|
|
bool operator!=(const UsbStorageDevice& other) const
|
|
|
|
|
{
|
|
|
|
|
return !operator==(other);
|
|
|
|
|
}
|
2003-12-17 10:20:53 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class MemoryCardDriver
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
MemoryCardDriver() {};
|
|
|
|
|
virtual ~MemoryCardDriver() {};
|
|
|
|
|
virtual bool StorageDevicesChanged() = 0;
|
|
|
|
|
virtual void GetStorageDevices( vector<UsbStorageDevice>& vStorageDevicesOut ) = 0;
|
2004-03-14 01:40:24 +00:00
|
|
|
virtual bool MountAndTestWrite( UsbStorageDevice* pDevice, CString sMountPoint ) = 0; // return false if mount or write fails
|
2004-03-20 22:16:57 +00:00
|
|
|
virtual void Unmount( UsbStorageDevice* pDevice, CString sMountPoint ) = 0;
|
2004-04-13 08:05:50 +00:00
|
|
|
virtual void Flush( UsbStorageDevice* pDevice ) = 0;
|
|
|
|
|
virtual void ResetUsbStorage() = 0;
|
2003-12-17 10:20:53 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Copyright (c) 2003 by the person(s) listed below. All rights reserved.
|
|
|
|
|
* Chris Danford
|
|
|
|
|
*/
|