]> git.sur5r.net Git - minitube/blob - src/idle/src/idle_mac.cpp
Update watch file to use releases instead of tags
[minitube] / src / 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 }
14
15 bool Idle::preventDisplaySleep(const QString &reason) {
16     displayRes = IOPMAssertionCreateWithName(kIOPMAssertionTypePreventUserIdleDisplaySleep,
17                                         kIOPMAssertionLevelOn, reason.toCFString(), &displayAssertionID);
18     return displayRes == kIOReturnSuccess;
19 }
20
21 bool Idle::allowDisplaySleep() {
22     displayRes = IOPMAssertionRelease(displayAssertionID);
23     return displayRes == kIOReturnSuccess;
24 }
25
26 QString Idle::displayErrorMessage() {
27     return QString();
28     // return QString::fromUtf8(IOService::stringFromReturn(displayRes));
29 }
30
31 bool Idle::preventSystemSleep(const QString &reason) {
32     systemRes = IOPMAssertionCreateWithName(kIOPMAssertionTypePreventUserIdleSystemSleep,
33                                         kIOPMAssertionLevelOn, reason.toCFString(), &systemAssertionID);
34     return systemRes == kIOReturnSuccess;
35 }
36
37 bool Idle::allowSystemSleep() {
38     systemRes = IOPMAssertionRelease(systemAssertionID);
39     return systemRes == kIOReturnSuccess;
40 }
41
42 QString Idle::systemErrorMessage() {
43     return QString();
44     // return QString::fromUtf8(IOService::stringFromReturn(systemRes));
45 }