diff options
author | Robin Gareus <robin@gareus.org> | 2019-03-23 16:14:15 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2019-03-23 16:15:31 +0100 |
commit | 1d5e5b352390282a048ee7bf97349509f25d0014 (patch) | |
tree | 7db61a4e00cf349e7d847a942db3456487e23af8 /libs/ardour/monitor_processor.cc | |
parent | 96e991d08f94a7da04a9bb6fe2eb55968013759d (diff) |
Clean up MonitorProcessorControls
As opposed to regular AutomationControls these PBD:::Controllables
are not SessionObjects and don't emit a signal when the session
goes away.
Diffstat (limited to 'libs/ardour/monitor_processor.cc')
-rw-r--r-- | libs/ardour/monitor_processor.cc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/libs/ardour/monitor_processor.cc b/libs/ardour/monitor_processor.cc index 56d8f879d6..b4e996a52e 100644 --- a/libs/ardour/monitor_processor.cc +++ b/libs/ardour/monitor_processor.cc @@ -78,6 +78,13 @@ MonitorProcessor::MonitorProcessor (Session& s) MonitorProcessor::~MonitorProcessor () { allocate_channels (0); + + /* special case for MPControl */ + _dim_all_control->DropReferences (); /* EMIT SIGNAL */ + _cut_all_control->DropReferences (); /* EMIT SIGNAL */ + _mono_control->DropReferences (); /* EMIT SIGNAL */ + _dim_level_control->DropReferences (); /* EMIT SIGNAL */ + _solo_boost_level_control->DropReferences (); /* EMIT SIGNAL */ } void @@ -542,5 +549,13 @@ MonitorProcessor::ChannelRecord::ChannelRecord (uint32_t chn) , polarity (*polarity_ptr) , soloed (*soloed_ptr) { +} +MonitorProcessor::ChannelRecord::~ChannelRecord () +{ + /* special case for MPControl */ + cut_control->DropReferences(); /* EMIT SIGNAL */ + dim_control->DropReferences(); /* EMIT SIGNAL */ + polarity_control->DropReferences(); /* EMIT SIGNAL */ + soloed_control->DropReferences(); /* EMIT SIGNAL */ } |