\r
safe_ptr<diagnostics::graph> graph_;\r
boost::timer tick_timer_;\r
+ BMDReferenceStatus last_reference_status_;\r
retry_task<bool> send_completion_;\r
\r
public:\r
, audio_scheduled_(0)\r
, preroll_count_(0)\r
, audio_container_(buffer_size_+1)\r
+ , last_reference_status_(static_cast<BMDReferenceStatus>(-1))\r
{\r
is_running_ = true;\r
\r
\r
graph_->set_value("tick-time", tick_timer_.elapsed()*format_desc_.fps*0.5);\r
tick_timer_.restart();\r
+\r
+ detect_reference_signal_change();\r
+ }\r
+\r
+ void detect_reference_signal_change()\r
+ {\r
+ BMDReferenceStatus reference_status;\r
+\r
+ if (output_->GetReferenceStatus(&reference_status) != S_OK)\r
+ {\r
+ CASPAR_LOG(error) << print() << L" Reference signal: failed while querying status";\r
+ }\r
+ else if (reference_status != last_reference_status_)\r
+ {\r
+ last_reference_status_ = reference_status;\r
+\r
+ if (reference_status == 0)\r
+ CASPAR_LOG(info) << print() << L" Reference signal: not detected.";\r
+ else if (reference_status & bmdReferenceNotSupportedByHardware)\r
+ CASPAR_LOG(info) << print() << L" Reference signal: not supported by hardware.";\r
+ else if (reference_status & bmdReferenceLocked)\r
+ CASPAR_LOG(info) << print() << L" Reference signal: locked.";\r
+ else\r
+ CASPAR_LOG(info) << print() << L" Reference signal: Unhandled enum bitfield: " << reference_status;\r
+ }\r
}\r
\r
boost::unique_future<bool> send(const safe_ptr<core::read_frame>& frame)\r