mirror of
https://git.jami.net/savoirfairelinux/jami-client-qt.git
synced 2025-08-04 23:05:48 +02:00
system: implement screen saver on macOS
GitLab: #1513 Change-Id: I7f8e6a8f19ddd932d62a0523e8f95b29851567b2
This commit is contained in:
parent
a0fc85d0a9
commit
6aaac12758
2 changed files with 38 additions and 7 deletions
|
@ -31,7 +31,8 @@ ScreenSaver::ScreenSaver(QObject* parent)
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
: QObject(parent)
|
: QObject(parent)
|
||||||
{}
|
{
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef Q_OS_LINUX
|
#ifdef Q_OS_LINUX
|
||||||
|
@ -83,6 +84,18 @@ ScreenSaver::inhibit(void)
|
||||||
qDebug() << "Error inhibiting screen saver: " << error.message() << error.name();
|
qDebug() << "Error inhibiting screen saver: " << error.message() << error.name();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef Q_OS_MACOS
|
||||||
|
CFStringRef reasonForActivity = CFStringCreateWithCString(NULL,
|
||||||
|
"Active Call: Keeping Screen Awake",
|
||||||
|
kCFStringEncodingUTF8);
|
||||||
|
IOReturn success = IOPMAssertionCreateWithName(kIOPMAssertionTypePreventUserIdleDisplaySleep,
|
||||||
|
kIOPMAssertionLevelOn,
|
||||||
|
reasonForActivity,
|
||||||
|
&preventSleepAssertionID);
|
||||||
|
CFRelease(reasonForActivity);
|
||||||
|
return true;
|
||||||
|
#endif
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -111,6 +124,12 @@ ScreenSaver::uninhibit(void)
|
||||||
}
|
}
|
||||||
request_ = 0u;
|
request_ = 0u;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef Q_OS_MACOS
|
||||||
|
IOReturn releaseResult = IOPMAssertionRelease(preventSleepAssertionID);
|
||||||
|
preventSleepAssertionID = 0;
|
||||||
|
return true;
|
||||||
|
#endif
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,6 +138,9 @@ ScreenSaver::isInhibited(void)
|
||||||
{
|
{
|
||||||
#ifdef Q_OS_LINUX
|
#ifdef Q_OS_LINUX
|
||||||
return request_ != 0u;
|
return request_ != 0u;
|
||||||
|
#endif
|
||||||
|
#ifdef Q_OS_MACOS
|
||||||
|
return preventSleepAssertionID != 0;
|
||||||
#endif
|
#endif
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,10 @@
|
||||||
#define N_SERVICES 3
|
#define N_SERVICES 3
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef Q_OS_MACOS
|
||||||
|
#include "IOKit/pwr_mgt/IOPMLib.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
class ScreenSaver : public QObject
|
class ScreenSaver : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
@ -52,4 +56,9 @@ private:
|
||||||
QDBusConnection sessionBus_;
|
QDBusConnection sessionBus_;
|
||||||
QDBusInterface* screenSaverInterface_;
|
QDBusInterface* screenSaverInterface_;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef Q_OS_MACOS
|
||||||
|
private:
|
||||||
|
IOPMAssertionID preventSleepAssertionID {0};
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Reference in a new issue