From 8a68c31ffc98bda5abd3bd03f49727c7400bbba8 Mon Sep 17 00:00:00 2001 From: bigbiff bigbiff Date: Sun, 10 Feb 2013 14:28:30 -0500 Subject: This adds a 60 second screen timeout for TWRP. Might consider making this configurable in the future. Will also set overlay to lockscreen so we don't have inadvetent screen selections. Touching the screen will bring the display back up. add back check script for poweroff move diff time function to twrp-functions.cpp make sure we chmod after copy_file add read_file and write_file functions to twrp-functions.cpp make single thread try to force update screen add forceRender drop caches after tar processing Change-Id: I3c5c509dd39dbb05451bbfe5d8b56d53c90d8d1b --- gui/blanktimer.cpp | 128 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 gui/blanktimer.cpp (limited to 'gui/blanktimer.cpp') diff --git a/gui/blanktimer.cpp b/gui/blanktimer.cpp new file mode 100644 index 000000000..f64bb5f45 --- /dev/null +++ b/gui/blanktimer.cpp @@ -0,0 +1,128 @@ +/* + Copyright 2012 bigbiff/Dees_Troy TeamWin + This file is part of TWRP/TeamWin Recovery Project. + + TWRP is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + TWRP is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with TWRP. If not, see . +*/ + +using namespace std; +#include "rapidxml.hpp" +using namespace rapidxml; +extern "C" { +#include "../minzip/Zip.h" +#include "../minuitwrp/minui.h" +} +#include +#include +#include +#include "resources.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include "pages.hpp" +#include "blanktimer.hpp" +extern "C" { +#include "../common.h" +#include "../recovery_ui.h" +} +#include "../twrp-functions.hpp" +#include "../variables.h" + +blanktimer::blanktimer(void) { + blanked = 0; + sleepTimer = 60; + orig_brightness = getBrightness(); +} + +int blanktimer::setTimerThread(void) { + pthread_t thread; + ThreadPtr blankptr = &blanktimer::setClockTimer; + PThreadPtr p = *(PThreadPtr*)&blankptr; + pthread_create(&thread, NULL, p, this); + return 0; +} + +void blanktimer::setBlank(int blank) { + pthread_mutex_lock(&blankmutex); + conblank = blank; + pthread_mutex_unlock(&blankmutex); +} + +int blanktimer::getBlank(void) { + return conblank; +} + +void blanktimer::setTimer(void) { + pthread_mutex_lock(&timermutex); + clock_gettime(CLOCK_MONOTONIC, &btimer); + pthread_mutex_unlock(&timermutex); +} + +timespec blanktimer::getTimer(void) { + return btimer; +} + +int blanktimer::setClockTimer(void) { + timespec curTime, diff; + while(1) { + usleep(1000); + clock_gettime(CLOCK_MONOTONIC, &curTime); + diff = TWFunc::timespec_diff(btimer, curTime); + if (diff.tv_sec > sleepTimer && conblank != 1) + setBlank(1); + if (conblank == 1 && blanked != 1) { + blanked = 1; + gr_fb_blank(conblank); + setBrightness(0); + PageManager::ChangeOverlay("lock"); + } + } + return -1; +} + +int blanktimer::getBrightness(void) { + string results; + string brightness_path = EXPAND(TW_BRIGHTNESS_PATH); + if ((TWFunc::read_file(brightness_path, results)) != 0) + return -1; + return atoi(results.c_str()); + +} + +int blanktimer::setBrightness(int brightness) { + string brightness_path = EXPAND(TW_BRIGHTNESS_PATH); + string bstring; + char buff[100]; + sprintf(buff, "%d", brightness); + bstring = buff; + if ((TWFunc::write_file(brightness_path, bstring)) != 0) + return -1; + return 0; +} + +void blanktimer::resetTimerAndUnblank(void) { + setTimer(); + if (blanked) { + setBrightness(orig_brightness); + blanked = 0; + setBlank(0); + gr_fb_blank(conblank); + gui_forceRender(); + } +} -- cgit v1.2.3