]> git.sesse.net Git - casparcg/blob - core/producer/flash/cg_producer.h
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches...
[casparcg] / core / producer / flash / cg_producer.h
1 #pragma once\r
2 \r
3 #include "../frame_producer.h"\r
4 #include "../../format/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         static const unsigned int DEFAULT_LAYER = 5000;\r
13 \r
14         cg_producer();\r
15         cg_producer(cg_producer&& other);\r
16         \r
17         virtual safe_ptr<draw_frame> receive();\r
18         virtual void initialize(const safe_ptr<frame_processor_device>& frame_processor);\r
19 \r
20         void clear();\r
21         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
22         void remove(int layer);\r
23         void play(int layer);\r
24         void stop(int layer, unsigned int mix_out_duration);\r
25         void next(int layer);\r
26         void update(int layer, const std::wstring& data);\r
27         void invoke(int layer, const std::wstring& label);\r
28         \r
29         virtual std::wstring print() const;\r
30 \r
31 private:\r
32         struct implementation;\r
33         std::shared_ptr<implementation> impl_;\r
34 };\r
35 \r
36 safe_ptr<cg_producer> get_default_cg_producer(const safe_ptr<channel>& channel, int layer_index = cg_producer::DEFAULT_LAYER);\r
37 \r
38 safe_ptr<frame_producer> create_ct_producer(const std::vector<std::wstring>& params);\r
39 \r
40 }}}