X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fmonitor_processor.h;h=d369cb9c282002b8330d02330260dea509bce53b;hb=cf52d6e4b40111eb04b244ec054055a4ec15dbe0;hp=39aaeca67faf82d5a1600f832b3c85048e2711ec;hpb=e85ff4dad26ef13b0351de0dfd92ce22022cd611;p=ardour.git diff --git a/libs/ardour/ardour/monitor_processor.h b/libs/ardour/ardour/monitor_processor.h index 39aaeca67f..d369cb9c28 100644 --- a/libs/ardour/ardour/monitor_processor.h +++ b/libs/ardour/ardour/monitor_processor.h @@ -46,19 +46,19 @@ public: MPControl (T initial, const std::string& name, PBD::Controllable::Flag flag, float lower = 0.0f, float upper = 1.0f) : PBD::Controllable (name, flag) - , _normal (initial) , _value (initial) , _lower (lower) , _upper (upper) + , _normal (initial) {} /* Controllable API */ - void set_value (double v) { + void set_value (double v, PBD::Controllable::GroupControlDisposition gcd) { T newval = (T) v; if (newval != _value) { _value = std::max (_lower, std::min (_upper, newval)); - Changed(); /* EMIT SIGNAL */ + Changed (true, gcd); /* EMIT SIGNAL */ } } @@ -84,7 +84,7 @@ public: MPControl& operator=(const T& v) { if (v != _value) { _value = std::max (_lower, std::min (_upper, v)); - Changed (); /* EMIT SIGNAL */ + Changed (true, PBD::Controllable::UseGroup); /* EMIT SIGNAL */ } return *this; } @@ -127,7 +127,7 @@ public: bool display_to_user() const; - void run (BufferSet& /*bufs*/, framepos_t /*start_frame*/, framepos_t /*end_frame*/, pframes_t /*nframes*/, bool /*result_required*/); + void run (BufferSet& /*bufs*/, framepos_t /*start_frame*/, framepos_t /*end_frame*/, double /*speed*/, pframes_t /*nframes*/, bool /*result_required*/); XMLNode& state (bool full); int set_state (const XMLNode&, int /* version */); @@ -154,6 +154,8 @@ public: bool dim_all () const; bool mono () const; + bool monitor_active () const { return _monitor_active; } + PBD::Signal0 Changed; boost::shared_ptr channel_cut_control (uint32_t) const; @@ -198,6 +200,8 @@ private: std::vector _channels; uint32_t solo_cnt; + bool _monitor_active; + /* pointers - created first, but managed by boost::shared_ptr<> */ @@ -224,6 +228,7 @@ private: MPControl& _solo_boost_level; void allocate_channels (uint32_t); + void update_monitor_state (); }; } /* namespace */