mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-25 07:21:14 +01:00
UICommon: Move TriggerSTMPowerEvent() from Wx
This commit is contained in:
parent
4320c641f7
commit
2de31317e9
@ -253,7 +253,6 @@ private:
|
|||||||
void DoFullscreen(bool enable_fullscreen);
|
void DoFullscreen(bool enable_fullscreen);
|
||||||
void DoExclusiveFullscreen(bool enable_fullscreen);
|
void DoExclusiveFullscreen(bool enable_fullscreen);
|
||||||
void ToggleDisplayMode(bool bFullscreen);
|
void ToggleDisplayMode(bool bFullscreen);
|
||||||
bool TriggerSTMPowerEvent();
|
|
||||||
void OnStopped();
|
void OnStopped();
|
||||||
void OnRenderWindowSizeRequest(int width, int height);
|
void OnRenderWindowSizeRequest(int width, int height);
|
||||||
void UpdateTitle(const wxString& str);
|
void UpdateTitle(const wxString& str);
|
||||||
|
@ -85,6 +85,7 @@
|
|||||||
|
|
||||||
#include "InputCommon/ControllerInterface/ControllerInterface.h"
|
#include "InputCommon/ControllerInterface/ControllerInterface.h"
|
||||||
|
|
||||||
|
#include "UICommon/UICommon.h"
|
||||||
#include "UICommon/WiiUtils.h"
|
#include "UICommon/WiiUtils.h"
|
||||||
|
|
||||||
#include "VideoCommon/RenderBase.h"
|
#include "VideoCommon/RenderBase.h"
|
||||||
@ -879,36 +880,24 @@ void CFrame::DoStop()
|
|||||||
if (NetPlayDialog::GetNetPlayClient())
|
if (NetPlayDialog::GetNetPlayClient())
|
||||||
NetPlayDialog::GetNetPlayClient()->Stop();
|
NetPlayDialog::GetNetPlayClient()->Stop();
|
||||||
|
|
||||||
if (!m_tried_graceful_shutdown && TriggerSTMPowerEvent())
|
if (!m_tried_graceful_shutdown && UICommon::TriggerSTMPowerEvent())
|
||||||
{
|
{
|
||||||
m_tried_graceful_shutdown = true;
|
m_tried_graceful_shutdown = true;
|
||||||
|
m_confirm_stop = false;
|
||||||
|
|
||||||
|
// Unpause because gracefully shutting down needs the game to actually request a shutdown.
|
||||||
|
// Do not unpause in debug mode to allow debugging until the complete shutdown.
|
||||||
|
if (Core::GetState() == Core::State::Paused && !m_use_debugger)
|
||||||
|
Core::SetState(Core::State::Running);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Core::Stop();
|
Core::Stop();
|
||||||
UpdateGUI();
|
UpdateGUI();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CFrame::TriggerSTMPowerEvent()
|
|
||||||
{
|
|
||||||
const auto ios = IOS::HLE::GetIOS();
|
|
||||||
if (!ios)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
const auto stm = ios->GetDeviceByName("/dev/stm/eventhook");
|
|
||||||
if (!stm || !std::static_pointer_cast<IOS::HLE::Device::STMEventHook>(stm)->HasHookInstalled())
|
|
||||||
return false;
|
|
||||||
|
|
||||||
Core::DisplayMessage("Shutting down", 30000);
|
|
||||||
// Unpause because gracefully shutting down needs the game to actually request a shutdown.
|
|
||||||
// Do not unpause in debug mode to allow debugging until the complete shutdown.
|
|
||||||
if (Core::GetState() == Core::State::Paused && !m_use_debugger)
|
|
||||||
DoPause();
|
|
||||||
ProcessorInterface::PowerButton_Tap();
|
|
||||||
m_confirm_stop = false;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CFrame::OnStopped()
|
void CFrame::OnStopped()
|
||||||
{
|
{
|
||||||
m_confirm_stop = false;
|
m_confirm_stop = false;
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
// Licensed under GPLv2+
|
// Licensed under GPLv2+
|
||||||
// Refer to the license.txt file included.
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#include <shlobj.h> // for SHGetFolderPath
|
#include <shlobj.h> // for SHGetFolderPath
|
||||||
#endif
|
#endif
|
||||||
@ -14,7 +15,11 @@
|
|||||||
|
|
||||||
#include "Core/ConfigLoaders/BaseConfigLoader.h"
|
#include "Core/ConfigLoaders/BaseConfigLoader.h"
|
||||||
#include "Core/ConfigManager.h"
|
#include "Core/ConfigManager.h"
|
||||||
|
#include "Core/Core.h"
|
||||||
|
#include "Core/HW/ProcessorInterface.h"
|
||||||
#include "Core/HW/Wiimote.h"
|
#include "Core/HW/Wiimote.h"
|
||||||
|
#include "Core/IOS/IOS.h"
|
||||||
|
#include "Core/IOS/STM/STM.h"
|
||||||
|
|
||||||
#include "InputCommon/GCAdapter.h"
|
#include "InputCommon/GCAdapter.h"
|
||||||
|
|
||||||
@ -225,4 +230,20 @@ void SaveWiimoteSources()
|
|||||||
inifile.Save(ini_filename);
|
inifile.Save(ini_filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TriggerSTMPowerEvent()
|
||||||
|
{
|
||||||
|
const auto ios = IOS::HLE::GetIOS();
|
||||||
|
if (!ios)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
const auto stm = ios->GetDeviceByName("/dev/stm/eventhook");
|
||||||
|
if (!stm || !std::static_pointer_cast<IOS::HLE::Device::STMEventHook>(stm)->HasHookInstalled())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
Core::DisplayMessage("Shutting down", 30000);
|
||||||
|
ProcessorInterface::PowerButton_Tap();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace UICommon
|
} // namespace UICommon
|
||||||
|
@ -12,5 +12,7 @@ void Shutdown();
|
|||||||
void CreateDirectories();
|
void CreateDirectories();
|
||||||
void SetUserDirectory(const std::string& custom_path);
|
void SetUserDirectory(const std::string& custom_path);
|
||||||
|
|
||||||
|
bool TriggerSTMPowerEvent();
|
||||||
|
|
||||||
void SaveWiimoteSources();
|
void SaveWiimoteSources();
|
||||||
} // namespace UICommon
|
} // namespace UICommon
|
||||||
|
Loading…
x
Reference in New Issue
Block a user