]> git.sesse.net Git - casparcg/blobdiff - core/consumer/output.cpp
Added OSC message from output mostly for alive detection by management systems
[casparcg] / core / consumer / output.cpp
index 32d502c789a3a34dd1fbccc5e798360a2b264d62..678a4af734bb4bc3a03480f7be3e748387e63a9e 100644 (file)
@@ -49,6 +49,7 @@ struct output::implementation
 {              \r
        const int                                                                               channel_index_;\r
        const safe_ptr<diagnostics::graph>                              graph_;\r
+       monitor::subject                                                                monitor_subject_;\r
        boost::timer                                                                    consume_timer_;\r
 \r
        video_format_desc                                                               format_desc_;\r
@@ -66,6 +67,7 @@ public:
        implementation(const safe_ptr<diagnostics::graph>& graph, const video_format_desc& format_desc, int channel_index) \r
                : channel_index_(channel_index)\r
                , graph_(graph)\r
+               , monitor_subject_("/output")\r
                , format_desc_(format_desc)\r
                , executor_(L"output")\r
        {\r
@@ -277,6 +279,7 @@ public:
                                }\r
                                                \r
                                graph_->set_value("consume-time", consume_timer_.elapsed()*format_desc_.fps*0.5);\r
+                               monitor_subject_ << monitor::message("/consume_time") % (consume_timer_.elapsed());\r
                        }\r
                        catch(...)\r
                        {\r
@@ -335,6 +338,11 @@ public:
                        return consumers_.empty();\r
                });\r
        }\r
+\r
+       monitor::subject& monitor_output()\r
+       { \r
+               return monitor_subject_;\r
+       }\r
 };\r
 \r
 output::output(const safe_ptr<diagnostics::graph>& graph, const video_format_desc& format_desc, int channel_index) : impl_(new implementation(graph, format_desc, channel_index)){}\r
@@ -347,4 +355,5 @@ void output::set_video_format_desc(const video_format_desc& format_desc){impl_->
 boost::unique_future<boost::property_tree::wptree> output::info() const{return impl_->info();}\r
 boost::unique_future<boost::property_tree::wptree> output::delay_info() const{return impl_->delay_info();}\r
 bool output::empty() const{return impl_->empty();}\r
+monitor::subject& output::monitor_output() { return impl_->monitor_output(); }\r
 }}
\ No newline at end of file