diff options
Diffstat (limited to 'libs/ardour/session_command.cc')
-rw-r--r-- | libs/ardour/session_command.cc | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/libs/ardour/session_command.cc b/libs/ardour/session_command.cc index 9a43de55de..1b8d6b3718 100644 --- a/libs/ardour/session_command.cc +++ b/libs/ardour/session_command.cc @@ -1,7 +1,29 @@ #include <ardour/session.h> #include <ardour/route.h> +#include <pbd/memento_command.h> +#include <ardour/diskstream.h> namespace ARDOUR { + +Command *Session::memento_command_factory(XMLNode *n) +{ + PBD::ID id; + XMLNode *before, *after; + //void *obj; + + /* get obj_id */ + + /* get before and/or after */ + + /* get an object by id by trial and error, and use it to construct an + * appropriate memento command */ + // e.g. + if (Diskstream *obj = diskstream_by_id(id)) + return new MementoCommand<Diskstream>(*obj, *before, *after); + // etc. + return 0; +} + // solo Session::GlobalSoloStateCommand::GlobalSoloStateCommand(Session &sess, void *src) : sess(sess), src(src) |