#pragma once
#include "../monitor/monitor.h"
+#include "../fwd.h"
#include <common/memory.h>
+#include <common/future_fwd.h>
#include <boost/property_tree/ptree_fwd.hpp>
namespace caspar { namespace core {
-class port : public monitor::observable
+class port
{
port(const port&);
port& operator=(const port&);
// Constructors
- port(int index, int channel_index, spl::shared_ptr<class frame_consumer> consumer);
+ port(int index, int channel_index, spl::shared_ptr<frame_consumer> consumer);
port(port&& other);
~port();
port& operator=(port&& other);
- bool send(class const_frame frame);
+ std::future<bool> 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<const frame_consumer> consumer() const;
private:
struct impl;
std::unique_ptr<impl> impl_;
};
-}}
\ No newline at end of file
+}}