3 #include <common/memory/safe_ptr.h>
\r
5 #include <boost/noncopyable.hpp>
\r
10 namespace caspar { namespace core {
\r
12 class frame_producer;
\r
15 class layer //: boost::noncopyable
\r
19 layer(layer&& other); // nothrow
\r
20 layer& operator=(layer&& other); // nothrow
\r
21 layer(const layer&);
\r
22 layer& operator=(const layer&);
\r
24 void swap(layer& other); // nothrow
\r
26 void load(const safe_ptr<frame_producer>& producer, bool preview); // nothrow
\r
27 void play(); // nothrow
\r
28 void pause(); // nothrow
\r
29 void stop(); // nothrow
\r
31 safe_ptr<frame_producer> foreground() const; // nothrow
\r
32 safe_ptr<frame_producer> background() const; // nothrow
\r
34 safe_ptr<basic_frame> receive(); // nothrow
\r
36 struct implementation;
\r
37 std::shared_ptr<implementation> impl_;
\r