aboutsummaryrefslogtreecommitdiff
path: root/src/frontend/qt_sdl/main.cpp
diff options
context:
space:
mode:
authorArisotura <thetotalworm@gmail.com>2020-05-20 22:58:04 +0200
committerArisotura <thetotalworm@gmail.com>2020-05-20 22:58:04 +0200
commita9b275bc253510d77b8b6fcd80e6d24b56bc8680 (patch)
treed5b87809840112373818a90189ee1f5224f6be5e /src/frontend/qt_sdl/main.cpp
parent2ebb21ce3bcf1a445dce7b13f64e44d6098a3acd (diff)
reimplement Stop
Diffstat (limited to 'src/frontend/qt_sdl/main.cpp')
-rw-r--r--src/frontend/qt_sdl/main.cpp37
1 files changed, 31 insertions, 6 deletions
diff --git a/src/frontend/qt_sdl/main.cpp b/src/frontend/qt_sdl/main.cpp
index a73362d..67272af 100644
--- a/src/frontend/qt_sdl/main.cpp
+++ b/src/frontend/qt_sdl/main.cpp
@@ -115,8 +115,6 @@ EmuThread::EmuThread(QObject* parent) : QThread(parent)
connect(this, SIGNAL(windowEmuStop()), mainWindow, SLOT(onEmuStop()));
connect(this, SIGNAL(windowEmuPause()), mainWindow->actPause, SLOT(trigger()));
connect(this, SIGNAL(windowEmuReset()), mainWindow->actReset, SLOT(trigger()));
-
- emit windowEmuStop();
}
void EmuThread::run()
@@ -140,7 +138,6 @@ void EmuThread::run()
}
Input::Init();
- /*Touching = false;*/
u32 nframes = 0;
u32 starttick = SDL_GetTicks();
@@ -376,7 +373,6 @@ void EmuThread::emuPause()
EmuRunning = 2;
while (EmuStatus != 2);
- //emit windowEmuPause();
if (audioDevice) SDL_PauseAudioDevice(audioDevice, 1);
}
@@ -384,7 +380,6 @@ void EmuThread::emuUnpause()
{
EmuRunning = PrevEmuStatus;
- //emit windowEmuUnpause();
if (audioDevice) SDL_PauseAudioDevice(audioDevice, 0);
}
@@ -703,6 +698,18 @@ MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent)
panel->setMinimumSize(256, 384);
+ for (int i = 0; i < 9; i++)
+ {
+ actSaveState[i]->setEnabled(false);
+ actLoadState[i]->setEnabled(false);
+ }
+ actUndoStateLoad->setEnabled(false);
+
+ actPause->setEnabled(false);
+ actReset->setEnabled(false);
+ actStop->setEnabled(false);
+
+
actSavestateSRAMReloc->setChecked(Config::SavestateRelocSRAM != 0);
actScreenRotation[Config::ScreenRotation]->setChecked(true);
@@ -1051,7 +1058,10 @@ void MainWindow::onReset()
void MainWindow::onStop()
{
- //
+ if (!RunningSomething) return;
+
+ emuThread->emuPause();
+ NDS::Stop();
}
@@ -1168,6 +1178,8 @@ void MainWindow::onEmuStart()
void MainWindow::onEmuStop()
{
+ emuThread->emuPause();
+
for (int i = 0; i < 9; i++)
{
actSaveState[i]->setEnabled(false);
@@ -1181,6 +1193,19 @@ void MainWindow::onEmuStop()
}
+void emuStop()
+{
+ RunningSomething = false;
+
+ Frontend::UnloadROM(Frontend::ROMSlot_NDS);
+ Frontend::UnloadROM(Frontend::ROMSlot_GBA);
+
+ emit emuThread->windowEmuStop();
+
+ //OSD::AddMessage(0xFFC040, "Shutdown");
+}
+
+
int main(int argc, char** argv)
{