3 #include "../frame_producer.h"
\r
4 #include "../../frame/frame_fwd.h"
\r
5 #include "../../renderer/render_device.h"
\r
7 namespace caspar{ namespace flash{
\r
9 class cg_producer : public frame_producer
\r
12 cg_producer(const frame_format_desc& format_desc, Monitor* pMonitor);
\r
14 frame_ptr get_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 frame_format_desc& get_frame_format_desc() const;
\r
27 struct implementation;
\r
28 std::shared_ptr<implementation> impl_;
\r
30 typedef std::shared_ptr<cg_producer> cg_producer_ptr;
\r
32 static const unsigned int CG_DEFAULT_LAYER = 5000;
\r
34 cg_producer_ptr get_default_cg_producer(const renderer::render_device_ptr& render_device, unsigned int layer_index = CG_DEFAULT_LAYER);
\r