diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2010-04-28 01:29:06 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2010-04-28 01:29:06 +0000 |
commit | 6dac4da98344ed8ce609a4e7d567ef2f9fbb9b31 (patch) | |
tree | 2c21aa7d3af2a0c56edab1ccfd5b6d42ce649f76 /libs/ardour/ardour/mute_master.h | |
parent | f0db054a07ecc9d49fede8fcc9175a85c635369f (diff) |
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
Diffstat (limited to 'libs/ardour/ardour/mute_master.h')
-rw-r--r-- | libs/ardour/ardour/mute_master.h | 13 |
1 files changed, 9 insertions, 4 deletions
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<void> 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 |