Barely-functioning GL playback with new arrangement.
[dcpomatic.git] / src / lib / cross.cc
index 1b83bad7c6dca9a02cf9696eccf8c8834f0fa8b7..5d35d5a4bbcb28da70ca7b77f0ceec678c1a826e 100644 (file)
@@ -75,6 +75,17 @@ dcpomatic_sleep_seconds (int s)
 #endif
 }
 
+void
+dcpomatic_sleep_milliseconds (int ms)
+{
+#ifdef DCPOMATIC_POSIX
+       usleep (ms * 1000);
+#endif
+#ifdef DCPOMATIC_WINDOWS
+       Sleep (ms);
+#endif
+}
+
 /** @return A string of CPU information (model name etc.) */
 string
 cpu_info ()
@@ -300,9 +311,17 @@ openssl_path ()
        boost::filesystem::path path = dir;
        path /= "openssl.exe";
        return path;
-#else
-       /* We assume that it's on the path for Linux and OS X */
-       return "openssl";
+#endif
+
+#ifdef DCPOMATIC_OSX
+       boost::filesystem::path path = app_contents();
+       path /= "MacOS";
+       path /= "openssl";
+       return path;
+#endif
+
+#ifdef DCPOMATIC_LINUX
+       return "dcpomatic2_openssl";
 #endif
 
 }
@@ -337,6 +356,7 @@ void
 Waker::nudge ()
 {
 #ifdef DCPOMATIC_WINDOWS
+       boost::mutex::scoped_lock lm (_mutex);
        SetThreadExecutionState (ES_SYSTEM_REQUIRED);
 #endif
 }
@@ -344,6 +364,7 @@ Waker::nudge ()
 Waker::Waker ()
 {
 #ifdef DCPOMATIC_OSX
+       boost::mutex::scoped_lock lm (_mutex);
        /* We should use this */
         // IOPMAssertionCreateWithName (kIOPMAssertionTypeNoIdleSleep, kIOPMAssertionLevelOn, CFSTR ("Encoding DCP"), &_assertion_id);
        /* but it's not available on 10.5, so we use this */
@@ -354,6 +375,7 @@ Waker::Waker ()
 Waker::~Waker ()
 {
 #ifdef DCPOMATIC_OSX
+       boost::mutex::scoped_lock lm (_mutex);
        IOPMAssertionRelease (_assertion_id);
 #endif
 }