X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fregion_gain_line.cc;h=a31d31b76e057608ce48abeefdcb3efcbc39f136;hb=a8d62ce056fe260792d4e72bf8cf2fbff0e8b39b;hp=f263c17888885b6639168c28ac3443272cf354b2;hpb=1db9ce4c90b0a4b1f575e1517b200a506470f3c1;p=ardour.git diff --git a/gtk2_ardour/region_gain_line.cc b/gtk2_ardour/region_gain_line.cc index f263c17888..a31d31b76e 100644 --- a/gtk2_ardour/region_gain_line.cc +++ b/gtk2_ardour/region_gain_line.cc @@ -1,23 +1,28 @@ /* - Copyright (C) 2000-2007 Paul Davis - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -*/ - -#include "evoral/Curve.hpp" + * Copyright (C) 2005-2016 Paul Davis + * Copyright (C) 2005 Karsten Wiese + * Copyright (C) 2005 Taybin Rutkin + * Copyright (C) 2006-2014 David Robillard + * Copyright (C) 2008-2012 Carl Hetherington + * Copyright (C) 2014-2015 Nick Mainsbridge + * Copyright (C) 2014-2019 Robin Gareus + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "evoral/Curve.h" #include "pbd/memento_command.h" #include "pbd/stateful_diff_command.h" @@ -59,7 +64,7 @@ AudioRegionGainLine::start_drag_single (ControlPoint* cp, double x, float fracti { AutomationLine::start_drag_single (cp, x, fraction); - // XXX Stateful need to capture automation curve data + // XXX Stateful need to capture automation curve data if (!rv.audio_region()->envelope_active()) { trackview.session()->add_command(new MementoCommand(*(rv.audio_region().get()), &rv.audio_region()->get_state(), 0)); @@ -75,7 +80,7 @@ AudioRegionGainLine::remove_point (ControlPoint& cp) XMLNode &before = alist->get_state(); if (!rv.audio_region()->envelope_active()) { - rv.audio_region()->clear_changes (); + rv.audio_region()->clear_changes (); rv.audio_region()->set_envelope_active(true); trackview.session()->add_command(new StatefulDiffCommand (rv.audio_region())); } @@ -110,4 +115,12 @@ AudioRegionGainLine::region_changed (const PropertyChange& what_changed) if (what_changed.contains (interesting_stuff)) { _time_converter->set_origin_b (rv.region()->position()); } + + interesting_stuff.clear (); + interesting_stuff.add (ARDOUR::Properties::start); + interesting_stuff.add (ARDOUR::Properties::length); + + if (what_changed.contains (interesting_stuff)) { + reset (); + } }