X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fgui%2Ffilethread.cpp;h=e3b5ffd48a364ee2a12df75373088f244e1f7721;hb=240a6df48aebb5e17f82452c32e770cdfe9b5d5e;hp=bde97eddab985324e251aef1ffdca97477580fa9;hpb=f30bf746981a99079e766b0d4e9de5391a4175ff;p=virtualjaguar diff --git a/src/gui/filethread.cpp b/src/gui/filethread.cpp index bde97ed..e3b5ffd 100644 --- a/src/gui/filethread.cpp +++ b/src/gui/filethread.cpp @@ -17,7 +17,6 @@ #include "filethread.h" -#include #include "crc32.h" #include "file.h" #include "filedb.h" @@ -92,17 +91,20 @@ printf("FileThread: Aborting!!!\n"); // void FileThread::HandleFile(QFileInfo fileInfo) { + // Really, need to come up with some kind of cacheing scheme here, so we don't + // fish through these files every time we run VJ :-P +#warning "!!! Need to come up with some kind of cacheing scheme here !!!" bool haveZIPFile = (fileInfo.suffix().compare("zip", Qt::CaseInsensitive) == 0 ? true : false); uint32_t fileSize = 0; - uint8 * buffer = NULL; + uint8_t * buffer = NULL; if (haveZIPFile) { // ZIP files are special: They contain more than just the software now... ;-) // So now we fish around inside them to pull out the stuff we want. // Probably also need more stringent error checking as well... :-O - fileSize = GetFileFromZIP(fileInfo.filePath().toAscii(), FT_SOFTWARE, buffer); + fileSize = GetFileFromZIP(fileInfo.filePath().toUtf8(), FT_SOFTWARE, buffer); if (fileSize == 0) return; @@ -119,17 +121,17 @@ void FileThread::HandleFile(QFileInfo fileInfo) if (fileSize == 0) return; - buffer = new uint8[fileSize]; + buffer = new uint8_t[fileSize]; file.read((char *)buffer, fileSize); file.close(); } // Try to divine the file type by size & header - int fileType = ParseFileType(buffer[0], buffer[1], fileSize); + int fileType = ParseFileType(buffer, fileSize); // Check for Alpine ROM w/Universal Header bool foundUniversalHeader = HasUniversalHeader(buffer, fileSize); - uint32 crc; + uint32_t crc; //printf("FileThread: About to calc checksum on file with size %u... (buffer=%08X)\n", size, buffer); if (foundUniversalHeader) @@ -137,7 +139,7 @@ void FileThread::HandleFile(QFileInfo fileInfo) else crc = crc32_calcCheckSum(buffer, fileSize); - uint32 index = FindCRCIndexInFileList(crc); + uint32_t index = FindCRCIndexInFileList(crc); delete[] buffer; // Here we filter out files that are *not* in the DB and of unknown type, @@ -160,7 +162,7 @@ void FileThread::HandleFile(QFileInfo fileInfo) // See if we can fish out a label. :-) if (haveZIPFile) { - uint32 size = GetFileFromZIP(fileInfo.filePath().toAscii(), FT_LABEL, buffer); + uint32_t size = GetFileFromZIP(fileInfo.filePath().toUtf8(), FT_LABEL, buffer); //printf("FT: Label size = %u bytes.\n", size); if (size > 0) @@ -183,7 +185,7 @@ void FileThread::HandleFile(QFileInfo fileInfo) // Find a CRC in the ROM list (simple brute force algorithm). // If it's there, return the index, otherwise return $FFFFFFFF // -uint32 FileThread::FindCRCIndexInFileList(uint32 crc) +uint32_t FileThread::FindCRCIndexInFileList(uint32_t crc) { // Instead of a simple brute-force search, we should probably do a binary // partition search instead, since the CRCs are sorted numerically.