Core: Normalize Path for RomList_RomListCache
This commit is contained in:
parent
cd9fc5984a
commit
544d6ba1b9
|
@ -299,6 +299,7 @@ CICChip CN64Rom::GetCicChipID(uint8_t * RomData, uint64_t * CRC)
|
||||||
case 0x000000D2E53EF39F: return CIC_NUS_8401; // 64DD IPL tool
|
case 0x000000D2E53EF39F: return CIC_NUS_8401; // 64DD IPL tool
|
||||||
case 0x000000D2E53E5DDA: return CIC_NUS_DDUS; // 64DD IPL US (different CIC)
|
case 0x000000D2E53E5DDA: return CIC_NUS_DDUS; // 64DD IPL US (different CIC)
|
||||||
case 0x0000000AF3A34BC8: return CIC_MINI_IPL3;
|
case 0x0000000AF3A34BC8: return CIC_MINI_IPL3;
|
||||||
|
case 0x0000007c56242373: return CIC_NUS_6102; // LibDragon IPL3
|
||||||
default:
|
default:
|
||||||
//Aleck64 CIC
|
//Aleck64 CIC
|
||||||
if (crcAleck64 == 0x000000A5F80BF620)
|
if (crcAleck64 == 0x000000A5F80BF620)
|
||||||
|
|
|
@ -112,7 +112,7 @@ void CRomList::RefreshRomListThread(void)
|
||||||
{
|
{
|
||||||
WriteTrace(TraceRomList, TraceVerbose, "Start");
|
WriteTrace(TraceRomList, TraceVerbose, "Start");
|
||||||
// Delete cache
|
// Delete cache
|
||||||
CPath(g_Settings->LoadStringVal(RomList_RomListCache)).Delete();
|
CPath(g_Settings->LoadStringVal(RomList_RomListCache)).NormalizePath(CPath::MODULE_DIRECTORY).Delete();
|
||||||
WriteTrace(TraceRomList, TraceVerbose, "Cache deleted");
|
WriteTrace(TraceRomList, TraceVerbose, "Cache deleted");
|
||||||
|
|
||||||
// Clear all current items
|
// Clear all current items
|
||||||
|
@ -689,7 +689,7 @@ void CRomList::ByteSwapRomData(uint8_t * Data, int32_t DataLen)
|
||||||
void CRomList::LoadRomList(void)
|
void CRomList::LoadRomList(void)
|
||||||
{
|
{
|
||||||
WriteTrace(TraceRomList, TraceVerbose, "Start");
|
WriteTrace(TraceRomList, TraceVerbose, "Start");
|
||||||
CPath FileName(g_Settings->LoadStringVal(RomList_RomListCache));
|
CPath FileName = CPath(g_Settings->LoadStringVal(RomList_RomListCache)).NormalizePath(CPath::MODULE_DIRECTORY);
|
||||||
CFile file(FileName, CFileBase::modeRead | CFileBase::modeNoTruncate);
|
CFile file(FileName, CFileBase::modeRead | CFileBase::modeNoTruncate);
|
||||||
|
|
||||||
if (!file.IsOpen())
|
if (!file.IsOpen())
|
||||||
|
@ -741,7 +741,7 @@ void CRomList::SaveRomList(strlist & FileList)
|
||||||
{
|
{
|
||||||
MD5 ListHash = RomListHash(FileList);
|
MD5 ListHash = RomListHash(FileList);
|
||||||
|
|
||||||
CPath FileName(g_Settings->LoadStringVal(RomList_RomListCache));
|
CPath FileName = CPath(g_Settings->LoadStringVal(RomList_RomListCache)).NormalizePath(CPath::MODULE_DIRECTORY);
|
||||||
CFile file(FileName, CFileBase::modeWrite | CFileBase::modeCreate);
|
CFile file(FileName, CFileBase::modeWrite | CFileBase::modeCreate);
|
||||||
file.Write(ListHash.raw_digest(), 16);
|
file.Write(ListHash.raw_digest(), 16);
|
||||||
|
|
||||||
|
|
|
@ -1263,14 +1263,14 @@ bool CRomBrowser::RomDirNeedsRefresh(void)
|
||||||
bool InWatchThread = (m_WatchThreadID == GetCurrentThreadId());
|
bool InWatchThread = (m_WatchThreadID == GetCurrentThreadId());
|
||||||
|
|
||||||
// Get old MD5 of file names
|
// Get old MD5 of file names
|
||||||
stdstr FileName = g_Settings->LoadStringVal(RomList_RomListCache);
|
CPath FileName = CPath(g_Settings->LoadStringVal(RomList_RomListCache)).NormalizePath(CPath::MODULE_DIRECTORY);
|
||||||
if (!CPath(FileName).Exists())
|
if (!FileName.Exists())
|
||||||
{
|
{
|
||||||
// If file does not exist then refresh the data
|
// If file does not exist then refresh the data
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
CFile hFile(FileName.c_str(), CFileBase::modeRead);
|
CFile hFile(FileName, CFileBase::modeRead);
|
||||||
if (!hFile.IsOpen())
|
if (!hFile.IsOpen())
|
||||||
{
|
{
|
||||||
// Could not validate, assume it is fine
|
// Could not validate, assume it is fine
|
||||||
|
@ -1301,41 +1301,31 @@ void CRomBrowser::WatchRomDirChanged(CRomBrowser * _this)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
WriteTrace(TraceUserInterface, TraceDebug, "1");
|
|
||||||
_this->m_WatchRomDir = g_Settings->LoadStringVal(RomList_GameDir);
|
_this->m_WatchRomDir = g_Settings->LoadStringVal(RomList_GameDir);
|
||||||
WriteTrace(TraceUserInterface, TraceDebug, "2");
|
|
||||||
if (_this->RomDirNeedsRefresh())
|
if (_this->RomDirNeedsRefresh())
|
||||||
{
|
{
|
||||||
WriteTrace(TraceUserInterface, TraceDebug, "2a");
|
|
||||||
_this->RomDirChanged();
|
_this->RomDirChanged();
|
||||||
}
|
}
|
||||||
WriteTrace(TraceUserInterface, TraceDebug, "3");
|
|
||||||
HANDLE hChange[] = {
|
HANDLE hChange[] = {
|
||||||
_this->m_WatchStopEvent,
|
_this->m_WatchStopEvent,
|
||||||
FindFirstChangeNotificationA(_this->m_WatchRomDir.c_str(), g_Settings->LoadBool(RomList_GameDirRecursive), FILE_NOTIFY_CHANGE_FILE_NAME | FILE_NOTIFY_CHANGE_SIZE),
|
FindFirstChangeNotificationA(_this->m_WatchRomDir.c_str(), g_Settings->LoadBool(RomList_GameDirRecursive), FILE_NOTIFY_CHANGE_FILE_NAME | FILE_NOTIFY_CHANGE_SIZE),
|
||||||
};
|
};
|
||||||
WriteTrace(TraceUserInterface, TraceDebug, "4");
|
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
WriteTrace(TraceUserInterface, TraceDebug, "5");
|
|
||||||
if (WaitForMultipleObjects(sizeof(hChange) / sizeof(hChange[0]), hChange, false, INFINITE) == WAIT_OBJECT_0)
|
if (WaitForMultipleObjects(sizeof(hChange) / sizeof(hChange[0]), hChange, false, INFINITE) == WAIT_OBJECT_0)
|
||||||
{
|
{
|
||||||
WriteTrace(TraceUserInterface, TraceDebug, "5a");
|
|
||||||
FindCloseChangeNotification(hChange[1]);
|
FindCloseChangeNotification(hChange[1]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
WriteTrace(TraceUserInterface, TraceDebug, "5b");
|
|
||||||
if (_this->RomDirNeedsRefresh())
|
if (_this->RomDirNeedsRefresh())
|
||||||
{
|
{
|
||||||
_this->RomDirChanged();
|
_this->RomDirChanged();
|
||||||
}
|
}
|
||||||
WriteTrace(TraceUserInterface, TraceDebug, "5c");
|
|
||||||
if (!FindNextChangeNotification(hChange[1]))
|
if (!FindNextChangeNotification(hChange[1]))
|
||||||
{
|
{
|
||||||
FindCloseChangeNotification(hChange[1]);
|
FindCloseChangeNotification(hChange[1]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
WriteTrace(TraceUserInterface, TraceDebug, "5d");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (...)
|
catch (...)
|
||||||
|
|
Loading…
Reference in New Issue