diff options
author | Hans Fugal <hans@fugal.net> | 2006-07-29 03:17:11 +0000 |
---|---|---|
committer | Hans Fugal <hans@fugal.net> | 2006-07-29 03:17:11 +0000 |
commit | 1f1c4981de73b13d0b7617d8ebe89d9f22dddec3 (patch) | |
tree | 90ab3942960de1af673d8d2b4423f0b09dd839b4 /gtk2_ardour/editor_mouse.cc | |
parent | 277b771a978b10580a46e19f19ae0cf2d8819f46 (diff) |
Compiles, but doesn't link. The link errors are mostly expected and are
tomorrow's task.
git-svn-id: svn://localhost/ardour2/branches/undo@719 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_mouse.cc')
-rw-r--r-- | gtk2_ardour/editor_mouse.cc | 118 |
1 files changed, 54 insertions, 64 deletions
diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc index 4b17c9e6b0..c7199984a8 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -27,6 +27,7 @@ #include <pbd/error.h> #include <gtkmm2ext/utils.h> +#include <pbd/memento_command.h> #include "ardour_ui.h" #include "editor.h" @@ -1812,15 +1813,14 @@ Editor::fade_in_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* even } begin_reversible_command (_("change fade in length")); - XMLNode &before, &after; - before = arv->region.get_state(); + XMLNode &before = arv->region.get_state(); arv->region.set_fade_in_length (fade_length); - after = arv->region.get_state(); - session->add_command(MementoCommand<ARDOUR::AudioRegion>(arv->region, - before, - after)); + XMLNode &after = arv->region.get_state(); + session->add_command(new MementoCommand<ARDOUR::AudioRegion>(arv->region, + before, + after)); commit_reversible_command (); fade_in_drag_motion_callback (item, event); } @@ -1910,13 +1910,12 @@ Editor::fade_out_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* eve } begin_reversible_command (_("change fade out length")); - XMLNode &before, &after; - before = arv->region.get_state(); + XMLNode &before = arv->region.get_state(); arv->region.set_fade_out_length (fade_length); - after = arv->region.get_state(); - session->add_command(MementoCommand<ARDOUR::AudioRegion>(arv->region, before, after)); + XMLNode &after = arv->region.get_state(); + session->add_command(new MementoCommand<ARDOUR::AudioRegion>(arv->region, before, after)); commit_reversible_command (); fade_out_drag_motion_callback (item, event); @@ -2150,8 +2149,7 @@ Editor::marker_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event begin_reversible_command ( _("move marker") ); - XMLNode &before, &after; - before = session->locations()->get_state(); + XMLNode &before = session->locations()->get_state(); Location * location = find_location_from_marker (marker, is_start); @@ -2159,8 +2157,8 @@ Editor::marker_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event location->set (drag_info.copied_location->start(), drag_info.copied_location->end()); } - after = session->locations()->get_state(); - session->add_command(MementoCommand<Locations>(session->locations(), before, after)); + XMLNode &after = session->locations()->get_state(); + session->add_command(new MementoCommand<Locations>(*(session->locations()), before, after)); commit_reversible_command (); marker_drag_line->hide(); @@ -2272,14 +2270,12 @@ Editor::meter_marker_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* TempoMap& map (session->tempo_map()); map.bbt_time (drag_info.last_pointer_frame, when); - XMLNode &before, &after; - if (drag_info.copy == true) { begin_reversible_command (_("copy meter mark")); - before = map.get_state(); + XMLNode &before = map.get_state(); map.add_meter (marker->meter(), when); - after = map.get_state(); - session->add_command(MementoCommand<TempoMap>(map, before, after)); + XMLNode &after = map.get_state(); + session->add_command(new MementoCommand<TempoMap>(map, before, after)); commit_reversible_command (); // delete the dummy marker we used for visual representation of copying. @@ -2287,10 +2283,10 @@ Editor::meter_marker_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* delete marker; } else { begin_reversible_command (_("move meter mark")); - before = map.get_state(); + XMLNode &before = map.get_state(); map.move_meter (marker->meter(), when); - after = map.get_state(); - session->add_command(MementoCommand<TempoMap>(map, before, after)); + XMLNode &after = map.get_state(); + session->add_command(new MementoCommand<TempoMap>(map, before, after)); commit_reversible_command (); } } @@ -2406,14 +2402,12 @@ Editor::tempo_marker_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* TempoMap& map (session->tempo_map()); map.bbt_time (drag_info.last_pointer_frame, when); - XMLNode &before, &after; - if (drag_info.copy == true) { begin_reversible_command (_("copy tempo mark")); - before = map.get_state(); + XMLNode &before = map.get_state(); map.add_tempo (marker->tempo(), when); - after = map.get_state(); - session->add_command (MementoCommand<TempoMap>(map, before, after)); + XMLNode &after = map.get_state(); + session->add_command (new MementoCommand<TempoMap>(map, before, after)); commit_reversible_command (); // delete the dummy marker we used for visual representation of copying. @@ -2421,10 +2415,10 @@ Editor::tempo_marker_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* delete marker; } else { begin_reversible_command (_("move tempo mark")); - before = map.get_state(); + XMLNode &before = map.get_state(); map.move_tempo (marker->tempo(), when); - after = map.get_state(); - session->add_command (MementoCommand<TempoMap>(map, before, after)); + XMLNode &after = map.get_state(); + session->add_command (new MementoCommand<TempoMap>(map, before, after)); commit_reversible_command (); } } @@ -2787,7 +2781,7 @@ Editor::region_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event) insert_result = affected_playlists.insert (to_playlist); if (insert_result.second) { - session->add_command (MementoUndoCommand<Playlist>(*to_playlist, to_playlist->get_state())); + session->add_command (new MementoUndoCommand<Playlist>(*to_playlist, to_playlist->get_state())); } latest_regionview = 0; @@ -3225,7 +3219,7 @@ Editor::region_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event) insert_result = motion_frozen_playlists.insert (pl); if (insert_result.second) { pl->freeze(); - session->add_command(MementoUndoCommand<Playlist>(*pl, pl->get_state())); + session->add_command(new MementoUndoCommand<Playlist>(*pl, pl->get_state())); } } } @@ -3353,7 +3347,7 @@ Editor::region_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event insert_result = motion_frozen_playlists.insert(to_playlist); if (insert_result.second) { to_playlist->freeze(); - session->add_command(MementoUndoCommand<Playlist>(*to_playlist, to_playlist->get_state())); + session->add_command(new MementoUndoCommand<Playlist>(*to_playlist, to_playlist->get_state())); } } @@ -3435,7 +3429,7 @@ Editor::region_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event out: for (set<Playlist*>::iterator p = motion_frozen_playlists.begin(); p != motion_frozen_playlists.end(); ++p) { (*p)->thaw (); - session->add_command (MementoRedoCommand<Playlist>(*(*p), (*p)->get_state())); + session->add_command (new MementoRedoCommand<Playlist>(*(*p), (*p)->get_state())); } motion_frozen_playlists.clear (); @@ -3630,10 +3624,10 @@ Editor::start_selection_grab (ArdourCanvas::Item* item, GdkEvent* event) Playlist* playlist = clicked_trackview->playlist(); - before = playlist->get_state(); + before = &(playlist->get_state()); clicked_trackview->playlist()->add_region (*region, selection->time[clicked_selection].start); - after = playlist->get_state(); - session->add_command(MementoCommand<Playlist>(*playlist, before, after)); + XMLNode &after = playlist->get_state(); + session->add_command(new MementoCommand<Playlist>(*playlist, *before, after)); commit_reversible_command (); @@ -3997,7 +3991,7 @@ Editor::trim_motion_callback (ArdourCanvas::Item* item, GdkEvent* event) Playlist * pl = (*i)->region.playlist(); insert_result = motion_frozen_playlists.insert (pl); if (insert_result.second) { - session->add_command(MementoUndoCommand<Playlist>(*pl, pl->get_state())); + session->add_command(new MementoUndoCommand<Playlist>(*pl, pl->get_state())); } } } @@ -4187,7 +4181,7 @@ Editor::trim_finished_callback (ArdourCanvas::Item* item, GdkEvent* event) for (set<Playlist*>::iterator p = motion_frozen_playlists.begin(); p != motion_frozen_playlists.end(); ++p) { //(*p)->thaw (); - session->add_command (MementoRedoCommand<Playlist>(*(*p), (*p)->get_state())); + session->add_command (new MementoRedoCommand<Playlist>(*(*p), (*p)->get_state())); } motion_frozen_playlists.clear (); @@ -4221,24 +4215,22 @@ Editor::point_trim (GdkEvent* event) i != selection->audio_regions.by_layer().end(); ++i) { if (!(*i)->region.locked()) { - XMLNode &before, &after; Playlist *pl = (*i)->region.playlist(); - before = pl->get_state(); + XMLNode &before = pl->get_state(); (*i)->region.trim_front (new_bound, this); - after = pl->get_state(); - session->add_command(MementoCommand<Playlist>(*pl, before, after)); + XMLNode &after = pl->get_state(); + session->add_command(new MementoCommand<Playlist>(*pl, before, after)); } } } else { if (!rv->region.locked()) { - XMLNode &before, &after; Playlist *pl = rv->region.playlist(); - before = pl->get_state(); + XMLNode &before = pl->get_state(); rv->region.trim_front (new_bound, this); - after = pl->get_state(); - session->add_command(MementoCommand<Playlist>(*pl, before, after)); + XMLNode &after = pl->get_state(); + session->add_command(new MementoCommand<Playlist>(*pl, before, after)); } } @@ -4254,24 +4246,22 @@ Editor::point_trim (GdkEvent* event) for (list<AudioRegionView*>::const_iterator i = selection->audio_regions.by_layer().begin(); i != selection->audio_regions.by_layer().end(); ++i) { if (!(*i)->region.locked()) { - XMLNode &before, &after; Playlist *pl = (*i)->region.playlist(); - before = pl->get_state(); + XMLNode &before = pl->get_state(); (*i)->region.trim_end (new_bound, this); - after = pl->get_state(); - session->add_command(MementoCommand<Playlist>(*pl, before, after)); + XMLNode &after = pl->get_state(); + session->add_command(new MementoCommand<Playlist>(*pl, before, after)); } } } else { if (!rv->region.locked()) { - XMLNode &before, &after; Playlist *pl = rv->region.playlist(); - before = pl->get_state(); + XMLNode &before = pl->get_state(); rv->region.trim_end (new_bound, this); - after = pl->get_state(); - session->add_command (MementoCommand<Playlist>(*pl, before, after)); + XMLNode &after = pl->get_state(); + session->add_command (new MementoCommand<Playlist>(*pl, before, after)); } } @@ -4294,7 +4284,7 @@ Editor::thaw_region_after_trim (AudioRegionView& rv) region.thaw (_("trimmed region")); XMLNode &after = region.playlist()->get_state(); - session->add_command (MementoRedoCommand<Playlist>(*(region.playlist()), after)); + session->add_command (new MementoRedoCommand<Playlist>(*(region.playlist()), after)); rv.unhide_envelope (); } @@ -4431,18 +4421,19 @@ Editor::end_range_markerbar_op (ArdourCanvas::Item* item, GdkEvent* event) switch (range_marker_op) { case CreateRangeMarker: + { begin_reversible_command (_("new range marker")); - XMLNode &before, &after; - before = session->locations()->get_state(); + XMLNode &before = session->locations()->get_state(); newloc = new Location(temp_location->start(), temp_location->end(), "unnamed", Location::IsRangeMarker); session->locations()->add (newloc, true); - after = session->locations()->get_state(); - session->add_command(MementoCommand<Locations>(session->locations(), before, after)); + XMLNode &after = session->locations()->get_state(); + session->add_command(new MementoCommand<Locations>(*(session->locations()), before, after)); commit_reversible_command (); range_bar_drag_rect->hide(); range_marker_drag_rect->hide(); break; + } case CreateTransportMarker: // popup menu to pick loop or punch @@ -4812,11 +4803,10 @@ Editor::mouse_brush_insert_region (AudioRegionView* rv, jack_nframes_t pos) Playlist* playlist = atv->playlist(); double speed = atv->get_diskstream()->speed(); - XMLNode &before, &after; - before = playlist->get_state(); + XMLNode &before = playlist->get_state(); playlist->add_region (*(new AudioRegion (rv->region)), (jack_nframes_t) (pos * speed)); - after = playlist->get_state(); - session->add_command(MementoCommand<Playlist>(*playlist, before, after)); + XMLNode &after = playlist->get_state(); + session->add_command(new MementoCommand<Playlist>(*playlist, before, after)); // playlist is frozen, so we have to update manually |