summaryrefslogtreecommitdiffhomepage
path: root/opentrack/appnap_mac.mm
diff options
context:
space:
mode:
Diffstat (limited to 'opentrack/appnap_mac.mm')
-rw-r--r--opentrack/appnap_mac.mm47
1 files changed, 47 insertions, 0 deletions
diff --git a/opentrack/appnap_mac.mm b/opentrack/appnap_mac.mm
new file mode 100644
index 00000000..3e0bea73
--- /dev/null
+++ b/opentrack/appnap_mac.mm
@@ -0,0 +1,47 @@
+#ifdef __APPLE__
+
+#import <Foundation/Foundation.h>
+
+/**
+ * Used to prevent macOS from throttling the opentrack process.
+ */
+
+id token = nil;
+
+void disable_appnap_start();
+void disable_appnap_stop();
+
+void disable_appnap_start() {
+
+ if(token){
+ NSLog(@"disable_appnap_start: already started");
+ return;
+ }
+
+
+ NSLog(@"disable_appnap_start");
+ token = [[NSProcessInfo processInfo]
+ beginActivityWithOptions: NSActivityUserInitiatedAllowingIdleSystemSleep
+ reason: @"Disable AppNap"];
+ [token retain];
+}
+
+void disable_appnap_stop() {
+ if(!token){
+ NSLog(@"disable_appnap_start: not started");
+ return;
+ }
+
+ NSLog(@"disable_appnap_stop");
+ [[NSProcessInfo processInfo] endActivity:token];
+ [token release];
+ token = nil;
+}
+
+
+
+#endif
+
+
+
+