X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=core%2Fconsumer%2Fport.h;h=48e639c9225f266eef71d665ea50007a017f29d7;hb=1176084924e43ef406dc740246bf018de61f2145;hp=119deb0f71839af8ab19c4420fd87b5d40b6618f;hpb=ff484db284f973c33bacf87c464e185c4f88a2d6;p=casparcg diff --git a/core/consumer/port.h b/core/consumer/port.h index 119deb0f7..48e639c92 100644 --- a/core/consumer/port.h +++ b/core/consumer/port.h @@ -1,15 +1,16 @@ #pragma once #include "../monitor/monitor.h" +#include "../fwd.h" #include +#include #include -#include namespace caspar { namespace core { -class port : public monitor::observable +class port { port(const port&); port& operator=(const port&); @@ -19,7 +20,7 @@ public: // Constructors - port(int index, int channel_index, spl::shared_ptr consumer); + port(int index, int channel_index, spl::shared_ptr consumer); port(port&& other); ~port(); @@ -27,23 +28,22 @@ public: port& operator=(port&& other); - boost::unique_future send(class const_frame frame); + std::future send(const_frame frame); - // monitor::observable - - void subscribe(const monitor::observable::observer_ptr& o) override; - void unsubscribe(const monitor::observable::observer_ptr& o) override; + monitor::subject& monitor_output(); // Properties - void video_format_desc(const struct video_format_desc& format_desc); + void change_channel_format(const video_format_desc& format_desc, const audio_channel_layout& channel_layout); std::wstring print() const; int buffer_depth() const; bool has_synchronization_clock() const; boost::property_tree::wptree info() const; + int64_t presentation_frame_age_millis() const; + spl::shared_ptr consumer() const; private: struct impl; std::unique_ptr impl_; }; -}} \ No newline at end of file +}}