3 #include "../frame_producer.h"
\r
4 #include "../../video/video_format.h"
\r
5 #include "../../channel.h"
\r
7 namespace caspar { namespace core { namespace flash{
\r
9 class cg_producer : public frame_producer
\r
14 frame_ptr render_frame();
\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
25 const video_format_desc& get_video_format_desc() const;
\r
26 void initialize(const frame_processor_device_ptr& frame_processor);
\r
28 struct implementation;
\r
29 std::shared_ptr<implementation> impl_;
\r
31 typedef std::shared_ptr<cg_producer> cg_producer_ptr;
\r
33 static const unsigned int CG_DEFAULT_LAYER = 5000;
\r
35 cg_producer_ptr get_default_cg_producer(const channel_ptr& channel, unsigned int layer_index = CG_DEFAULT_LAYER);
\r