]> git.sesse.net Git - casparcg/blobdiff - core/mixer/mixer.h
Merged screen consumer improvements from trunk
[casparcg] / core / mixer / mixer.h
index 99e5617f416105d7607559d5d466cb6c1ca7496a..328b852387743b7300f86138ec9787cba859fac0 100644 (file)
 #include "image/blend_modes.h"\r
 \r
 #include <common/forward.h>\r
-#include <common/memory/safe_ptr.h>\r
+#include <common/future_fwd.h>\r
+#include <common/memory.h>\r
 #include <common/reactive.h>\r
 \r
-#include <boost/noncopyable.hpp>\r
+#include <core/video_format.h>\r
+\r
 #include <boost/property_tree/ptree_fwd.hpp>\r
-#include <boost/thread/future.hpp>\r
 \r
 #include <map>\r
 \r
-FORWARD1(boost, template<typename> class unique_future);\r
 FORWARD2(caspar, diagnostics, class graph);\r
-FORWARD3(caspar, core, gpu, class accelerator);\r
 \r
 namespace caspar { namespace core {\r
        \r
-class mixer sealed : boost::noncopyable\r
+class mixer sealed\r
 {\r
-public:        \r
-       explicit mixer(const safe_ptr<gpu::accelerator>& ogl);\r
-                               \r
-       // mixer\r
-                       \r
-       void set_blend_mode(int index, blend_mode value);\r
+       mixer(const mixer&);\r
+       mixer& operator=(const mixer&);\r
+public:\r
+       \r
+       // Static Members\r
+                                       \r
+       // Constructors\r
+       \r
+       explicit mixer(spl::shared_ptr<diagnostics::graph> graph, spl::shared_ptr<class image_mixer> image_mixer);\r
 \r
-       boost::unique_future<boost::property_tree::wptree> info() const;\r
+       // Methods\r
+               \r
+       class const_frame operator()(std::map<int, class draw_frame> frames, const struct video_format_desc& format_desc);\r
        \r
-       // subject\r
+       void set_blend_mode(int index, blend_mode value);\r
+\r
+       class mutable_frame create_frame(const void* tag, const struct pixel_format_desc& desc);\r
 \r
-       safe_ptr<const struct frame> operator()(std::map<int, safe_ptr<class basic_frame>> frames, const struct video_format_desc& format_desc);\r
+       // Properties\r
+\r
+       boost::unique_future<boost::property_tree::wptree> info() const;\r
 \r
 private:\r
        struct impl;\r
-       safe_ptr<impl> impl_;\r
+       spl::shared_ptr<impl> impl_;\r
 };\r
 \r
 }}
\ No newline at end of file