]> git.sesse.net Git - casparcg/blob - core/consumer/port.h
* Upgraded to Visual Studio 2013
[casparcg] / core / consumer / port.h
1 #pragma once
2
3 #include "../monitor/monitor.h"
4
5 #include <common/memory.h>
6 #include <common/future_fwd.h>
7
8 #include <boost/property_tree/ptree_fwd.hpp>
9
10 namespace caspar { namespace core {
11
12 class port
13 {
14         port(const port&);
15         port& operator=(const port&);
16 public:
17
18         // Static Members
19
20         // Constructors
21
22         port(int index, int channel_index, spl::shared_ptr<class frame_consumer> consumer);
23         port(port&& other);
24         ~port();
25
26         // Member Functions
27
28         port& operator=(port&& other);
29
30         std::future<bool> send(class const_frame frame);        
31
32         monitor::subject& monitor_output();
33
34         // Properties
35
36         void video_format_desc(const struct video_format_desc& format_desc);
37         std::wstring print() const;
38         int buffer_depth() const;
39         bool has_synchronization_clock() const;
40         boost::property_tree::wptree info() const;
41 private:
42         struct impl;
43         std::unique_ptr<impl> impl_;
44 };
45
46 }}