1 |
#include "screenmanager.h" |
2 |
|
3 |
#include <stdlib.h> |
4 |
|
5 |
//public |
6 |
ScreenManager::ScreenManager() |
7 |
: screenOnTime(06,00), screenOffTime(22,00) |
8 |
{ |
9 |
QTime now = QTime::currentTime(); |
10 |
screenEnabled = (now >=screenOnTime && now < screenOffTime); |
11 |
|
12 |
if (screenEnabled) { //force screen enabled, on upstart |
13 |
enableScreen(); |
14 |
} |
15 |
} |
16 |
|
17 |
|
18 |
void ScreenManager::timerTick() |
19 |
{ |
20 |
QTime now = QTime::currentTime(); |
21 |
if (screenEnabled) { |
22 |
if (now >= screenOffTime) { |
23 |
disableScreen(); |
24 |
} |
25 |
} else { //screenEnabled == false |
26 |
if (now >= screenOnTime && now < screenOffTime) { |
27 |
enableScreen(); |
28 |
} |
29 |
} |
30 |
} |
31 |
|
32 |
|
33 |
//private |
34 |
void ScreenManager::disableScreen() |
35 |
{ |
36 |
int res; |
37 |
screenEnabled = false; |
38 |
res = system("xset dpms force off"); |
39 |
qDebug("disableScreen"); |
40 |
} |
41 |
|
42 |
|
43 |
void ScreenManager::enableScreen() |
44 |
{ |
45 |
int res; |
46 |
screenEnabled = true; |
47 |
res = system("xset dpms force on"); |
48 |
res = system("xset -dpms"); //disable energy star auto turn -off |
49 |
|
50 |
res = system("xset s reset");//disable screensaver |
51 |
res = system("xset s off"); |
52 |
|
53 |
qDebug("enableScreen"); |
54 |
} |