Try to fix build.
[dcpomatic.git] / src / lib / ui_signaller.h
index 0d19660bfd8847b2d6c999b1249ca5e69d0800dc..ee4d230d407e566114ae57b491700196c19d21c5 100644 (file)
@@ -17,8 +17,8 @@
 
 */
 
-#ifndef DVDOMATIC_UI_SIGNALLER_H
-#define DVDOMATIC_UI_SIGNALLER_H
+#ifndef DCPOMATIC_UI_SIGNALLER_H
+#define DCPOMATIC_UI_SIGNALLER_H
 
 #include <boost/bind.hpp>
 #include <boost/asio.hpp>
@@ -27,7 +27,7 @@
 /** A class to allow signals to be emitted from non-UI threads and handled
  *  by a UI thread.
  */
-class UISignaller
+class UISignaller : public boost::noncopyable
 {
 public:
        /** Create a UISignaller.  Must be called from the UI thread */
@@ -54,9 +54,16 @@ public:
                }
        }
 
+       /* Do something next time the UI is idle */
+       template <typename T>
+       void when_idle (T f) {
+               _service.post (f);
+       }
+
        /** Call this in the UI when it is idle */
-       void ui_idle () {
-               _service.poll ();
+       size_t ui_idle () {
+               /* This executes any functors that have been post()ed to _service */
+               return _service.poll ();
        }
 
        /** This should wake the UI and make it call ui_idle() */