#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