From 570ebff7eb9142da03614dbd61cc2ea75a2d9cf5 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 16 Feb 2015 16:27:19 -0500 Subject: [PATCH] after trim, prevent fade in/out from overlapping. --- libs/ardour/audioregion.cc | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/libs/ardour/audioregion.cc b/libs/ardour/audioregion.cc index c0d8dfd9e5..4bc8f2ccbb 100644 --- a/libs/ardour/audioregion.cc +++ b/libs/ardour/audioregion.cc @@ -37,16 +37,17 @@ #include "evoral/Curve.hpp" +#include "ardour/audiofilesource.h" #include "ardour/audioregion.h" -#include "ardour/session.h" #include "ardour/dB.h" #include "ardour/debug.h" #include "ardour/playlist.h" -#include "ardour/audiofilesource.h" +#include "ardour/profile.h" +#include "ardour/progress.h" #include "ardour/region_factory.h" #include "ardour/runtime_functions.h" +#include "ardour/session.h" #include "ardour/transient_detector.h" -#include "ardour/progress.h" #include "ardour/sndfilesource.h" #ifdef HAVE_COREAUDIO @@ -1299,6 +1300,13 @@ AudioRegion::recompute_at_end () send_change (PropertyChange (Properties::fade_in)); } + if (Profile->get_trx()) { + /* limit fade out so that it does not overlap fade in */ + if (_fade_in->back()->when >= _length - _fade_out->back()->when) { + _fade_out->extend_to (_length - _fade_in->back()->when - 1); + } + } + resume_property_changes(); } @@ -1324,6 +1332,13 @@ AudioRegion::recompute_at_start () send_change (PropertyChange (Properties::fade_out)); } + if (Profile->get_trx()) { + /* limit fade in so that it does not overlap fade out */ + if (_fade_in->back()->when >= _length - _fade_out->back()->when) { + _fade_in->extend_to (_length - _fade_out->back()->when - 1); + } + } + resume_property_changes(); }