MythTV  master
gamescan.h
Go to the documentation of this file.
1 #ifndef GAMESCAN_H
2 #define GAMESCAN_H
3 
4 // C++
5 #include <map>
6 #include <set>
7 #include <utility>
8 
9 // Qt
10 #include <QMap>
11 #include <QObject> // for moc
12 #include <QStringList>
13 
14 // MythTV
15 #include <libmythbase/mthread.h>
16 
18 class GameHandler;
19 class RomInfo;
20 
22 {
23  QString system;
24  QString gametype;
25  QString romfile;
26  QString rompath;
27  QString romname;
28  bool indb { false };
29 };
30 
31 using RomFileInfoList = QList< RomFileInfo >;
32 
33 class GameScannerThread : public MThread
34 {
35  public:
36  explicit GameScannerThread(void);
37  ~GameScannerThread() override = default;
38 
39  void run(void) override; // MThread
40 
41  void SetHandlers(QList<GameHandler*> handlers) { m_handlers = std::move(handlers); };
42  void SetProgressDialog(MythUIProgressDialog *dialog) { m_dialog = dialog; };
43 
44  bool getDataChanged() const { return m_dbDataChanged; };
45 
46  private:
47 
48  static void removeOrphan(int id);
49 
50  void verifyFiles();
51  void updateDB();
52 
53  bool buildFileList();
54 
55  void SendProgressEvent(uint progress, uint total = 0,
56  QString message = QString());
57 
58  bool m_hasGUI;
59 
60  QList<GameHandler*> m_handlers;
61 
63  QList<uint> m_remove;
64  QList<RomInfo*> m_dbgames;
65 
67 
68  bool m_dbDataChanged {false};
69 };
70 
71 class GameScanner : public QObject
72 {
73  Q_OBJECT
74 
75  public:
76  GameScanner();
77  ~GameScanner() override;
78 
79  void doScan(QList<GameHandler*> handlers);
80  void doScanAll(void);
81 
82  signals:
83  void finished(bool);
84 
85  public slots:
86  void finishedScan();
87 
88  private:
90 };
91 
92 #endif
GameScanner::doScanAll
void doScanAll(void)
Definition: gamescan.cpp:232
GameScannerThread::buildFileList
bool buildFileList()
Definition: gamescan.cpp:135
RomFileInfo
Definition: gamescan.h:21
progress
bool progress
Definition: mythcommflag.cpp:69
GameScannerThread::getDataChanged
bool getDataChanged() const
Definition: gamescan.h:44
RomFileInfo::gametype
QString gametype
Definition: gamescan.h:24
GameHandler
Definition: gamehandler.h:64
GameScannerThread::m_remove
QList< uint > m_remove
Definition: gamescan.h:63
RomFileInfo::romname
QString romname
Definition: gamescan.h:27
GameScanner
Definition: gamescan.h:71
GameScanner::GameScanner
GameScanner()
Definition: gamescan.cpp:189
GameScannerThread::SetHandlers
void SetHandlers(QList< GameHandler * > handlers)
Definition: gamescan.h:41
GameScannerThread::m_handlers
QList< GameHandler * > m_handlers
Definition: gamescan.h:60
GameScannerThread::run
void run(void) override
Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead.
Definition: gamescan.cpp:34
MythUIProgressDialog
Definition: mythprogressdialog.h:59
GameScanner::finished
void finished(bool)
GameScannerThread::GameScannerThread
GameScannerThread(void)
Definition: gamescan.cpp:28
GameScanner::finishedScan
void finishedScan()
Definition: gamescan.cpp:254
GameScannerThread::SendProgressEvent
void SendProgressEvent(uint progress, uint total=0, QString message=QString())
Definition: gamescan.cpp:179
RomFileInfo::romfile
QString romfile
Definition: gamescan.h:25
GameScanner::~GameScanner
~GameScanner() override
Definition: gamescan.cpp:194
handlers
static QList< GameHandler * > * handlers
Definition: gamehandler.cpp:27
GameScannerThread::~GameScannerThread
~GameScannerThread() override=default
GameScannerThread::m_files
RomFileInfoList m_files
Definition: gamescan.h:62
uint
unsigned int uint
Definition: compat.h:81
GameScannerThread::m_dbgames
QList< RomInfo * > m_dbgames
Definition: gamescan.h:64
RomFileInfoList
QList< RomFileInfo > RomFileInfoList
Definition: gamescan.h:31
GameScannerThread::removeOrphan
static void removeOrphan(int id)
Definition: gamescan.cpp:54
RomFileInfo::system
QString system
Definition: gamescan.h:23
RomInfo
Definition: rominfo.h:14
GameScannerThread::SetProgressDialog
void SetProgressDialog(MythUIProgressDialog *dialog)
Definition: gamescan.h:42
GameScannerThread::m_hasGUI
bool m_hasGUI
Definition: gamescan.h:58
GameScannerThread::updateDB
void updateDB()
Definition: gamescan.cpp:106
GameScannerThread
Definition: gamescan.h:33
GameScannerThread::m_dbDataChanged
bool m_dbDataChanged
Definition: gamescan.h:68
MThread
This is a wrapper around QThread that does several additional things.
Definition: mthread.h:48
mthread.h
RomFileInfo::rompath
QString rompath
Definition: gamescan.h:26
GameScannerThread::verifyFiles
void verifyFiles()
Definition: gamescan.cpp:65
RomFileInfo::indb
bool indb
Definition: gamescan.h:28
GameScanner::m_scanThread
GameScannerThread * m_scanThread
Definition: gamescan.h:89
GameScanner::doScan
void doScan(QList< GameHandler * > handlers)
Definition: gamescan.cpp:200
GameScannerThread::m_dialog
MythUIProgressDialog * m_dialog
Definition: gamescan.h:66