summaryrefslogtreecommitdiff
path: root/libs/ardour/monitor_processor.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2019-03-23 16:14:15 +0100
committerRobin Gareus <robin@gareus.org>2019-03-23 16:15:31 +0100
commit1d5e5b352390282a048ee7bf97349509f25d0014 (patch)
tree7db61a4e00cf349e7d847a942db3456487e23af8 /libs/ardour/monitor_processor.cc
parent96e991d08f94a7da04a9bb6fe2eb55968013759d (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.cc15
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 */
}