]> git.sur5r.net Git - minitube/blob - lib/idle/src/idle_mac.cpp
New upstream version 3.1
[minitube] / lib / idle / src / idle_mac.cpp
1 #include "idle.h"
2
3 #include <IOKit/pwr_mgt/IOPMLib.h>
4
5 namespace {
6
7 IOPMAssertionID displayAssertionID = 0;
8 IOReturn displayRes = 0;
9
10 IOPMAssertionID systemAssertionID = 0;
11 IOReturn systemRes = 0;
12
13 } // namespace
14
15 bool Idle::preventDisplaySleep(const QString &reason) {
16     displayRes = IOPMAssertionCreateWithName(kIOPMAssertionTypePreventUserIdleDisplaySleep,
17                                              kIOPMAssertionLevelOn, reason.toCFString(),
18                                              &displayAssertionID);
19     return displayRes == kIOReturnSuccess;
20 }
21
22 bool Idle::allowDisplaySleep() {
23     displayRes = IOPMAssertionRelease(displayAssertionID);
24     return displayRes == kIOReturnSuccess;
25 }
26
27 QString Idle::displayErrorMessage() {
28     return QString();
29     // return QString::fromUtf8(IOService::stringFromReturn(displayRes));
30 }
31
32 bool Idle::preventSystemSleep(const QString &reason) {
33     systemRes = IOPMAssertionCreateWithName(kIOPMAssertionTypePreventUserIdleSystemSleep,
34                                             kIOPMAssertionLevelOn, reason.toCFString(),
35                                             &systemAssertionID);
36     return systemRes == kIOReturnSuccess;
37 }
38
39 bool Idle::allowSystemSleep() {
40     systemRes = IOPMAssertionRelease(systemAssertionID);
41     return systemRes == kIOReturnSuccess;
42 }
43
44 QString Idle::systemErrorMessage() {
45     return QString();
46     // return QString::fromUtf8(IOService::stringFromReturn(systemRes));
47 }