Detect hardware changes and show it in gui.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
This commit is contained in:
parent
232d0e62d3
commit
448de8f6c7
4 changed files with 28 additions and 0 deletions
|
@ -235,10 +235,19 @@ namespace sa2
|
||||||
|
|
||||||
ImGui::Separator();
|
ImGui::Separator();
|
||||||
|
|
||||||
|
if (frame->HardwareChanged())
|
||||||
|
{
|
||||||
|
ImGui::PushStyleColor(ImGuiCol_Button, (ImVec4)ImColor(180, 0, 0));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ImGui::PushStyleColor(ImGuiCol_Button, (ImVec4)ImColor(0, 180, 0));
|
||||||
|
}
|
||||||
if (ImGui::Button("Restart"))
|
if (ImGui::Button("Restart"))
|
||||||
{
|
{
|
||||||
frame->Restart();
|
frame->Restart();
|
||||||
}
|
}
|
||||||
|
ImGui::PopStyleColor(1);
|
||||||
|
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button("ResetMachineState"))
|
if (ImGui::Button("ResetMachineState"))
|
||||||
|
|
|
@ -89,6 +89,7 @@ namespace sa2
|
||||||
if (strlen(filename) > strlen(yaml) && !strcmp(filename + strlen(filename) - strlen(yaml), yaml))
|
if (strlen(filename) > strlen(yaml) && !strcmp(filename + strlen(filename) - strlen(yaml), yaml))
|
||||||
{
|
{
|
||||||
common2::setSnapshotFilename(filename, true);
|
common2::setSnapshotFilename(filename, true);
|
||||||
|
frame->ResetHardware();
|
||||||
}
|
}
|
||||||
else if (strlen(filename) > strlen(wav) && !strcmp(filename + strlen(filename) - strlen(wav), wav))
|
else if (strlen(filename) > strlen(wav) && !strcmp(filename + strlen(filename) - strlen(wav), wav))
|
||||||
{
|
{
|
||||||
|
|
|
@ -152,6 +152,7 @@ namespace sa2
|
||||||
CommonFrame::Initialize();
|
CommonFrame::Initialize();
|
||||||
mySpeed.reset();
|
mySpeed.reset();
|
||||||
setGLSwapInterval(myTargetGLSwap);
|
setGLSwapInterval(myTargetGLSwap);
|
||||||
|
ResetHardware();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SDLFrame::FrameRefreshStatus(int drawflags)
|
void SDLFrame::FrameRefreshStatus(int drawflags)
|
||||||
|
@ -388,6 +389,7 @@ namespace sa2
|
||||||
{
|
{
|
||||||
Snapshot_LoadState();
|
Snapshot_LoadState();
|
||||||
mySpeed.reset();
|
mySpeed.reset();
|
||||||
|
ResetHardware();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SDLK_F11:
|
case SDLK_F11:
|
||||||
|
@ -698,6 +700,17 @@ namespace sa2
|
||||||
Execute(0);
|
Execute(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SDLFrame::ResetHardware()
|
||||||
|
{
|
||||||
|
myHardwareConfig = CConfigNeedingRestart(GetPropertySheet().GetTheFreezesF8Rom());
|
||||||
|
}
|
||||||
|
|
||||||
|
bool SDLFrame::HardwareChanged() const
|
||||||
|
{
|
||||||
|
const CConfigNeedingRestart currentConfig(GetPropertySheet().GetTheFreezesF8Rom());
|
||||||
|
return myHardwareConfig != currentConfig;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SingleStep(bool /* bReinit */)
|
void SingleStep(bool /* bReinit */)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "Common.h"
|
#include "Common.h"
|
||||||
|
#include "Configuration/Config.h"
|
||||||
#include "frontends/common2/commonframe.h"
|
#include "frontends/common2/commonframe.h"
|
||||||
#include "frontends/common2/speed.h"
|
#include "frontends/common2/speed.h"
|
||||||
#include <SDL.h>
|
#include <SDL.h>
|
||||||
|
@ -29,6 +30,8 @@ namespace sa2
|
||||||
void ExecuteOneFrame(const size_t msNextFrame);
|
void ExecuteOneFrame(const size_t msNextFrame);
|
||||||
void ChangeMode(const AppMode_e mode);
|
void ChangeMode(const AppMode_e mode);
|
||||||
void SingleStep();
|
void SingleStep();
|
||||||
|
void ResetHardware();
|
||||||
|
bool HardwareChanged() const;
|
||||||
virtual void ResetSpeed();
|
virtual void ResetSpeed();
|
||||||
|
|
||||||
const std::shared_ptr<SDL_Window> & GetWindow() const;
|
const std::shared_ptr<SDL_Window> & GetWindow() const;
|
||||||
|
@ -73,6 +76,8 @@ namespace sa2
|
||||||
common2::Speed mySpeed;
|
common2::Speed mySpeed;
|
||||||
|
|
||||||
std::shared_ptr<SDL_Window> myWindow;
|
std::shared_ptr<SDL_Window> myWindow;
|
||||||
|
|
||||||
|
CConfigNeedingRestart myHardwareConfig;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue