]> git.sesse.net Git - casparcg/blob - core/producer/flash/cg_producer.h
1fdb7428a134f182b60e3fdb486f32c4a3439528
[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 core { 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);\r
13         \r
14         gpu_frame_ptr render_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         void initialize(const frame_factory_ptr& factory);\r
27 private:\r
28         struct implementation;\r
29         std::shared_ptr<implementation> impl_;\r
30 };\r
31 typedef std::shared_ptr<cg_producer> cg_producer_ptr;\r
32 \r
33 static const unsigned int CG_DEFAULT_LAYER = 5000;\r
34 \r
35 cg_producer_ptr get_default_cg_producer(const renderer::render_device_ptr& render_device, unsigned int layer_index = CG_DEFAULT_LAYER);\r
36 \r
37 }}}