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