summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/mute_master.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-04-28 01:29:06 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-04-28 01:29:06 +0000
commit6dac4da98344ed8ce609a4e7d567ef2f9fbb9b31 (patch)
tree2c21aa7d3af2a0c56edab1ccfd5b6d42ce649f76 /libs/ardour/ardour/mute_master.h
parentf0db054a07ecc9d49fede8fcc9175a85c635369f (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.h13
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