r268@gwythaint (orig r808): fugalh | 2006-08-12 16:31:45 -0600

r269@gwythaint (orig r809):  fugalh | 2006-08-12 16:33:00 -0600
  r321@gandalf:  fugalh | 2006-08-12 15:48:28 -0600
  Behold serialized undo.
 
 r270@gwythaint (orig r810):  fugalh | 2006-08-12 16:33:10 -0600
  r322@gandalf:  fugalh | 2006-08-12 15:49:05 -0600
  A few ardev and ardbg enhancements.
 
 r271@gwythaint (orig r811):  fugalh | 2006-08-12 16:33:20 -0600
  r329@gandalf:  fugalh | 2006-08-12 15:54:49 -0600
  Cleaning up some printf debugging
 
 r272@gwythaint (orig r812):  fugalh | 2006-08-12 16:33:38 -0600
 
 r273@gwythaint (orig r813):  fugalh | 2006-08-12 16:33:48 -0600
  r338@gandalf:  fugalh | 2006-08-12 16:30:19 -0600
  Oops, forgot one
 
 r274@gwythaint (orig r814):  fugalh | 2006-08-12 17:19:56 -0600
 Remove -x from ardbg, fix bug in memento command factory


git-svn-id: svn://localhost/ardour2/trunk@815 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Hans Fugal 2006-08-12 23:20:11 +00:00
commit b13dc9884e
4 changed files with 27 additions and 3 deletions

View file

@ -1,4 +1,4 @@
#!/bin/sh -x
#!/bin/sh
dir=`dirname "$0"`
source $dir/ardev_common.sh
exec gdb $dir/ardour.bin $*

View file

@ -1486,7 +1486,6 @@ ARDOUR_UI::restore_state (string name)
name = session->name();
}
session->restore_state (name);
session->restore_history (name);
}
}

View file

@ -834,3 +834,14 @@ Locations::num_range_markers () const
}
return cnt;
}
Location *
Locations::get_location_by_id(PBD::ID id)
{
LocationList::iterator it;
for (it = locations.begin(); it != locations.end(); it++)
if (id == (*it)->id())
return *it;
return 0;
}

View file

@ -24,6 +24,7 @@ Command *Session::memento_command_factory(XMLNode *n)
{
PBD::ID id;
XMLNode *before = 0, *after = 0;
XMLNode *child;
/* get id */
id = PBD::ID(n->property("obj_id")->value());
@ -33,10 +34,23 @@ Command *Session::memento_command_factory(XMLNode *n)
{
before = new XMLNode(*n->children().front());
after = new XMLNode(*n->children().back());
child = before;
} else if (n->name() == "MementoUndoCommand")
{
before = new XMLNode(*n->children().front());
child = before;
}
else if (n->name() == "MementoRedoCommand")
{
after = new XMLNode(*n->children().front());
child = after;
}
if (!child)
{
error << _("Tried to reconstitute a MementoCommand with no contents, failing. id=") << id.to_s() << endmsg;
return 0;
}
/* create command */
@ -59,7 +73,7 @@ Command *Session::memento_command_factory(XMLNode *n)
return new MementoCommand<TempoMap>(*_tempo_map, before, after);
else if (obj_T == "Playlist" || obj_T == "AudioPlaylist")
{
if (Playlist *pl = playlist_by_name(before->property("name")->value()))
if (Playlist *pl = playlist_by_name(child->property("name")->value()))
return new MementoCommand<Playlist>(*pl, before, after);
}
else if (obj_T == "Route") // inlcudes AudioTrack