5 #include <boost/noncopyable.hpp>
\r
9 namespace caspar { namespace core {
\r
11 struct channel::implementation : boost::noncopyable
\r
14 implementation(const frame_producer_device_ptr& producer_device, const frame_processor_device_ptr& processor_device, const frame_consumer_device_ptr& consumer_device)
\r
15 : producer_device_(producer_device), processor_device_(processor_device), consumer_device_(consumer_device)
\r
19 void load(int render_layer, const frame_producer_ptr& producer, load_option::type option = load_option::none)
\r
21 producer_device_->load(render_layer, producer, option);
\r
24 void pause(int render_layer)
\r
26 producer_device_->pause(render_layer);
\r
29 void play(int render_layer)
\r
31 producer_device_->play(render_layer);
\r
34 void stop(int render_layer)
\r
36 producer_device_->stop(render_layer);
\r
39 void clear(int render_layer)
\r
41 producer_device_->clear(render_layer);
\r
46 producer_device_->clear();
\r
49 frame_producer_ptr active(int render_layer) const
\r
51 return producer_device_->active(render_layer);
\r
54 frame_producer_ptr background(int render_layer) const
\r
56 return producer_device_->background(render_layer);
\r
59 const video_format_desc get_video_format_desc() const
\r
61 return processor_device_->get_video_format_desc();
\r
65 const frame_producer_device_ptr producer_device_;
\r
66 const frame_processor_device_ptr processor_device_;
\r
67 const frame_consumer_device_ptr consumer_device_;
\r
70 channel::channel(const frame_producer_device_ptr& producer_device, const frame_processor_device_ptr& processor_device, const frame_consumer_device_ptr& consumer_device)
\r
71 : impl_(new implementation(producer_device, processor_device, consumer_device)){}
\r
72 void channel::load(int render_layer, const frame_producer_ptr& producer, load_option::type option){impl_->load(render_layer, producer, option);}
\r
73 void channel::pause(int render_layer){impl_->pause(render_layer);}
\r
74 void channel::play(int render_layer){impl_->play(render_layer);}
\r
75 void channel::stop(int render_layer){impl_->stop(render_layer);}
\r
76 void channel::clear(int render_layer){impl_->clear(render_layer);}
\r
77 void channel::clear(){impl_->clear();}
\r
78 frame_producer_ptr channel::active(int render_layer) const{ return impl_->active(render_layer);}
\r
79 frame_producer_ptr channel::background(int render_layer) const{return impl_->background(render_layer);}
\r
80 const video_format_desc channel::get_video_format_desc() const{ return impl_->get_video_format_desc();}
\r