summaryrefslogtreecommitdiff
path: root/gtk2_ardour/audio_region_view.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/audio_region_view.cc')
-rw-r--r--gtk2_ardour/audio_region_view.cc11
1 files changed, 7 insertions, 4 deletions
diff --git a/gtk2_ardour/audio_region_view.cc b/gtk2_ardour/audio_region_view.cc
index feb8f4fd0b..bdea3d39a2 100644
--- a/gtk2_ardour/audio_region_view.cc
+++ b/gtk2_ardour/audio_region_view.cc
@@ -30,6 +30,7 @@
#include <ardour/audioregion.h>
#include <ardour/audiosource.h>
#include <ardour/audio_diskstream.h>
+#include <pbd/memento_command.h>
#include "streamview.h"
#include "audio_region_view.h"
@@ -898,18 +899,20 @@ AudioRegionView::add_gain_point_event (ArdourCanvas::Item *item, GdkEvent *ev)
gain_line->view_to_model_y (y);
trackview.session().begin_reversible_command (_("add gain control point"));
- trackview.session().add_undo (audio_region().envelope().get_memento());
+ XMLNode &before = audio_region().envelope().get_state();
if (!audio_region().envelope_active()) {
- trackview.session().add_undo( bind( mem_fun(audio_region(), &AudioRegion::set_envelope_active), false) );
+ XMLNode &before = audio_region().get_state();
audio_region().set_envelope_active(true);
- trackview.session().add_redo( bind( mem_fun(audio_region(), &AudioRegion::set_envelope_active), true) );
+ XMLNode &after = audio_region().get_state();
+ trackview.session().add_command (new MementoCommand<AudioRegion>(audio_region(), before, after));
}
audio_region().envelope().add (fx, y);
- trackview.session().add_redo_no_execute (audio_region().envelope().get_memento());
+ XMLNode &after = audio_region().envelope().get_state();
+ trackview.session().add_command (new MementoCommand<Curve>(audio_region().envelope(), before, after));
trackview.session().commit_reversible_command ();
}