00001 #ifndef GAMESCAN_H 00002 #define GAMESCAN_H 00003 00004 #include <set> 00005 #include <map> 00006 00007 #include <QObject> // for moc 00008 #include <QStringList> 00009 #include <QMap> 00010 00011 #include "mthread.h" 00012 00013 class QStringList; 00014 00015 class MythUIProgressDialog; 00016 class GameHandler; 00017 class RomInfo; 00018 00019 struct RomFileInfo 00020 { 00021 QString system; 00022 QString gametype; 00023 QString romfile; 00024 QString rompath; 00025 QString romname; 00026 bool indb; 00027 }; 00028 00029 typedef QList< RomFileInfo > RomFileInfoList; 00030 00031 class GameScannerThread : public MThread 00032 { 00033 public: 00034 GameScannerThread(QObject *parent); 00035 ~GameScannerThread(); 00036 00037 virtual void run(void); // MThread 00038 00039 void SetHandlers(QList<GameHandler*> handlers) { m_handlers = handlers; }; 00040 void SetProgressDialog(MythUIProgressDialog *dialog) { m_dialog = dialog; }; 00041 00042 bool getDataChanged() { return m_DBDataChanged; }; 00043 00044 private: 00045 00046 void removeOrphan(const int id); 00047 00048 void verifyFiles(); 00049 void updateDB(); 00050 00051 bool buildFileList(); 00052 00053 void SendProgressEvent(uint progress, uint total = 0, 00054 QString message = QString()); 00055 00056 QObject *m_parent; 00057 bool m_HasGUI; 00058 00059 QList<GameHandler*> m_handlers; 00060 00061 RomFileInfoList m_files; 00062 QList<uint> m_remove; 00063 QList<RomInfo*> m_dbgames; 00064 00065 MythUIProgressDialog *m_dialog; 00066 00067 bool m_DBDataChanged; 00068 }; 00069 00070 class GameScanner : public QObject 00071 { 00072 Q_OBJECT 00073 00074 public: 00075 GameScanner(); 00076 ~GameScanner(); 00077 00078 void doScan(QList<GameHandler*> handlers); 00079 void doScanAll(void); 00080 00081 signals: 00082 void finished(bool); 00083 00084 public slots: 00085 void finishedScan(); 00086 00087 private: 00088 GameScannerThread *m_scanThread; 00089 }; 00090 00091 #endif
1.6.3