summaryrefslogtreecommitdiff
path: root/libs/ardour/session_command.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-03-02 19:12:01 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-03-02 19:12:01 +0000
commit3a85e71031bc26d67d66db985da2159415f84fdb (patch)
tree1c7fbe946684325bcd8980e713e0268844032bae /libs/ardour/session_command.cc
parent17088ee3ea5af1e6174b098bb5bcfdaec6ebf9b0 (diff)
(1) stop using mangled names in history state, use demangled ones instead (2) fix region split so that the generated regions have the right start points in the source(s)
git-svn-id: svn://localhost/ardour2/branches/3.0@6721 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/session_command.cc')
-rw-r--r--libs/ardour/session_command.cc21
1 files changed, 11 insertions, 10 deletions
diff --git a/libs/ardour/session_command.cc b/libs/ardour/session_command.cc
index 3ff68a06fb..17ffa1e26d 100644
--- a/libs/ardour/session_command.cc
+++ b/libs/ardour/session_command.cc
@@ -86,45 +86,46 @@ Session::memento_command_factory(XMLNode *n)
/* create command */
string obj_T = n->property ("type-name")->value();
- if (obj_T == typeid (AudioRegion).name() || obj_T == typeid (MidiRegion).name() || obj_T == typeid (Region).name()) {
+ if (obj_T == "ARDOUR::AudioRegion" || obj_T == "ARDOUR::MidiRegion" || obj_T == "ARDOUR::Region") {
boost::shared_ptr<Region> r = RegionFactory::region_by_id (id);
if (r) {
return new MementoCommand<Region>(*r, before, after);
}
- } else if (obj_T == typeid (AudioSource).name() || obj_T == typeid (MidiSource).name()) {
+ } else if (obj_T == "ARDOUR::AudioSource" || obj_T == "ARDOUR::MidiSource") {
if (sources.count(id))
return new MementoCommand<Source>(*sources[id], before, after);
- } else if (obj_T == typeid (Location).name()) {
+ } else if (obj_T == "ARDOUR::Location") {
Location* loc = _locations.get_location_by_id(id);
if (loc) {
return new MementoCommand<Location>(*loc, before, after);
}
- } else if (obj_T == typeid (Locations).name()) {
+ } else if (obj_T == "ARDOUR::Locations") {
return new MementoCommand<Locations>(_locations, before, after);
- } else if (obj_T == typeid (TempoMap).name()) {
+ } else if (obj_T == "ARDOUR::TempoMap") {
return new MementoCommand<TempoMap>(*_tempo_map, before, after);
- } else if (obj_T == typeid (Playlist).name() || obj_T == typeid (AudioPlaylist).name() || obj_T == typeid (MidiPlaylist).name()) {
+ } else if (obj_T == "ARDOUR::Playlist" || obj_T == "ARDOUR::AudioPlaylist" || obj_T == "ARDOUR::MidiPlaylist") {
if (boost::shared_ptr<Playlist> pl = playlists->by_name(child->property("name")->value())) {
return new MementoCommand<Playlist>(*(pl.get()), before, after);
}
- } else if (obj_T == typeid (Route).name() || obj_T == typeid (AudioTrack).name() || obj_T == typeid(MidiTrack).name()) {
+ } else if (obj_T == "ARDOUR::Route" || obj_T == "ARDOUR::AudioTrack" || obj_T == "ARDOUR::MidiTrack") {
if (boost::shared_ptr<Route> r = route_by_id(id)) {
return new MementoCommand<Route>(*r, before, after);
} else {
error << string_compose (X_("Route %1 not found in session"), id) << endmsg;
}
- } else if (obj_T == typeid (Evoral::Curve).name() || obj_T == typeid (AutomationList).name()) {
+ } else if (obj_T == "Evoral::Curve" || obj_T == "ARDOUR::AutomationList") {
std::map<PBD::ID, AutomationList*>::iterator i = automation_lists.find(id);
if (i != automation_lists.end()) {
return new MementoCommand<AutomationList>(*i->second, before, after);
}
+ cerr << "Alist not found\n";
} else if (registry.count(id)) { // For Editor and AutomationLine which are off-limits herea
return new MementoCommand<PBD::StatefulDestructible>(*registry[id], before, after);
}
@@ -141,13 +142,13 @@ Session::stateful_diff_command_factory (XMLNode* n)
PBD::ID const id (n->property("obj-id")->value ());
string const obj_T = n->property ("type-name")->value ();
- if ((obj_T == typeid (AudioRegion).name() || obj_T == typeid (MidiRegion).name())) {
+ if ((obj_T == "ARDOUR::AudioRegion" || obj_T == "ARDOUR::MidiRegion")) {
boost::shared_ptr<Region> r = RegionFactory::region_by_id (id);
if (r) {
return new StatefulDiffCommand (r, *n);
}
- } else if (obj_T == typeid (AudioPlaylist).name() || obj_T == typeid (MidiPlaylist).name()) {
+ } else if (obj_T == "ARDOUR::AudioPlaylist" || obj_T == "ARDOUR::MidiPlaylist") {
boost::shared_ptr<Playlist> p = playlists->by_id (id);
if (p) {
return new StatefulDiffCommand (p, *n);