From 6dac4da98344ed8ce609a4e7d567ef2f9fbb9b31 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Wed, 28 Apr 2010 01:29:06 +0000 Subject: more solo/mute architecture work. NOTE: changes to mute points are ignored right now git-svn-id: svn://localhost/ardour2/branches/3.0@7009 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/ardour/delivery.h | 7 ------- libs/ardour/ardour/mute_master.h | 13 +++++++++---- libs/ardour/ardour/route.h | 3 +-- 3 files changed, 10 insertions(+), 13 deletions(-) (limited to 'libs/ardour/ardour') diff --git a/libs/ardour/ardour/delivery.h b/libs/ardour/ardour/delivery.h index 1efa5436ee..bb07b9ab25 100644 --- a/libs/ardour/ardour/delivery.h +++ b/libs/ardour/ardour/delivery.h @@ -75,10 +75,6 @@ public: void no_outs_cuz_we_no_monitor(bool); - void set_solo_level (int32_t sl) { _solo_level = sl; } - void set_solo_isolated (bool yn) { _solo_isolated = yn; } - void set_solo_ignored (bool yn) { _solo_ignored = yn; } - void cycle_start (nframes_t); void increment_output_offset (nframes_t); void transport_stopped (sframes_t frame); @@ -113,9 +109,6 @@ public: gain_t _current_gain; nframes_t _output_offset; bool _no_outs_cuz_we_no_monitor; - uint32_t _solo_level; - bool _solo_isolated; - bool _solo_ignored; boost::shared_ptr _mute_master; bool no_panner_reset; boost::shared_ptr _panner; diff --git a/libs/ardour/ardour/mute_master.h b/libs/ardour/ardour/mute_master.h index 610ca20dff..4ddb7075da 100644 --- a/libs/ardour/ardour/mute_master.h +++ b/libs/ardour/ardour/mute_master.h @@ -48,6 +48,8 @@ class MuteMaster : public PBD::Stateful bool muted_by_others() const { return _muted_by_others && (_mute_point != MutePoint (0)); } bool muted() const { return (_self_muted || (_muted_by_others > 0)) && (_mute_point != MutePoint (0)); } bool muted_at (MutePoint mp) const { return (_self_muted || (_muted_by_others > 0)) && (_mute_point & mp); } + bool self_muted_at (MutePoint mp) const { return _self_muted && (_mute_point & mp); } + bool muted_by_others_at (MutePoint mp) const { return (_muted_by_others > 0) && (_mute_point & mp); } bool muted_pre_fader() const { return muted_at (PreFader); } bool muted_post_fader() const { return muted_at (PostFader); } @@ -58,8 +60,8 @@ class MuteMaster : public PBD::Stateful void set_self_muted (bool yn) { _self_muted = yn; } void mod_muted_by_others (int delta); + void clear_muted_by_others (); - void clear_mute (); void mute_at (MutePoint); void unmute_at (MutePoint); @@ -67,15 +69,18 @@ class MuteMaster : public PBD::Stateful void set_mute_points (MutePoint); MutePoint mute_points() const { return _mute_point; } + void set_solo_level (int32_t); + PBD::Signal0 MutePointChanged; XMLNode& get_state(); int set_state(const XMLNode&, int version); private: - MutePoint _mute_point; - bool _self_muted; - uint32_t _muted_by_others; + volatile MutePoint _mute_point; + volatile bool _self_muted; + volatile uint32_t _muted_by_others; + volatile int32_t _solo_level; }; } // namespace ARDOUR diff --git a/libs/ardour/ardour/route.h b/libs/ardour/ardour/route.h index bdb041c7dd..5efb9c111b 100644 --- a/libs/ardour/ardour/route.h +++ b/libs/ardour/ardour/route.h @@ -476,8 +476,7 @@ class Route : public SessionObject, public AutomatableControls, public RouteGrou void placement_range (Placement p, ProcessorList::iterator& start, ProcessorList::iterator& end); void set_self_solo (bool yn); - void set_delivery_solo (); - void markup_solo_ignore (); + void set_mute_master_solo (); }; } // namespace ARDOUR -- cgit v1.2.3