summaryrefslogtreecommitdiffstats
path: root/gui/blanktimer.cpp
diff options
context:
space:
mode:
authorDees_Troy <dees_troy@teamw.in>2013-03-01 02:37:36 +0100
committerGerrit Code Review <gerrit@5.9.244.119>2013-03-01 02:37:36 +0100
commit07712b22265ec199487eeaa5c34be70266ae039c (patch)
tree5b3efe9d075c2d267370d5b2259ad7d0e4677c96 /gui/blanktimer.cpp
parentFix file selector crash (diff)
parentAdd 2 second pre-dim and bugfix blank timer (diff)
downloadandroid_bootable_recovery-07712b22265ec199487eeaa5c34be70266ae039c.tar
android_bootable_recovery-07712b22265ec199487eeaa5c34be70266ae039c.tar.gz
android_bootable_recovery-07712b22265ec199487eeaa5c34be70266ae039c.tar.bz2
android_bootable_recovery-07712b22265ec199487eeaa5c34be70266ae039c.tar.lz
android_bootable_recovery-07712b22265ec199487eeaa5c34be70266ae039c.tar.xz
android_bootable_recovery-07712b22265ec199487eeaa5c34be70266ae039c.tar.zst
android_bootable_recovery-07712b22265ec199487eeaa5c34be70266ae039c.zip
Diffstat (limited to 'gui/blanktimer.cpp')
-rw-r--r--gui/blanktimer.cpp54
1 files changed, 31 insertions, 23 deletions
diff --git a/gui/blanktimer.cpp b/gui/blanktimer.cpp
index cf35f6544..d7a6ffffc 100644
--- a/gui/blanktimer.cpp
+++ b/gui/blanktimer.cpp
@@ -46,7 +46,8 @@ extern "C" {
#include "../variables.h"
blanktimer::blanktimer(void) {
- blanked = 0;
+ setTime(0);
+ setConBlank(0);
orig_brightness = getBrightness();
}
@@ -62,14 +63,10 @@ int blanktimer::setTimerThread(void) {
return 0;
}
-void blanktimer::setBlank(int blank) {
- pthread_mutex_lock(&blankmutex);
+void blanktimer::setConBlank(int blank) {
+ pthread_mutex_lock(&conblankmutex);
conblank = blank;
- pthread_mutex_unlock(&blankmutex);
-}
-
-int blanktimer::getBlank(void) {
- return conblank;
+ pthread_mutex_unlock(&conblankmutex);
}
void blanktimer::setTimer(void) {
@@ -84,22 +81,25 @@ timespec blanktimer::getTimer(void) {
int blanktimer::setClockTimer(void) {
timespec curTime, diff;
- while(1) {
- usleep(1000);
+ for(;;) {
+ usleep(1000000);
clock_gettime(CLOCK_MONOTONIC, &curTime);
diff = TWFunc::timespec_diff(btimer, curTime);
- if (sleepTimer && diff.tv_sec > sleepTimer && conblank != 1) {
+ if (sleepTimer > 2 && diff.tv_sec > (sleepTimer - 2) && conblank == 0) {
orig_brightness = getBrightness();
- setBlank(1);
- PageManager::ChangeOverlay("lock");
+ setConBlank(1);
+ setBrightness(5);
}
- if (conblank == 1 && blanked != 1) {
- blanked = 1;
- gr_fb_blank(conblank);
+ if (sleepTimer && diff.tv_sec > sleepTimer && conblank < 2) {
+ setConBlank(2);
setBrightness(0);
+ PageManager::ChangeOverlay("lock");
+ }
+ if (conblank == 2 && gr_fb_blank(1) >= 0) {
+ setConBlank(3);
}
}
- return -1;
+ return -1; //shouldn't get here
}
int blanktimer::getBrightness(void) {
@@ -124,11 +124,19 @@ int blanktimer::setBrightness(int brightness) {
void blanktimer::resetTimerAndUnblank(void) {
setTimer();
- if (blanked) {
- setBrightness(orig_brightness);
- blanked = 0;
- setBlank(0);
- gr_fb_blank(conblank);
- gui_forceRender();
+ switch (conblank) {
+ case 3:
+ if (gr_fb_blank(0) < 0) {
+ LOGI("blanktimer::resetTimerAndUnblank failed to gr_fb_blank(0)\n");
+ break;
+ }
+ // No break here, we want to keep going
+ case 2:
+ gui_forceRender();
+ // No break here, we want to keep going
+ case 1:
+ setBrightness(orig_brightness);
+ setConBlank(0);
+ break;
}
}