Frame: Extract screensaver-related code into InhibitScreensaver/UninhibitScreensaver
This commit is contained in:
parent
65250c0452
commit
c9b2c29ead
|
@ -690,6 +690,63 @@ WXLRESULT CFrame::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
void CFrame::InhibitScreensaver()
|
||||||
|
{
|
||||||
|
// Inhibit the screensaver. Depending on the operating system this may also
|
||||||
|
// disable low-power states and/or screen dimming.
|
||||||
|
|
||||||
|
#if defined(HAVE_X11) && HAVE_X11
|
||||||
|
if (SConfig::GetInstance().bDisableScreenSaver)
|
||||||
|
{
|
||||||
|
X11Utils::InhibitScreensaver(X11Utils::XDisplayFromHandle(GetHandle()),
|
||||||
|
X11Utils::XWindowFromHandle(GetHandle()), true);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
// Prevents Windows from sleeping, turning off the display, or idling
|
||||||
|
EXECUTION_STATE should_screen_save =
|
||||||
|
SConfig::GetInstance().bDisableScreenSaver ? ES_DISPLAY_REQUIRED : 0;
|
||||||
|
SetThreadExecutionState(ES_CONTINUOUS | should_screen_save | ES_SYSTEM_REQUIRED);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
if (SConfig::GetInstance().bDisableScreenSaver)
|
||||||
|
{
|
||||||
|
CFStringRef reason_for_activity = CFSTR("Emulation Running");
|
||||||
|
if (IOPMAssertionCreateWithName(kIOPMAssertionTypeNoDisplaySleep, kIOPMAssertionLevelOn,
|
||||||
|
reason_for_activity, &m_power_assertion) != kIOReturnSuccess)
|
||||||
|
{
|
||||||
|
m_power_assertion = kIOPMNullAssertionID;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void CFrame::UninhibitScreensaver()
|
||||||
|
{
|
||||||
|
#if defined(HAVE_X11) && HAVE_X11
|
||||||
|
if (SConfig::GetInstance().bDisableScreenSaver)
|
||||||
|
{
|
||||||
|
X11Utils::InhibitScreensaver(X11Utils::XDisplayFromHandle(GetHandle()),
|
||||||
|
X11Utils::XWindowFromHandle(GetHandle()), false);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
// Allow windows to resume normal idling behavior
|
||||||
|
SetThreadExecutionState(ES_CONTINUOUS);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
if (m_power_assertion != kIOPMNullAssertionID)
|
||||||
|
{
|
||||||
|
IOPMAssertionRelease(m_power_assertion);
|
||||||
|
m_power_assertion = kIOPMNullAssertionID;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
void CFrame::UpdateTitle(const std::string& str)
|
void CFrame::UpdateTitle(const std::string& str)
|
||||||
{
|
{
|
||||||
if (SConfig::GetInstance().bRenderToMain && SConfig::GetInstance().m_InterfaceStatusbar)
|
if (SConfig::GetInstance().bRenderToMain && SConfig::GetInstance().m_InterfaceStatusbar)
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
#import <IOKit/pwr_mgt/IOPMLib.h>
|
#include <IOKit/pwr_mgt/IOPMLib.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Class declarations
|
// Class declarations
|
||||||
|
@ -164,10 +164,6 @@ private:
|
||||||
ADD_PANE_CENTER
|
ADD_PANE_CENTER
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef __APPLE__
|
|
||||||
IOPMAssertionID m_power_assertion = kIOPMNullAssertionID;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
wxTimer m_poll_hotkey_timer;
|
wxTimer m_poll_hotkey_timer;
|
||||||
wxTimer m_handle_signal_timer;
|
wxTimer m_handle_signal_timer;
|
||||||
|
|
||||||
|
@ -231,6 +227,13 @@ private:
|
||||||
WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
|
WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Screensaver
|
||||||
|
#ifdef __APPLE__
|
||||||
|
IOPMAssertionID m_power_assertion = kIOPMNullAssertionID;
|
||||||
|
#endif
|
||||||
|
void InhibitScreensaver();
|
||||||
|
void UninhibitScreensaver();
|
||||||
|
|
||||||
void DoOpen(bool Boot);
|
void DoOpen(bool Boot);
|
||||||
void DoPause();
|
void DoPause();
|
||||||
void DoToggleToolbar(bool);
|
void DoToggleToolbar(bool);
|
||||||
|
|
|
@ -84,10 +84,6 @@
|
||||||
#include "VideoCommon/VideoBackendBase.h"
|
#include "VideoCommon/VideoBackendBase.h"
|
||||||
#include "VideoCommon/VideoConfig.h"
|
#include "VideoCommon/VideoConfig.h"
|
||||||
|
|
||||||
#ifdef __APPLE__
|
|
||||||
#import <IOKit/pwr_mgt/IOPMLib.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
class InputConfig;
|
class InputConfig;
|
||||||
class wxFrame;
|
class wxFrame;
|
||||||
|
|
||||||
|
@ -716,26 +712,7 @@ void CFrame::StartGame(const std::string& filename)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#if defined(HAVE_X11) && HAVE_X11
|
InhibitScreensaver();
|
||||||
if (SConfig::GetInstance().bDisableScreenSaver)
|
|
||||||
X11Utils::InhibitScreensaver(X11Utils::XDisplayFromHandle(GetHandle()),
|
|
||||||
X11Utils::XWindowFromHandle(GetHandle()), true);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
// Prevents Windows from sleeping, turning off the display, or idling
|
|
||||||
EXECUTION_STATE shouldScreenSave =
|
|
||||||
SConfig::GetInstance().bDisableScreenSaver ? ES_DISPLAY_REQUIRED : 0;
|
|
||||||
SetThreadExecutionState(ES_CONTINUOUS | shouldScreenSave | ES_SYSTEM_REQUIRED);
|
|
||||||
#endif
|
|
||||||
#ifdef __APPLE__
|
|
||||||
CFStringRef reason_for_activity = CFSTR("Emulation Running");
|
|
||||||
if (IOPMAssertionCreateWithName(kIOPMAssertionTypeNoDisplaySleep, kIOPMAssertionLevelOn,
|
|
||||||
reason_for_activity, &m_power_assertion) != kIOReturnSuccess)
|
|
||||||
{
|
|
||||||
m_power_assertion = kIOPMNullAssertionID;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// We need this specifically to support setting the focus properly when using
|
// We need this specifically to support setting the focus properly when using
|
||||||
// the 'render to main window' feature on Windows
|
// the 'render to main window' feature on Windows
|
||||||
|
@ -900,23 +877,7 @@ void CFrame::OnStopped()
|
||||||
m_confirmStop = false;
|
m_confirmStop = false;
|
||||||
m_tried_graceful_shutdown = false;
|
m_tried_graceful_shutdown = false;
|
||||||
|
|
||||||
#if defined(HAVE_X11) && HAVE_X11
|
UninhibitScreensaver();
|
||||||
if (SConfig::GetInstance().bDisableScreenSaver)
|
|
||||||
X11Utils::InhibitScreensaver(X11Utils::XDisplayFromHandle(GetHandle()),
|
|
||||||
X11Utils::XWindowFromHandle(GetHandle()), false);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
// Allow windows to resume normal idling behavior
|
|
||||||
SetThreadExecutionState(ES_CONTINUOUS);
|
|
||||||
#endif
|
|
||||||
#ifdef __APPLE__
|
|
||||||
if (m_power_assertion != kIOPMNullAssertionID)
|
|
||||||
{
|
|
||||||
IOPMAssertionRelease(m_power_assertion);
|
|
||||||
m_power_assertion = kIOPMNullAssertionID;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
m_RenderFrame->SetTitle(StrToWxStr(scm_rev_str));
|
m_RenderFrame->SetTitle(StrToWxStr(scm_rev_str));
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue