]> git.sesse.net Git - casparcg/commitdiff
Add monitor_subject to mixer.
authorTK3 <tomkaltz@gmail.com>
Wed, 6 Nov 2013 17:37:24 +0000 (12:37 -0500)
committerTK3 <tomkaltz@gmail.com>
Wed, 6 Nov 2013 17:37:24 +0000 (12:37 -0500)
core/mixer/mixer.cpp
core/mixer/mixer.h
core/video_channel.cpp

index 25a6a99f76f034ed98ab6633cac2285d40b6da7e..e307c1e90db8b71717d97813dec48d7419fe2ac6 100644 (file)
@@ -35,6 +35,7 @@
 #include <common/exception/exceptions.h>\r
 #include <common/gl/gl_check.h>\r
 #include <common/utility/tweener.h>\r
+#include <common/memory/safe_ptr.h>\r
 \r
 #include <core/mixer/audio/audio_util.h>\r
 #include <core/mixer/read_frame.h>\r
@@ -44,6 +45,8 @@
 #include <core/producer/frame/frame_transform.h>\r
 #include <core/producer/frame/pixel_format.h>\r
 \r
+#include <core/monitor/monitor.h>\r
+\r
 #include <core/video_format.h>\r
 \r
 #include <boost/foreach.hpp>\r
@@ -77,6 +80,7 @@ struct mixer::implementation : boost::noncopyable
        std::unordered_map<int, blend_mode> blend_modes_;\r
                        \r
        executor executor_;\r
+       safe_ptr<monitor::subject>               monitor_subject_;\r
 \r
 public:\r
        implementation(const safe_ptr<diagnostics::graph>& graph, const safe_ptr<mixer::target_t>& target, const video_format_desc& format_desc, const safe_ptr<ogl_device>& ogl, const channel_layout& audio_channel_layout) \r
@@ -89,6 +93,7 @@ public:
                , audio_mixer_(graph_)\r
                , image_mixer_(ogl)\r
                , executor_(L"mixer")\r
+               , monitor_subject_(make_safe<monitor::subject>("/mixer"))\r
        {                       \r
                graph_->set_color("mix-time", diagnostics::color(1.0f, 0.0f, 0.9f, 0.8));\r
                current_mix_time_ = 0;\r
@@ -270,4 +275,5 @@ void mixer::set_master_volume(float volume) { impl_->set_master_volume(volume);
 void mixer::set_video_format_desc(const video_format_desc& format_desc){impl_->set_video_format_desc(format_desc);}\r
 boost::unique_future<boost::property_tree::wptree> mixer::info() const{return impl_->info();}\r
 boost::unique_future<boost::property_tree::wptree> mixer::delay_info() const{return impl_->delay_info();}\r
+monitor::subject& mixer::monitor_output(){return *impl_->monitor_subject_;}\r
 }}
\ No newline at end of file
index 0b3aad03c66ba91464f313b55198706c3fe204b2..6c6ef1929b3978a6162f8b8e26ac74d99beb0227 100644 (file)
@@ -24,6 +24,7 @@
 #include "image/blend_modes.h"\r
 \r
 #include "../producer/frame/frame_factory.h"\r
+#include "../monitor/monitor.h"\r
 \r
 #include <common/memory/safe_ptr.h>\r
 #include <common/concurrency/target.h>\r
@@ -81,6 +82,8 @@ public:
 \r
        boost::unique_future<boost::property_tree::wptree> info() const;\r
        boost::unique_future<boost::property_tree::wptree> delay_info() const;\r
+\r
+       monitor::subject& monitor_output();\r
        \r
 private:\r
        struct implementation;\r
index 70e9ec3ef48018e7bdeaa118e382e4231ba25c68..43cdf740b8af5803477213d04042e026d110f6e2 100644 (file)
@@ -72,6 +72,7 @@ public:
                        stage_->spawn_token();\r
 \r
                stage_->monitor_output().attach_parent(monitor_subject_);\r
+               mixer_->monitor_output().attach_parent(monitor_subject_);\r
 \r
                CASPAR_LOG(info) << print() << " Successfully Initialized.";\r
        }\r