summaryrefslogtreecommitdiff
path: root/src/lib/cross.h
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-03-03 11:26:53 +0000
committerCarl Hetherington <cth@carlh.net>2014-03-03 11:26:53 +0000
commit9d075e8e4d9751eee153c0f00fb541a4217f116b (patch)
tree73e17ebaf60f8eafe86e0d1f627185ace63411d8 /src/lib/cross.h
parent2ca921e378cd32ca44c389008a60dd08dd58f6e0 (diff)
Try to prevent OS X from sleeping during DCP encode.
Diffstat (limited to 'src/lib/cross.h')
-rw-r--r--src/lib/cross.h27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/lib/cross.h b/src/lib/cross.h
index 822b36631..1c7754503 100644
--- a/src/lib/cross.h
+++ b/src/lib/cross.h
@@ -17,7 +17,13 @@
*/
+#ifndef DCPOMATIC_CROSS_H
+#define DCPOMATIC_CROSS_H
+
#include <boost/filesystem.hpp>
+#ifdef DCPOMATIC_OSX
+#include <IOKit/pwr_mgt/IOPMLib.h>
+#endif
#ifdef DCPOMATIC_WINDOWS
#define WEXITSTATUS(w) (w)
@@ -35,4 +41,23 @@ extern boost::filesystem::path app_contents ();
#endif
extern FILE * fopen_boost (boost::filesystem::path, std::string);
extern int dcpomatic_fseek (FILE *, int64_t, int);
-void kick ();
+
+/** A class which tries to keep the computer awake on various operating systems.
+ * Create a Waker to prevent sleep, and call ::nudge every so often (every minute or so).
+ * Destroy the Waker to allow sleep again.
+ */
+class Waker
+{
+public:
+ Waker ();
+ ~Waker ();
+
+ void nudge ();
+
+private:
+#ifdef DCPOMATIC_OSX
+ IOPMAssertionID _assertion_id;
+#endif
+};
+
+#endif