add memory card level matching to disallow deep USB devices
This commit is contained in:
@@ -66,7 +66,7 @@ void MemoryCardManager::Update( float fDelta )
|
||||
const UsbStorageDevice &old = vOld[i];
|
||||
if( find(vNew.begin(),vNew.end(),old) == vNew.end() ) // didn't find
|
||||
{
|
||||
LOG->Trace( ssprintf("Disconnected bus %d port %d device %d path %s", old.iBus, old.iPortOnHub, old.iDeviceOnBus, old.sOsMountDir.c_str()) );
|
||||
LOG->Trace( ssprintf("Disconnected bus %d port %d device %d path %s", old.iBus, old.iPort, old.iLevel, old.sOsMountDir.c_str()) );
|
||||
vDisconnects.push_back( old );
|
||||
}
|
||||
}
|
||||
@@ -79,7 +79,7 @@ void MemoryCardManager::Update( float fDelta )
|
||||
const UsbStorageDevice &newd = vNew[i];
|
||||
if( find(vOld.begin(),vOld.end(),newd) == vOld.end() ) // didn't find
|
||||
{
|
||||
LOG->Trace( ssprintf("Connected bus %d port %d device %d path %s", newd.iBus, newd.iPortOnHub, newd.iDeviceOnBus, newd.sOsMountDir.c_str()) );
|
||||
LOG->Trace( ssprintf("Connected bus %d port %d device %d path %s", newd.iBus, newd.iPort, newd.iLevel, newd.sOsMountDir.c_str()) );
|
||||
vConnects.push_back( newd );
|
||||
}
|
||||
}
|
||||
@@ -203,8 +203,8 @@ void MemoryCardManager::AssignUnassignedCards()
|
||||
UsbStorageDevice &usbd = vUnassignedDevices[i];
|
||||
if( usbd.sOsMountDir.CompareNoCase(PREFSMAN->m_sMemoryCardOsMountPoint[p]) == 0 ) // match
|
||||
{
|
||||
LOG->Trace( "dir match: iUsbStorageIndex: %d, iBus: %d, iDeviceOnBus: %d, iPortOnHub: %d",
|
||||
usbd.iUsbStorageIndex, usbd.iBus, usbd.iDeviceOnBus, usbd.iPortOnHub );
|
||||
LOG->Trace( "dir match: iUsbStorageIndex: %d, iBus: %d, iLevel: %d, iPort: %d",
|
||||
usbd.iUsbStorageIndex, usbd.iBus, usbd.iLevel, usbd.iPort );
|
||||
goto match;
|
||||
}
|
||||
}
|
||||
@@ -220,11 +220,15 @@ void MemoryCardManager::AssignUnassignedCards()
|
||||
continue; // not a match
|
||||
|
||||
if( PREFSMAN->m_iMemoryCardUsbPort[p] != -1 &&
|
||||
PREFSMAN->m_iMemoryCardUsbPort[p] != usbd.iPortOnHub )
|
||||
PREFSMAN->m_iMemoryCardUsbPort[p] != usbd.iPort )
|
||||
continue; // not a match
|
||||
|
||||
LOG->Trace( "bus/port match: iUsbStorageIndex: %d, iBus: %d, iDeviceOnBus: %d, iPortOnHub: %d",
|
||||
usbd.iUsbStorageIndex, usbd.iBus, usbd.iDeviceOnBus, usbd.iPortOnHub );
|
||||
if( PREFSMAN->m_iMemoryCardUsbLevel[p] != -1 &&
|
||||
PREFSMAN->m_iMemoryCardUsbLevel[p] != usbd.iLevel )
|
||||
continue; // not a match
|
||||
|
||||
LOG->Trace( "bus/port match: iUsbStorageIndex: %d, iBus: %d, iLevel: %d, iPort: %d",
|
||||
usbd.iUsbStorageIndex, usbd.iBus, usbd.iLevel, usbd.iPort );
|
||||
goto match;
|
||||
}
|
||||
|
||||
|
||||
@@ -279,6 +279,7 @@ PrefsManager::PrefsManager()
|
||||
{
|
||||
m_iMemoryCardUsbBus[p] = -1;
|
||||
m_iMemoryCardUsbPort[p] = -1;
|
||||
m_iMemoryCardUsbLevel[p] = -1;
|
||||
}
|
||||
|
||||
m_sMemoryCardProfileSubdir = PRODUCT_NAME;
|
||||
@@ -490,6 +491,7 @@ void PrefsManager::ReadGlobalPrefsFromDisk()
|
||||
FixSlashesInPlace( m_sMemoryCardOsMountPoint[p] );
|
||||
ini.GetValue( "Options", ssprintf("MemoryCardUsbBusP%d",p+1), m_iMemoryCardUsbBus[p] );
|
||||
ini.GetValue( "Options", ssprintf("MemoryCardUsbPortP%d",p+1), m_iMemoryCardUsbPort[p] );
|
||||
ini.GetValue( "Options", ssprintf("MemoryCardUsbLevelP%d",p+1), m_iMemoryCardUsbLevel[p] );
|
||||
}
|
||||
|
||||
ini.GetValue( "Options", "CenterImageTranslateX", m_iCenterImageTranslateX );
|
||||
@@ -707,6 +709,7 @@ void PrefsManager::SaveGlobalPrefsToDisk() const
|
||||
ini.SetValue( "Options", ssprintf("MemoryCardOsMountPointP%d",p+1), m_sMemoryCardOsMountPoint[p] );
|
||||
ini.SetValue( "Options", ssprintf("MemoryCardUsbBusP%d",p+1), m_iMemoryCardUsbBus[p] );
|
||||
ini.SetValue( "Options", ssprintf("MemoryCardUsbPortP%d",p+1), m_iMemoryCardUsbPort[p] );
|
||||
ini.SetValue( "Options", ssprintf("MemoryCardUsbLevelP%d",p+1), m_iMemoryCardUsbLevel[p] );
|
||||
}
|
||||
|
||||
ini.SetValue( "Options", "CenterImageTranslateX", m_iCenterImageTranslateX );
|
||||
|
||||
@@ -181,8 +181,9 @@ public:
|
||||
CString m_sMemoryCardProfileSubdir; // the directory on a memory card to look in for a profile
|
||||
CString m_sDefaultLocalProfileID[NUM_PLAYERS];
|
||||
CString m_sMemoryCardOsMountPoint[NUM_PLAYERS]; // if set, always use the device that mounts to this point
|
||||
int m_iMemoryCardUsbBus[NUM_PLAYERS]; // take the first storage device on this usb bus
|
||||
int m_iMemoryCardUsbPort[NUM_PLAYERS]; // take the first storage device on this usb bus
|
||||
int m_iMemoryCardUsbBus[NUM_PLAYERS]; // look for this bus when assigning cards. -1 = match any
|
||||
int m_iMemoryCardUsbPort[NUM_PLAYERS]; // look for this port when assigning cards. -1 = match any
|
||||
int m_iMemoryCardUsbLevel[NUM_PLAYERS]; // look for this level when assigning cards. -1 = match any
|
||||
int m_iCenterImageTranslateX;
|
||||
int m_iCenterImageTranslateY;
|
||||
float m_fCenterImageScaleX;
|
||||
|
||||
Reference in New Issue
Block a user