DolphinQt: Disable Display Sleep on Windows.

Disables Display Sleeping on Windows on DolphinQt while the game runs,
and re-enables it after the game closes.
This commit is contained in:
Corwin Mcknight 2015-09-08 17:20:36 -07:00
parent 8f13d50a4e
commit b2e4019383
2 changed files with 21 additions and 3 deletions

View File

@ -138,11 +138,27 @@ void DMainWindow::StartGame(const QString filename)
} }
else else
{ {
// TODO: Disable screensaver! DisableScreensaver();
emit CoreStateChanged(Core::CORE_RUN); emit CoreStateChanged(Core::CORE_RUN);
} }
} }
void DMainWindow::DisableScreensaver()
{
#ifdef Q_OS_WIN
// Prevents Windows from sleeping or turning off the display
SetThreadExecutionState(ES_CONTINUOUS | ES_DISPLAY_REQUIRED);
#endif
}
void DMainWindow::EnableScreensaver()
{
#ifdef Q_OS_WIN
// Allows Windows to sleep and turn off the display
SetThreadExecutionState(ES_CONTINUOUS);
#endif
}
QString DMainWindow::RequestBootFilename() QString DMainWindow::RequestBootFilename()
{ {
// If a game is already selected, just return the filename // If a game is already selected, just return the filename
@ -263,8 +279,7 @@ bool DMainWindow::Stop()
// TODO: Show the author/description dialog here // TODO: Show the author/description dialog here
BootManager::Stop(); BootManager::Stop();
EnableScreensaver();
// TODO: Allow screensaver again
// TODO: Restore original window title // TODO: Restore original window title
// TODO: // TODO:

View File

@ -68,6 +68,9 @@ private:
std::unique_ptr<Ui::DMainWindow> m_ui; std::unique_ptr<Ui::DMainWindow> m_ui;
DGameTracker* m_game_tracker; DGameTracker* m_game_tracker;
// Misc.
void DisableScreensaver();
void EnableScreensaver();
// Emulation // Emulation
QString RequestBootFilename(); QString RequestBootFilename();
QString ShowFileDialog(); QString ShowFileDialog();