]> git.sesse.net Git - casparcg/commitdiff
Add monitor_subject to audio_mixer_
authorTK3 <tomkaltz@gmail.com>
Wed, 6 Nov 2013 18:21:02 +0000 (13:21 -0500)
committerTK3 <tomkaltz@gmail.com>
Wed, 6 Nov 2013 18:21:02 +0000 (13:21 -0500)
core/mixer/audio/audio_mixer.cpp
core/mixer/audio/audio_mixer.h
core/mixer/mixer.cpp

index 803e218b8d8d0c07292c033ed1d146905bd24902..1c90878bf04aed6f509f2dc43530bfed55f9e266 100644 (file)
@@ -25,6 +25,7 @@
 \r
 #include <core/mixer/write_frame.h>\r
 #include <core/producer/frame/frame_transform.h>\r
+#include <core/monitor/monitor.h>\r
 #include <common/diagnostics/graph.h>\r
 #include "audio_util.h"\r
 \r
@@ -76,6 +77,7 @@ struct audio_mixer::implementation
        channel_layout                                          channel_layout_;\r
        float                                                           master_volume_;\r
        float                                                           previous_master_volume_;\r
+       safe_ptr<monitor::subject>                      monitor_subject_;\r
        \r
 public:\r
        implementation(const safe_ptr<diagnostics::graph>& graph)\r
@@ -84,6 +86,7 @@ public:
                , channel_layout_(channel_layout::stereo())\r
                , master_volume_(1.0f)\r
                , previous_master_volume_(master_volume_)\r
+               , monitor_subject_(make_safe<monitor::subject>("/audio"))\r
        {\r
                graph_->set_color("volume", diagnostics::color(1.0f, 0.8f, 0.1f));\r
                transform_stack_.push(core::frame_transform());\r
@@ -272,5 +275,6 @@ void audio_mixer::end(){impl_->end();}
 float audio_mixer::get_master_volume() const { return impl_->get_master_volume(); }\r
 void audio_mixer::set_master_volume(float volume) { impl_->set_master_volume(volume); }\r
 audio_buffer audio_mixer::operator()(const video_format_desc& format_desc, const channel_layout& layout){return impl_->mix(format_desc, layout);}\r
+monitor::subject& audio_mixer::monitor_output(){return *impl_->monitor_subject_;}\r
 \r
 }}
\ No newline at end of file
index 90cdafcb9405e1b6144f610845aa282c8a5534da..4ac7749d4a729281a6d1634402ead58621030f1b 100644 (file)
@@ -23,6 +23,8 @@
 \r
 #include <common/memory/safe_ptr.h>\r
 \r
+#include "../../monitor/monitor.h"\r
+\r
 #include <core/producer/frame/frame_visitor.h>\r
 \r
 #include <boost/noncopyable.hpp>\r
@@ -59,6 +61,8 @@ public:
        void set_master_volume(float volume);\r
 \r
        audio_buffer operator()(const video_format_desc& format_desc, const channel_layout& layout);\r
+\r
+       monitor::subject& monitor_output();\r
        \r
 private:\r
        struct implementation;\r
index e307c1e90db8b71717d97813dec48d7419fe2ac6..7def6bf3df310cb43c248bdd93f33d6aa1d53e9d 100644 (file)
@@ -97,6 +97,8 @@ public:
        {                       \r
                graph_->set_color("mix-time", diagnostics::color(1.0f, 0.0f, 0.9f, 0.8));\r
                current_mix_time_ = 0;\r
+\r
+               audio_mixer_.monitor_output().attach_parent(monitor_subject_);\r
        }\r
        \r
        void send(const std::pair<std::map<int, safe_ptr<core::basic_frame>>, std::shared_ptr<void>>& packet)\r