]> git.sesse.net Git - casparcg/blob - core/producer/frame_producer_device.h
2.0.0.2:
[casparcg] / core / producer / frame_producer_device.h
1 #pragma once\r
2 \r
3 #include "../processor/frame_processor_device.h"\r
4 #include "../consumer/frame_consumer.h"\r
5 #include "../format/video_format.h"\r
6 \r
7 #include "layer.h"\r
8 \r
9 #include <functional>\r
10 \r
11 namespace caspar { namespace core {\r
12                 \r
13 class frame_producer_device : boost::noncopyable\r
14 {       \r
15 public:\r
16         frame_producer_device(const frame_processor_device_ptr& frame_processor);\r
17         \r
18         void load(int render_layer, const frame_producer_ptr& producer, load_option::type option = load_option::none);  \r
19         void pause(int render_layer);\r
20         void play(int render_layer);\r
21         void stop(int render_layer);\r
22         void clear(int render_layer);\r
23         void clear();\r
24         \r
25         frame_producer_ptr foreground(int render_layer) const;\r
26         frame_producer_ptr background(int render_layer) const;\r
27 private:\r
28         struct implementation;\r
29         std::shared_ptr<implementation> impl_;\r
30 };\r
31 typedef std::shared_ptr<frame_producer_device> frame_producer_device_ptr;\r
32 \r
33 }}\r