Merge pull request #239 from hex007/feature-powersaver

Disable PS when swap timeout less than PS mode
This commit is contained in:
Jools Wills 2017-09-04 18:52:41 +01:00 committed by GitHub
commit 85ebeb524e
2 changed files with 21 additions and 4 deletions

View file

@ -5,7 +5,7 @@
bool PowerSaver::mState = false; bool PowerSaver::mState = false;
bool PowerSaver::mRunningScreenSaver = false; bool PowerSaver::mRunningScreenSaver = false;
int PowerSaver::mPlayNextTimeout = -1; int PowerSaver::mWakeupTimeout = -1;
int PowerSaver::mScreenSaverTimeout = -1; int PowerSaver::mScreenSaverTimeout = -1;
PowerSaver::mode PowerSaver::mMode = PowerSaver::DISABLED; PowerSaver::mode PowerSaver::mMode = PowerSaver::DISABLED;
@ -18,14 +18,24 @@ void PowerSaver::init()
int PowerSaver::getTimeout() int PowerSaver::getTimeout()
{ {
// Used only for SDL_WaitEventTimeout. Use `getMode()` for modes. // Used only for SDL_WaitEventTimeout. Use `getMode()` for modes.
return mRunningScreenSaver ? mPlayNextTimeout : mScreenSaverTimeout; return mRunningScreenSaver ? mWakeupTimeout : mScreenSaverTimeout;
}
void PowerSaver::loadWakeupTime()
{
// TODO : Move this to Screensaver Class
std::string behaviour = Settings::getInstance()->getString("ScreenSaverBehavior");
if (behaviour == "random video")
mWakeupTimeout = Settings::getInstance()->getInt("ScreenSaverSwapVideoTimeout") - getMode();
else // Dim and Blank
mWakeupTimeout = -1;
} }
void PowerSaver::updateTimeouts() void PowerSaver::updateTimeouts()
{ {
mScreenSaverTimeout = (unsigned int) Settings::getInstance()->getInt("ScreenSaverTime"); mScreenSaverTimeout = (unsigned int) Settings::getInstance()->getInt("ScreenSaverTime");
mScreenSaverTimeout = mScreenSaverTimeout > 0 ? mScreenSaverTimeout - getMode() : -1; mScreenSaverTimeout = mScreenSaverTimeout > 0 ? mScreenSaverTimeout - getMode() : -1;
mPlayNextTimeout = Settings::getInstance()->getInt("ScreenSaverSwapVideoTimeout") - getMode(); loadWakeupTime();
} }
PowerSaver::mode PowerSaver::getMode() PowerSaver::mode PowerSaver::getMode()
@ -63,6 +73,11 @@ void PowerSaver::setState(bool state)
void PowerSaver::runningScreenSaver(bool state) void PowerSaver::runningScreenSaver(bool state)
{ {
mRunningScreenSaver = state; mRunningScreenSaver = state;
if (mWakeupTimeout < mMode)
{
// Disable PS if wake up time is less than mode as PS will never trigger
setState(!state);
}
} }
bool PowerSaver::isScreenSaverActive() bool PowerSaver::isScreenSaverActive()

View file

@ -37,6 +37,8 @@ private:
static bool mRunningScreenSaver; static bool mRunningScreenSaver;
static mode mMode; static mode mMode;
static int mPlayNextTimeout; static int mWakeupTimeout;
static int mScreenSaverTimeout; static int mScreenSaverTimeout;
static void loadWakeupTime();
}; };