mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-07-26 15:50:00 -06:00
run Reset through EmuThread too
This commit is contained in:
@ -75,8 +75,7 @@ void EmuThread::attachWindow(MainWindow* window)
|
|||||||
connect(this, SIGNAL(windowEmuStart()), window, SLOT(onEmuStart()));
|
connect(this, SIGNAL(windowEmuStart()), window, SLOT(onEmuStart()));
|
||||||
connect(this, SIGNAL(windowEmuStop()), window, SLOT(onEmuStop()));
|
connect(this, SIGNAL(windowEmuStop()), window, SLOT(onEmuStop()));
|
||||||
connect(this, SIGNAL(windowEmuPause(bool)), window, SLOT(onEmuPause(bool)));
|
connect(this, SIGNAL(windowEmuPause(bool)), window, SLOT(onEmuPause(bool)));
|
||||||
connect(this, SIGNAL(windowEmuReset()), window->actReset, SLOT(trigger()));
|
connect(this, SIGNAL(windowEmuReset()), window, SLOT(onEmuReset()));
|
||||||
connect(this, SIGNAL(windowEmuFrameStep()), window->actFrameStep, SLOT(trigger()));
|
|
||||||
connect(this, SIGNAL(windowLimitFPSChange()), window->actLimitFramerate, SLOT(trigger()));
|
connect(this, SIGNAL(windowLimitFPSChange()), window->actLimitFramerate, SLOT(trigger()));
|
||||||
connect(this, SIGNAL(autoScreenSizingChange(int)), window->panel, SLOT(onAutoScreenSizingChanged(int)));
|
connect(this, SIGNAL(autoScreenSizingChange(int)), window->panel, SLOT(onAutoScreenSizingChanged(int)));
|
||||||
connect(this, SIGNAL(windowFullscreenToggle()), window, SLOT(onFullscreenToggled()));
|
connect(this, SIGNAL(windowFullscreenToggle()), window, SLOT(onFullscreenToggled()));
|
||||||
@ -91,8 +90,7 @@ void EmuThread::detachWindow(MainWindow* window)
|
|||||||
disconnect(this, SIGNAL(windowEmuStart()), window, SLOT(onEmuStart()));
|
disconnect(this, SIGNAL(windowEmuStart()), window, SLOT(onEmuStart()));
|
||||||
disconnect(this, SIGNAL(windowEmuStop()), window, SLOT(onEmuStop()));
|
disconnect(this, SIGNAL(windowEmuStop()), window, SLOT(onEmuStop()));
|
||||||
disconnect(this, SIGNAL(windowEmuPause(bool)), window, SLOT(onEmuPause(bool)));
|
disconnect(this, SIGNAL(windowEmuPause(bool)), window, SLOT(onEmuPause(bool)));
|
||||||
disconnect(this, SIGNAL(windowEmuReset()), window->actReset, SLOT(trigger()));
|
disconnect(this, SIGNAL(windowEmuReset()), window, SLOT(onEmuReset()));
|
||||||
disconnect(this, SIGNAL(windowEmuFrameStep()), window->actFrameStep, SLOT(trigger()));
|
|
||||||
disconnect(this, SIGNAL(windowLimitFPSChange()), window->actLimitFramerate, SLOT(trigger()));
|
disconnect(this, SIGNAL(windowLimitFPSChange()), window->actLimitFramerate, SLOT(trigger()));
|
||||||
disconnect(this, SIGNAL(autoScreenSizingChange(int)), window->panel, SLOT(onAutoScreenSizingChanged(int)));
|
disconnect(this, SIGNAL(autoScreenSizingChange(int)), window->panel, SLOT(onAutoScreenSizingChanged(int)));
|
||||||
disconnect(this, SIGNAL(windowFullscreenToggle()), window, SLOT(onFullscreenToggled()));
|
disconnect(this, SIGNAL(windowFullscreenToggle()), window, SLOT(onFullscreenToggled()));
|
||||||
@ -158,8 +156,8 @@ void EmuThread::run()
|
|||||||
if (emuInstance->hotkeyPressed(HK_FastForwardToggle)) emit windowLimitFPSChange();
|
if (emuInstance->hotkeyPressed(HK_FastForwardToggle)) emit windowLimitFPSChange();
|
||||||
|
|
||||||
if (emuInstance->hotkeyPressed(HK_Pause)) emuTogglePause();
|
if (emuInstance->hotkeyPressed(HK_Pause)) emuTogglePause();
|
||||||
if (emuInstance->hotkeyPressed(HK_Reset)) emit windowEmuReset();
|
if (emuInstance->hotkeyPressed(HK_Reset)) emuReset();
|
||||||
if (emuInstance->hotkeyPressed(HK_FrameStep)) emit windowEmuFrameStep();
|
if (emuInstance->hotkeyPressed(HK_FrameStep)) emuFrameStep();
|
||||||
|
|
||||||
if (emuInstance->hotkeyPressed(HK_FullscreenToggle)) emit windowFullscreenToggle();
|
if (emuInstance->hotkeyPressed(HK_FullscreenToggle)) emit windowFullscreenToggle();
|
||||||
|
|
||||||
@ -541,6 +539,18 @@ void EmuThread::handleMessages()
|
|||||||
emuStatus = emuStatus_FrameStep;
|
emuStatus = emuStatus_FrameStep;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case msg_EmuReset:
|
||||||
|
emuInstance->reset();
|
||||||
|
|
||||||
|
emuStatus = emuStatus_Running;
|
||||||
|
emuPauseStack = emuPauseStackRunning;
|
||||||
|
emuActive = true;
|
||||||
|
|
||||||
|
emuInstance->audioEnable();
|
||||||
|
emit windowEmuReset();
|
||||||
|
emuInstance->osdAddMessage(0, "Reset");
|
||||||
|
break;
|
||||||
|
|
||||||
case msg_InitGL:
|
case msg_InitGL:
|
||||||
emuInstance->initOpenGL();
|
emuInstance->initOpenGL();
|
||||||
useOpenGL = true;
|
useOpenGL = true;
|
||||||
@ -620,6 +630,12 @@ void EmuThread::emuFrameStep()
|
|||||||
waitAllMessages();
|
waitAllMessages();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void EmuThread::emuReset()
|
||||||
|
{
|
||||||
|
sendMessage(msg_EmuReset);
|
||||||
|
waitMessage();
|
||||||
|
}
|
||||||
|
|
||||||
bool EmuThread::emuIsRunning()
|
bool EmuThread::emuIsRunning()
|
||||||
{
|
{
|
||||||
return emuStatus == emuStatus_Running;
|
return emuStatus == emuStatus_Running;
|
||||||
|
@ -64,6 +64,7 @@ public:
|
|||||||
msg_EmuUnpause,
|
msg_EmuUnpause,
|
||||||
msg_EmuStop,
|
msg_EmuStop,
|
||||||
msg_EmuFrameStep,
|
msg_EmuFrameStep,
|
||||||
|
msg_EmuReset,
|
||||||
|
|
||||||
msg_InitGL,
|
msg_InitGL,
|
||||||
msg_DeInitGL,
|
msg_DeInitGL,
|
||||||
@ -97,6 +98,7 @@ public:
|
|||||||
void emuStop(bool external);
|
void emuStop(bool external);
|
||||||
void emuExit();
|
void emuExit();
|
||||||
void emuFrameStep();
|
void emuFrameStep();
|
||||||
|
void emuReset();
|
||||||
|
|
||||||
bool emuIsRunning();
|
bool emuIsRunning();
|
||||||
bool emuIsActive();
|
bool emuIsActive();
|
||||||
@ -116,7 +118,6 @@ signals:
|
|||||||
void windowEmuStop();
|
void windowEmuStop();
|
||||||
void windowEmuPause(bool pause);
|
void windowEmuPause(bool pause);
|
||||||
void windowEmuReset();
|
void windowEmuReset();
|
||||||
void windowEmuFrameStep();
|
|
||||||
|
|
||||||
void windowLimitFPSChange();
|
void windowLimitFPSChange();
|
||||||
|
|
||||||
|
@ -1605,14 +1605,7 @@ void MainWindow::onReset()
|
|||||||
{
|
{
|
||||||
if (!emuThread->emuIsActive()) return;
|
if (!emuThread->emuIsActive()) return;
|
||||||
|
|
||||||
emuThread->emuPause();
|
emuThread->emuReset();
|
||||||
|
|
||||||
actUndoStateLoad->setEnabled(false);
|
|
||||||
|
|
||||||
emuInstance->reset();
|
|
||||||
|
|
||||||
emuInstance->osdAddMessage(0, "Reset");
|
|
||||||
emuThread->emuRun();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::onStop()
|
void MainWindow::onStop()
|
||||||
@ -2088,6 +2081,11 @@ void MainWindow::onEmuPause(bool pause)
|
|||||||
actPause->setChecked(pause);
|
actPause->setChecked(pause);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::onEmuReset()
|
||||||
|
{
|
||||||
|
actUndoStateLoad->setEnabled(false);
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::onUpdateVideoSettings(bool glchange)
|
void MainWindow::onUpdateVideoSettings(bool glchange)
|
||||||
{
|
{
|
||||||
if (glchange)
|
if (glchange)
|
||||||
|
@ -209,6 +209,7 @@ private slots:
|
|||||||
void onEmuStart();
|
void onEmuStart();
|
||||||
void onEmuStop();
|
void onEmuStop();
|
||||||
void onEmuPause(bool pause);
|
void onEmuPause(bool pause);
|
||||||
|
void onEmuReset();
|
||||||
|
|
||||||
void onUpdateVideoSettings(bool glchange);
|
void onUpdateVideoSettings(bool glchange);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user