projects
/
ardour.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' into cairocanvas
[ardour.git]
/
libs
/
ardour
/
send.cc
diff --git
a/libs/ardour/send.cc
b/libs/ardour/send.cc
index 107cf9862b1fb0c4c1aabc4a9ce68991bc9fd136..1664f42b354f0668755d2d977575a7a7aa50ec16 100644
(file)
--- a/
libs/ardour/send.cc
+++ b/
libs/ardour/send.cc
@@
-29,6
+29,7
@@
#include "ardour/buffer_set.h"
#include "ardour/meter.h"
#include "ardour/io.h"
#include "ardour/buffer_set.h"
#include "ardour/meter.h"
#include "ardour/io.h"
+#include "ardour/panner_shell.h"
#include "i18n.h"
#include "i18n.h"
@@
-80,12
+81,16
@@
Send::Send (Session& s, boost::shared_ptr<Pannable> p, boost::shared_ptr<MuteMas
_bitslot = 0;
}
_bitslot = 0;
}
- boost_debug_shared_ptr_mark_interesting (this, "send");
+
//
boost_debug_shared_ptr_mark_interesting (this, "send");
_amp.reset (new Amp (_session));
_meter.reset (new PeakMeter (_session, name()));
add_control (_amp->gain_control ());
_amp.reset (new Amp (_session));
_meter.reset (new PeakMeter (_session, name()));
add_control (_amp->gain_control ());
+
+ if (panner_shell()) {
+ panner_shell()->Changed.connect_same_thread (*this, boost::bind (&Send::panshell_changed, this));
+ }
}
Send::~Send ()
}
Send::~Send ()
@@
-270,7
+275,7
@@
Send::set_state_2X (const XMLNode& node, int /* version */)
}
bool
}
bool
-Send::can_support_io_configuration (const ChanCount& in, ChanCount& out)
const
+Send::can_support_io_configuration (const ChanCount& in, ChanCount& out)
{
/* sends have no impact at all on the channel configuration of the
streams passing through the route. so, out == in.
{
/* sends have no impact at all on the channel configuration of the
streams passing through the route. so, out == in.
@@
-284,7
+289,7
@@
Send::can_support_io_configuration (const ChanCount& in, ChanCount& out) const
bool
Send::configure_io (ChanCount in, ChanCount out)
{
bool
Send::configure_io (ChanCount in, ChanCount out)
{
- if (!_amp->configure_io (in, out)
|| !_meter->configure_io (in, out)
) {
+ if (!_amp->configure_io (in, out)) {
return false;
}
return false;
}
@@
-292,11
+297,21
@@
Send::configure_io (ChanCount in, ChanCount out)
return false;
}
return false;
}
+ if (!_meter->configure_io (ChanCount (DataType::AUDIO, pan_outs()), ChanCount (DataType::AUDIO, pan_outs()))) {
+ return false;
+ }
+
reset_panner ();
return true;
}
reset_panner ();
return true;
}
+void
+Send::panshell_changed ()
+{
+ _meter->configure_io (ChanCount (DataType::AUDIO, pan_outs()), ChanCount (DataType::AUDIO, pan_outs()));
+}
+
bool
Send::set_name (const string& new_name)
{
bool
Send::set_name (const string& new_name)
{