Comments.
[dcpomatic.git] / src / lib / cross.cc
index 9f7a761248aef9f045ba85a14e05356a066b5a4b..eadbd75d87d1c203ea7a4a2719079a4da81fbb83 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2014 Carl Hetherington <cth@carlh.net>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -34,6 +34,7 @@
 #ifdef DCPOMATIC_OSX
 #include <sys/sysctl.h>
 #include <mach-o/dyld.h>
+#include <IOKit/pwr_mgt/IOPMLib.h>
 #endif
 #ifdef DCPOMATIC_POSIX
 #include <sys/types.h>
@@ -300,9 +301,26 @@ dcpomatic_fseek (FILE* stream, int64_t offset, int whence)
 }
 
 void
-kick ()
+Waker::nudge ()
 {
 #ifdef DCPOMATIC_WINDOWS
        SetThreadExecutionState (ES_CONTINUOUS);
 #endif 
 }
+
+Waker::Waker ()
+{
+#ifdef DCPOMATIC_OSX
+       /* We should use this */
+        // IOPMAssertionCreateWithName (kIOPMAssertionTypeNoIdleSleep, kIOPMAssertionLevelOn, CFSTR ("Encoding DCP"), &_assertion_id);
+       /* but it's not available on 10.5, so we use this */
+        IOPMAssertionCreate (kIOPMAssertionTypeNoIdleSleep, kIOPMAssertionLevelOn, &_assertion_id);
+#endif 
+}
+
+Waker::~Waker ()
+{
+#ifdef DCPOMATIC_OSX   
+       IOPMAssertionRelease (_assertion_id);
+#endif 
+}