summaryrefslogtreecommitdiff
path: root/src/citra_qt/main.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2015-05-01 19:05:18 -0400
committerbunnei <bunneidev@gmail.com>2015-05-01 19:05:18 -0400
commit6a2d8c46f21e8813e0472dba28932ed461ce1a66 (patch)
treed7057cf9926c822c12cc7d82814a252db79ca600 /src/citra_qt/main.h
parent4d30edc11effef4021a7bd7d5dfe1d92678708b9 (diff)
parent046dd6e3ef3f4b4da2dd2eef0bdfe0f6fb28b1d8 (diff)
Merge pull request #713 from bunnei/qt-emuthread-fixes
Fix emulation state resetting to support multiple emulation sessions
Diffstat (limited to 'src/citra_qt/main.h')
-rw-r--r--src/citra_qt/main.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/citra_qt/main.h b/src/citra_qt/main.h
index 9b57c5772..3e29534fb 100644
--- a/src/citra_qt/main.h
+++ b/src/citra_qt/main.h
@@ -5,12 +5,14 @@
#ifndef _CITRA_QT_MAIN_HXX_
#define _CITRA_QT_MAIN_HXX_
+#include <memory>
#include <QMainWindow>
#include "ui_main.h"
class GImageInfo;
class GRenderWindow;
+class EmuThread;
class ProfilerWidget;
class DisassemblerWidget;
class RegistersWidget;
@@ -34,8 +36,27 @@ public:
GMainWindow();
~GMainWindow();
+signals:
+
+ /**
+ * Signal that is emitted when a new EmuThread has been created and an emulation session is
+ * about to start. At this time, the core system emulation has been initialized, and all
+ * emulation handles and memory should be valid.
+ *
+ * @param emu_thread Pointer to the newly created EmuThread (to be used by widgets that need to
+ * access/change emulation state).
+ */
+ void EmulationStarting(EmuThread* emu_thread);
+
+ /**
+ * Signal that is emitted when emulation is about to stop. At this time, the EmuThread and core
+ * system emulation handles and memory are still valid, but are about become invalid.
+ */
+ void EmulationStopping();
+
private:
void BootGame(std::string filename);
+ void ShutdownGame();
void closeEvent(QCloseEvent* event) override;
@@ -55,6 +76,8 @@ private:
GRenderWindow* render_window;
+ std::unique_ptr<EmuThread> emu_thread;
+
ProfilerWidget* profilerWidget;
DisassemblerWidget* disasmWidget;
RegistersWidget* registersWidget;