]> git.sesse.net Git - casparcg/blobdiff - core/producer/layer.cpp
2.0.2: Improved INFO.
[casparcg] / core / producer / layer.cpp
index 14ee7045753fec6e2f7ec6612998e3e3691875b3..7548ab9902c2c04d8ab74ee1d595c9f6864118ca 100644 (file)
@@ -25,6 +25,8 @@
 #include "frame_producer.h"\r
 #include "frame/basic_frame.h"\r
 \r
+#include <boost/property_tree/ptree.hpp>\r
+\r
 namespace caspar { namespace core {\r
        \r
 struct layer::implementation\r
@@ -144,6 +146,16 @@ public:
        {\r
                return background_ == core::frame_producer::empty() && foreground_ == core::frame_producer::empty();\r
        }\r
+\r
+       boost::property_tree::wptree info() const\r
+       {\r
+               boost::property_tree::wptree info;\r
+               info.add_child(L"layer.foreground", foreground_->info());\r
+               info.add_child(L"layer.background", foreground_->info());\r
+               info.add(L"layer.status",     is_paused_ ? L"paused" : (foreground_ == frame_producer::empty() ? L"stopped" : L"playing"));\r
+               info.add(L"layer.auto_delta", auto_play_delta_);\r
+               return info;\r
+       }\r
 };\r
 \r
 layer::layer() : impl_(new implementation()){}\r
@@ -176,4 +188,5 @@ safe_ptr<frame_producer> layer::foreground() const { return impl_->foreground_;}
 safe_ptr<frame_producer> layer::background() const { return impl_->background_;}\r
 bool layer::empty() const {return impl_->empty();}\r
 boost::unique_future<std::wstring> layer::call(bool foreground, const std::wstring& param){return impl_->call(foreground, param);}\r
+boost::property_tree::wptree layer::info() const{return impl_->info();}\r
 }}
\ No newline at end of file