X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=core%2Fvideo_channel.h;h=4c256b0dca24861fd28e9c6b147be78d0d3bc4df;hb=086d3c7a704c92dd89a6e7b8e6576b9f1c216c2d;hp=e93bc1d073135780d41ad03755e86ee19f3ac39e;hpb=c3a76b811579dd3a52227e170903da821c04ae9e;p=casparcg diff --git a/core/video_channel.h b/core/video_channel.h index e93bc1d07..4c256b0dc 100644 --- a/core/video_channel.h +++ b/core/video_channel.h @@ -22,24 +22,19 @@ #pragma once #include -#include #include +#include "fwd.h" + #include "monitor/monitor.h" #include -FORWARD3(caspar, core, ogl, class accelerator); -FORWARD2(caspar, core, class stage); -FORWARD2(caspar, core, class mixer); -FORWARD2(caspar, core, class output); -FORWARD2(caspar, core, class image_mixer); -FORWARD2(caspar, core, struct video_format_desc); -FORWARD2(caspar, core, class frame_factory); +#include namespace caspar { namespace core { - -class video_channel /*final*/ + +class video_channel final { video_channel(const video_channel&); video_channel& operator=(const video_channel&); @@ -49,31 +44,41 @@ public: // Constructors - explicit video_channel(int index, const video_format_desc& format_desc, std::unique_ptr image_mixer); + explicit video_channel( + int index, + const video_format_desc& format_desc, + const audio_channel_layout& channel_layout, + std::unique_ptr image_mixer); ~video_channel(); // Methods - - monitor::source& monitor_output(); + + monitor::subject& monitor_output(); // Properties - const core::stage& stage() const; - core::stage& stage(); - const core::mixer& mixer() const; - core::mixer& mixer(); - const core::output& output() const; - core::output& output(); - - core::video_format_desc video_format_desc() const; - void video_format_desc(const core::video_format_desc& format_desc); - - spl::shared_ptr frame_factory(); - - boost::property_tree::wptree info() const; + const core::stage& stage() const; + core::stage& stage(); + const core::mixer& mixer() const; + core::mixer& mixer(); + const core::output& output() const; + core::output& output(); + + core::video_format_desc video_format_desc() const; + void video_format_desc(const core::video_format_desc& format_desc); + core::audio_channel_layout audio_channel_layout() const; + void audio_channel_layout(const core::audio_channel_layout& channel_layout); + + std::shared_ptr add_tick_listener(std::function listener); + + spl::shared_ptr frame_factory(); + + boost::property_tree::wptree info() const; + boost::property_tree::wptree delay_info() const; + int index() const; private: struct impl; spl::unique_ptr impl_; }; -}} \ No newline at end of file +}}