#include <common/forward.h>
#include <common/future_fwd.h>
#include <common/memory.h>
-#include <common/reactive.h>
-#include <core/video_format.h>
+#include <core/fwd.h>
+#include <core/monitor/monitor.h>
#include <boost/property_tree/ptree_fwd.hpp>
namespace caspar { namespace core {
-class mixer /* final */
+class mixer final
{
mixer(const mixer&);
mixer& operator=(const mixer&);
// Constructors
- explicit mixer(spl::shared_ptr<diagnostics::graph> graph, spl::shared_ptr<class image_mixer> image_mixer);
+ explicit mixer(int channel_index, spl::shared_ptr<caspar::diagnostics::graph> graph, spl::shared_ptr<image_mixer> image_mixer);
// Methods
- class const_frame operator()(std::map<int, class draw_frame> frames, const struct video_format_desc& format_desc);
-
- void set_blend_mode(int index, blend_mode value);
-
- void clear_blend_mode(int index);
-
- void clear_blend_modes();
+ const_frame operator()(std::map<int, draw_frame> frames, const video_format_desc& format_desc, const core::audio_channel_layout& channel_layout);
void set_master_volume(float volume);
+ float get_master_volume();
+ void set_straight_alpha_output(bool value);
+ bool get_straight_alpha_output();
- class mutable_frame create_frame(const void* tag, const struct pixel_format_desc& desc);
+ mutable_frame create_frame(const void* tag, const pixel_format_desc& desc, const core::audio_channel_layout& channel_layout);
// Properties
- boost::unique_future<boost::property_tree::wptree> info() const;
+ std::future<boost::property_tree::wptree> info() const;
+ std::future<boost::property_tree::wptree> delay_info() const;
+
+ monitor::subject& monitor_output();
private:
struct impl;