]> git.sesse.net Git - casparcg/blob - core/producer/flash/cg_producer.h
2.0.0.2:
[casparcg] / core / producer / flash / cg_producer.h
1 #pragma once\r
2 \r
3 #include "../frame_producer.h"\r
4 #include "../../video/video_format.h"\r
5 #include "../../channel.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();\r
13         \r
14         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 video_format_desc& get_video_format_desc() const;\r
26         void initialize(const frame_processor_device_ptr& frame_processor);\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 channel_ptr& channel, unsigned int layer_index = CG_DEFAULT_LAYER);\r
36 \r
37 }}}