source: smplayer/vendor/0.6.9/src/screensaver.cpp@ 189

Last change on this file since 189 was 90, checked in by Silvan Scherrer, 16 years ago

smplayer: import 0.6.9

File size: 2.8 KB
Line 
1/* smplayer, GUI front-end for mplayer.
2 Copyright (C) 2006-2010 Ricardo Villalba <[email protected]>
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17*/
18
19#include "screensaver.h"
20#include <Qt>
21#include <QSysInfo>
22#include <windows.h>
23
24WinScreenSaver::WinScreenSaver() {
25 lowpower = poweroff = screensaver = 0;
26 state_saved = false;
27 modified = false;
28
29 retrieveState();
30}
31
32WinScreenSaver::~WinScreenSaver() {
33 restoreState();
34}
35
36void WinScreenSaver::retrieveState() {
37 qDebug("WinScreenSaver::retrieveState");
38
39 if (!state_saved) {
40 if (QSysInfo::WindowsVersion < QSysInfo::WV_VISTA) {
41 // Not supported on Windows Vista
42 SystemParametersInfo(SPI_GETLOWPOWERTIMEOUT, 0, &lowpower, 0);
43 SystemParametersInfo(SPI_GETPOWEROFFTIMEOUT, 0, &poweroff, 0);
44 }
45 SystemParametersInfo(SPI_GETSCREENSAVETIMEOUT, 0, &screensaver, 0);
46 state_saved = true;
47
48 qDebug("WinScreenSaver::retrieveState: lowpower: %d, poweroff: %d, screensaver: %d", lowpower, poweroff, screensaver);
49 } else {
50 qDebug("WinScreenSaver::retrieveState: state already saved previously, doing nothing");
51 }
52}
53
54void WinScreenSaver::restoreState() {
55 if (!modified) {
56 qDebug("WinScreenSaver::restoreState: state did not change, doing nothing");
57 return;
58 }
59
60 if (state_saved) {
61 if (QSysInfo::WindowsVersion < QSysInfo::WV_VISTA) {
62 // Not supported on Windows Vista
63 SystemParametersInfo(SPI_SETLOWPOWERTIMEOUT, lowpower, NULL, 0);
64 SystemParametersInfo(SPI_SETPOWEROFFTIMEOUT, poweroff, NULL, 0);
65 }
66 SystemParametersInfo(SPI_SETSCREENSAVETIMEOUT, screensaver, NULL, 0);
67
68 qDebug("WinScreenSaver::restoreState: lowpower: %d, poweroff: %d, screensaver: %d", lowpower, poweroff, screensaver);
69 } else {
70 qWarning("WinScreenSaver::restoreState: no data, doing nothing");
71 }
72}
73
74void WinScreenSaver::disable() {
75 qDebug("WinScreenSaver::disable");
76
77 if (QSysInfo::WindowsVersion < QSysInfo::WV_VISTA) {
78 // Not supported on Windows Vista
79 SystemParametersInfo(SPI_SETLOWPOWERTIMEOUT, 0, NULL, 0);
80 SystemParametersInfo(SPI_SETPOWEROFFTIMEOUT, 0, NULL, 0);
81 }
82 SystemParametersInfo(SPI_SETSCREENSAVETIMEOUT, 0, NULL, 0);
83
84 modified = true;
85}
86
87void WinScreenSaver::enable() {
88 qDebug("WinScreenSaver::enable");
89
90 restoreState();
91}
92
Note: See TracBrowser for help on using the repository browser.