]> Shamusworld >> Repos - virtualjaguar/commitdiff
Minor tweaks to ROM discovery threading, beginnings of new config window
authorShamus Hammons <jlhamm@acm.org>
Fri, 29 Jan 2010 22:00:24 +0000 (22:00 +0000)
committerShamus Hammons <jlhamm@acm.org>
Fri, 29 Jan 2010 22:00:24 +0000 (22:00 +0000)
Makefile
src/gui/configwin.cpp [new file with mode: 0644]
src/gui/configwin.h [new file with mode: 0644]
src/gui/filepicker.cpp
src/gui/filepicker.h
src/gui/filethread.cpp
src/gui/filethread.h
src/gui/vj.pro

index 9b52935e19b800ed36d2248ccdd3db4118ce8d7e..2c3d82eaa6c21276ca4604e3c9565ed7ad5f315a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -74,6 +74,7 @@ OBJS = \
 \
        obj/about.o         \
        obj/app.o           \
+       obj/configwin.o     \
        obj/filepicker.o    \
        obj/filethread.o    \
        obj/mainwin.o       \
@@ -193,13 +194,13 @@ src/gui/Makefile: src/gui/vj-gui.pro src/gui/vj-gui.qrc
 #              ../../obj/mainwin.o \
 #              ../../obj/moc_mainwin.o \
 #              ../../obj/qrc_vj-gui.o
-QT_CFLAGS = `pkg-config --cflags QtGui`
+QT_CFLAGS = -MMD `pkg-config --cflags QtGui`
 # !!! THESE DEFINES ARE PLATFORM DEPENDENT !!!
 #QT_DEFINES = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
 QT_DEFINES = -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
 #QT_INCPATH = -I/usr/share/qt4/mkspecs/linux-g++ -I./src/gui -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I./obj
 QT_INCPATH = -I/usr/share/qt4/mkspecs/linux-g++ -I./src -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4 -I/usr/X11R6/include -I./obj
-QT_CXXFLAGS = -pipe -O2 -march=pentium-m -pipe -D_REENTRANT -Wall -W $(QT_DEFINES) -D$(SYSTYPE)
+QT_CXXFLAGS = -MMD -pipe -O2 -march=pentium-m -pipe -D_REENTRANT -Wall -W $(QT_DEFINES) -D$(SYSTYPE)
 
 obj/moc_%.cpp: src/gui/%.h
        @echo -e "\033[01;33m***\033[00;32m Creating $@...\033[00m"
diff --git a/src/gui/configwin.cpp b/src/gui/configwin.cpp
new file mode 100644 (file)
index 0000000..484e03b
--- /dev/null
@@ -0,0 +1,15 @@
+//
+// configwin.cpp - Configuration window
+//
+// by James L. Hammons
+// (C) 2010 Underground Software
+//
+// JLH = James L. Hammons <jlhamm@acm.org>
+//
+// Who  When        What
+// ---  ----------  -------------------------------------------------------------
+// JLH  01/29/2010  Created this file
+//
+
+#include "configwin.h"
+
diff --git a/src/gui/configwin.h b/src/gui/configwin.h
new file mode 100644 (file)
index 0000000..4f09095
--- /dev/null
@@ -0,0 +1,13 @@
+//
+// configwin.h - Configuration window
+//
+// by James L. Hammons
+// (C) 2010 Underground Software
+//
+
+#ifndef __CONFIGWIN_H__
+#define __CONFIGWIN_H__
+
+
+
+#endif // __CONFIGWIN_H__
index 9146bdf446722c949c11d54f755514945fbe0063..13cc4d1ad11b08863b36e8dd42616dbfd78d9bde 100644 (file)
@@ -14,6 +14,7 @@
 #include "filepicker.h"
 
 #include "crc32.h"
+#include "filethread.h"
 #include "settings.h"
 #include "types.h"
 
@@ -24,7 +25,7 @@ struct RomIdentifier
        const char file[128];
 };
 
-RomIdentifier romList[] = {
+RomIdentifier romList2[] = {
        { 0x0509C85E, "Raiden (World)", "" },
        { 0x08F15576, "Iron Soldier (World) (v1.04)", "" },
        { 0x0957A072, "Kasumi Ninja (World)", "" },
@@ -120,7 +121,9 @@ FilePickerWindow::FilePickerWindow(QWidget * parent/*= 0*/): QWidget(parent, Qt:
 
        layout->addWidget(fileList);
 
-       PopulateList();
+//     PopulateList();
+       fileThread = new FileThread(this);
+       fileThread->Go(fileList);
 }
 
 void FilePickerWindow::PopulateList(void)
@@ -144,12 +147,12 @@ void FilePickerWindow::PopulateList(void)
                        file.close();
 //printf("FilePickerWindow: File crc == %08X...\n", crc);
 
-                       for(int j=0; romList[j].crc32 != 0xFFFFFFFF; j++)
+                       for(int j=0; romList2[j].crc32 != 0xFFFFFFFF; j++)
                        {
-                               if (romList[j].crc32 == crc)
+                               if (romList2[j].crc32 == crc)
                                {
-printf("FilePickerWindow: Found match [%s]...\n", romList[j].name);
-                                       new QListWidgetItem(QIcon(":/res/generic.png"), romList[j].name, fileList);
+printf("FilePickerWindow: Found match [%s]...\n", romList2[j].name);
+                                       new QListWidgetItem(QIcon(":/res/generic.png"), romList2[j].name, fileList);
                                        break;
                                }
                        }
index e886e3b8a425d911518e1e2982b27b59cc019810..2978248521ba5ebe1e8318934983dee201e51210 100644 (file)
@@ -6,6 +6,7 @@
 
 // Forward declarations
 class QListWidget;
+class FileThread;
 
 class FilePickerWindow: public QWidget
 {
@@ -17,4 +18,5 @@ class FilePickerWindow: public QWidget
 
        private:
                QListWidget * fileList;
+               FileThread * fileThread;
 };
index 3d53f92b8dd4a02b85a08e7673e224a0d85a6a56..1f5a5aab51223e50e6d11af57d6a4f6b4c8d3214 100644 (file)
 
 #include "filethread.h"
 
+#include <QtGui>
 #include "crc32.h"
 #include "settings.h"
-#include "types.h"
+//#include "types.h"
 
 struct RomIdentifier
 {
@@ -120,7 +121,7 @@ FileThread::~FileThread()
        wait();
 }
 
-FileThread::Go(QListWidget * lw)
+void FileThread::Go(QListWidget * lw)
 {
        QMutexLocker locker(&mutex);
        this->listWidget = lw;
@@ -129,11 +130,6 @@ FileThread::Go(QListWidget * lw)
 
 void FileThread::run(void)
 {
-//     mutex.lock();
-//     if (abort)
-//             return;
-//     mutex.unlock();
-
        QDir romDir(vjs.ROMPath);
        QFileInfoList list = romDir.entryInfoList();
 
@@ -143,9 +139,6 @@ void FileThread::run(void)
                        return;
 
                QFileInfo fileInfo = list.at(i);
-//         std::cout << qPrintable(QString("%1 %2").arg(fileInfo.size(), 10)
-//                                                 .arg(fileInfo.fileName()));
-//         std::cout << std::endl;
                QFile file(romDir.filePath(fileInfo.fileName()));
                uint8 * buffer = new uint8[fileInfo.size()];
 
@@ -156,19 +149,31 @@ void FileThread::run(void)
                        file.close();
 //printf("FilePickerWindow: File crc == %08X...\n", crc);
 
-                       for(int j=0; romList[j].crc32 != 0xFFFFFFFF; j++)
+                       uint32 index = FindCRCIndexInFileList(crc);
+
+                       if (index != 0xFFFFFFFF)
                        {
-                               if (romList[j].crc32 == crc)
-                               {
-printf("FilePickerWindow: Found match [%s]...\n", romList[j].name);
-                                       new QListWidgetItem(QIcon(":/res/generic.png"), romList[j].name, listWidget);
-                                       break;
-                               }
+printf("FileThread: Found match [%s]...\n", romList[index].name);
+                               new QListWidgetItem(QIcon(":/res/generic.png"), romList[index].name, listWidget);
+//                             break;
                        }
                }
 
                delete[] buffer;
        }
+}
+
+//
+// Find a CRC in the ROM list. If it's there, return the index, otherwise return $FFFFFFFF
+//
+uint32 FileThread::FindCRCIndexInFileList(uint32 crc)
+{
+       for(int i=0; romList[i].crc32!=0xFFFFFFFF; i++)
+       {
+               if (romList[i].crc32 == crc)
+                       return i;
+       }
 
+       return 0xFFFFFFFF;
 }
 
index 88739762a7f4aa3d4cbaf7a5062a774bbff4d158..aec0038fa70d05726af9a4d40d1c974b34cb98a8 100644 (file)
@@ -2,10 +2,11 @@
 // filethread.h: File discovery thread class definition
 //
 
-#ifndef        // __FILETHREAD_H__
-#define        // __FILETHREAD_H__
+#ifndef __FILETHREAD_H__
+#define __FILETHREAD_H__
 
 #include <QtCore>
+#include "types.h"
 
 // Forward declarations
 class QListWidget;
@@ -15,6 +16,11 @@ class FileThread: public QThread
        public:
                FileThread(QObject * parent = 0);
                ~FileThread();
+               void Go(QListWidget * lw);
+
+       protected:
+               void run(void);
+               uint32 FindCRCIndexInFileList(uint32);
 
        private:
                QListWidget * listWidget;
index ae383ed42a443dabc600482d897cb3d27aaaa05f..5f1551faed03a91af8aef6b25f9ce6e8a575ec4b 100644 (file)
@@ -11,12 +11,16 @@ HEADERS += mainwin.h
 HEADERS += glwidget.h
 HEADERS += about.h
 HEADERS += filepicker.h
+HEADERS += filethread.h
+HEADERS += configwin.h
 
 SOURCES += app.cpp
 SOURCES += mainwin.cpp
 SOURCES += glwidget.cpp
 SOURCES += about.cpp
 SOURCES += filepicker.cpp
+SOURCES += filethread.cpp
+SOURCES += configwin.cpp
 
 RESOURCES += vj.qrc