Merge master.
[dcpomatic.git] / src / lib / cross.cc
index 746b4f509c7e010a7c0203eda85bc155239af779..786f4b99767e1a8db5b4b1fc1f01695da547a919 100644 (file)
@@ -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>
@@ -288,3 +289,35 @@ fopen_boost (boost::filesystem::path p, string t)
         return fopen (p.c_str(), t.c_str ());
 #endif
 }
+
+int
+dcpomatic_fseek (FILE* stream, int64_t offset, int whence)
+{
+#ifdef DCPOMATIC_WINDOWS
+       return _fseeki64 (stream, offset, whence);
+#else  
+       return fseek (stream, offset, whence);
+#endif 
+}
+
+void
+Waker::nudge ()
+{
+#ifdef DCPOMATIC_WINDOWS
+       SetThreadExecutionState (ES_CONTINUOUS);
+#endif 
+}
+
+Waker::Waker ()
+{
+#ifdef DCPOMATIC_OSX   
+        IOPMAssertionCreateWithName (kIOPMAssertionTypeNoIdleSleep, kIOPMAssertionLevelOn, CFSTR ("Encoding DCP"), &_assertion_id);
+#endif 
+}
+
+Waker::~Waker ()
+{
+#ifdef DCPOMATIC_OSX   
+       IOPMAssertionRelease (_assertion_id);
+#endif 
+}