]> git.sesse.net Git - casparcg/blob - core/producer/flash/cg_producer.h
857181b67b3ad7bc27cb275b59915e10ee6fd677
[casparcg] / core / producer / flash / cg_producer.h
1 #pragma once\r
2 \r
3 #include "../frame_producer.h"\r
4 #include "../../frame/frame_fwd.h"\r
5 #include "../../renderer/render_device.h"\r
6 \r
7 namespace caspar{ namespace flash{\r
8                 \r
9 class cg_producer : public frame_producer\r
10 {\r
11 public:\r
12         cg_producer(const frame_format_desc& format_desc, Monitor* pMonitor);\r
13         \r
14         frame_ptr get_frame();\r
15 \r
16         void clear();\r
17         void add(int layer, const std::wstring& template_name,  bool play_on_load, const std::wstring& start_from_label = TEXT(""), const std::wstring& data = TEXT(""));\r
18         void remove(int layer);\r
19         void play(int layer);\r
20         void stop(int layer, unsigned int mix_out_duration);\r
21         void next(int layer);\r
22         void update(int layer, const std::wstring& data);\r
23         void invoke(int layer, const std::wstring& label);\r
24 \r
25         const frame_format_desc& get_frame_format_desc() const;\r
26 private:\r
27         struct implementation;\r
28         std::shared_ptr<implementation> impl_;\r
29 };\r
30 typedef std::shared_ptr<cg_producer> cg_producer_ptr;\r
31 \r
32 static const unsigned int CG_DEFAULT_LAYER = 5000;\r
33 \r
34 cg_producer_ptr get_default_cg_producer(const renderer::render_device_ptr& render_device, unsigned int layer_index = CG_DEFAULT_LAYER);\r
35 \r
36 }}