]> git.sesse.net Git - casparcg/blobdiff - core/producer/layer.h
[scene] Fixed infinite loop in expression parsing.
[casparcg] / core / producer / layer.h
index b35bb570d629b90cbb31de793ab7740a05a10aaa..2fb114f0381beb78b70fbeaf3feb97ac59df055f 100644 (file)
 
 #include "../monitor/monitor.h"
 #include "../interaction/interaction_sink.h"
+#include "../fwd.h"
 
 #include <common/forward.h>
 #include <common/future_fwd.h>
 #include <common/memory.h>
 
 #include <boost/property_tree/ptree_fwd.hpp>
+#include <boost/optional.hpp>
 
 #include <string>
 
-FORWARD1(boost, template<typename T> class optional);
-
 namespace caspar { namespace core {
        
-class layer sealed : public monitor::observable, public interaction_sink
+class layer final : public interaction_sink
 {
        layer(const layer&);
        layer& operator=(const layer&);
@@ -56,17 +56,17 @@ public:
 
        void swap(layer& other);  
                
-       void load(spl::shared_ptr<class frame_producer> producer, bool preview, const boost::optional<int32_t>& auto_play_delta = nullptr); 
-       void play(); 
-       void pause(); 
-       void stop(); 
+       void load(spl::shared_ptr<frame_producer> producer, bool preview, const boost::optional<int32_t>& auto_play_delta = boost::optional<int32_t>());
+       void play();
+       void pause();
+       void resume();
+       void stop();
        
-       class draw_frame receive(const struct video_format_desc& format_desc); 
+       draw_frame receive(const video_format_desc& format_desc);
        
        // monitor::observable
 
-       void subscribe(const monitor::observable::observer_ptr& o) override;
-       void unsubscribe(const monitor::observable::observer_ptr& o) override;
+       monitor::subject& monitor_output();
 
        // interaction_sink
 
@@ -75,10 +75,11 @@ public:
 
        // Properties
                
-       spl::shared_ptr<class frame_producer>   foreground() const; 
-       spl::shared_ptr<class frame_producer>   background() const; 
+       spl::shared_ptr<frame_producer> foreground() const; 
+       spl::shared_ptr<frame_producer> background() const; 
 
-       boost::property_tree::wptree                    info() const;
+       boost::property_tree::wptree    info() const;
+       boost::property_tree::wptree    delay_info() const;
 
 private:
        struct impl;