summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Chappell <jesse@essej.net>2006-10-17 21:45:20 +0000
committerJesse Chappell <jesse@essej.net>2006-10-17 21:45:20 +0000
commitbebd86d2084c535440ca5819ebe831f62aaff9e4 (patch)
tree695a1dbde83dd1f3908e4e455d44f9523759d746
parent33e626bad79152925fc6d42c82525406e663addd (diff)
fixed double application of gain on tracks/busses with bypassed panners
git-svn-id: svn://localhost/ardour2/trunk@990 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--libs/ardour/ardour/io.h4
-rw-r--r--libs/ardour/io.cc7
-rw-r--r--libs/ardour/route.cc3
3 files changed, 9 insertions, 5 deletions
diff --git a/libs/ardour/ardour/io.h b/libs/ardour/ardour/io.h
index e59ec6c23d..96ae75f298 100644
--- a/libs/ardour/ardour/io.h
+++ b/libs/ardour/ardour/io.h
@@ -273,7 +273,9 @@ public:
Connection* _output_connection;
bool no_panner_reset;
XMLNode* deferred_state;
- DataType _default_type;
+ DataType _default_type;
+ bool _ignore_gain_on_deliver;
+
virtual void set_deferred_state() {}
diff --git a/libs/ardour/io.cc b/libs/ardour/io.cc
index b6c3648cda..bcd3ee7940 100644
--- a/libs/ardour/io.cc
+++ b/libs/ardour/io.cc
@@ -125,7 +125,8 @@ IO::IO (Session& s, string name,
deferred_state = 0;
apply_gain_automation = false;
-
+ _ignore_gain_on_deliver = false;
+
_gain_automation_state = Off;
_gain_automation_style = Absolute;
@@ -431,7 +432,7 @@ IO::deliver_output_no_pan (vector<Sample *>& bufs, uint32_t nbufs, nframes_t nfr
gain_t dg;
gain_t old_gain = _gain;
- if (apply_gain_automation) {
+ if (apply_gain_automation || _ignore_gain_on_deliver) {
/* gain has already been applied by automation code. do nothing here except
speed quietning.
@@ -498,7 +499,7 @@ IO::deliver_output_no_pan (vector<Sample *>& bufs, uint32_t nbufs, nframes_t nfr
_gain = dg;
}
- if (apply_gain_automation) {
+ if (apply_gain_automation || _ignore_gain_on_deliver) {
_gain = old_gain;
}
}
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index 87493e5400..782cb1c69e 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -89,7 +89,8 @@ Route::init ()
_declickable = false;
_pending_declick = true;
_remote_control_id = 0;
-
+ _ignore_gain_on_deliver = true;
+
_edit_group = 0;
_mix_group = 0;