{
// TODO
alist.set_state(node);
+ return 0;
}
class GlobalSoloStateCommand : public Command
{
GlobalRouteBooleanState before, after;
- void *src;
Session &sess;
+ void *src;
public:
GlobalSoloStateCommand(Session &, void *src);
void operator()();
void undo();
- XMLNode &serialize();
+ XMLNode &get_state();
void mark();
};
class GlobalMuteStateCommand : public Command
{
GlobalRouteBooleanState before, after;
- void *src;
Session &sess;
+ void *src;
public:
GlobalMuteStateCommand(Session &, void *src);
void operator()();
void undo();
- XMLNode &serialize();
+ XMLNode &get_state();
void mark();
};
class GlobalRecordEnableStateCommand : public Command
{
GlobalRouteBooleanState before, after;
- void *src;
Session &sess;
+ void *src;
public:
GlobalRecordEnableStateCommand(Session &, void *src);
void operator()();
void undo();
- XMLNode &serialize();
+ XMLNode &get_state();
void mark();
};
class GlobalMeteringStateCommand : public Command
{
GlobalRouteMeterState before, after;
- void *src;
Session &sess;
+ void *src;
public:
GlobalMeteringStateCommand(Session &, void *src);
void operator()();
void undo();
- XMLNode &serialize();
+ XMLNode &get_state();
void mark();
};
{
sess.set_global_solo(before, src);
}
-XMLNode &Session::GlobalSoloStateCommand::serialize()
+XMLNode &Session::GlobalSoloStateCommand::get_state()
{
+ XMLNode *node = new XMLNode("GlobalSoloStateCommand");
+ return *node;
}
// mute
{
sess.set_global_mute(before, src);
}
-XMLNode &Session::GlobalMuteStateCommand::serialize()
+XMLNode &Session::GlobalMuteStateCommand::get_state()
{
+ XMLNode *node = new XMLNode("GlobalMuteStateCommand");
+ return *node;
}
// record enable
{
sess.set_global_record_enable(before, src);
}
-XMLNode &Session::GlobalRecordEnableStateCommand::serialize()
+XMLNode &Session::GlobalRecordEnableStateCommand::get_state()
{
+ XMLNode *node = new XMLNode("GlobalRecordEnableStateCommand");
+ return *node;
}
// metering
{
sess.set_global_route_metering(before, src);
}
-XMLNode &Session::GlobalMeteringStateCommand::serialize()
+XMLNode &Session::GlobalMeteringStateCommand::get_state()
{
+ XMLNode *node = new XMLNode("GlobalMeteringStateCommand");
+ return *node;
}
} // namespace ARDOUR
#include <pbd/command.h>
+#include <pbd/xml++.h>
-class XMLNode;
-XMLNode &Command::serialize()
+XMLNode &Command::get_state()
{
XMLNode *node = new XMLNode ("Command");
// TODO
#ifndef __lib_pbd_command_h__
#define __lib_pbd_command_h__
-#include <pbd/serializable.h>
+#include <pbd/stateful.h>
-class Command : public Serializable
+class Command : public Stateful
{
public:
virtual ~Command() {}
virtual void operator() () = 0;
virtual void undo() = 0;
virtual void redo() { (*this)(); }
- virtual XMLNode &serialize();
+ virtual XMLNode &get_state();
+ virtual int set_state(const XMLNode&) { /* noop */ return 0; }
};
#endif // __lib_pbd_command_h_
: obj(obj), before(before), after(after) {}
void operator() () { obj.set_state(after); }
void undo() { obj.set_state(before); }
- virtual XMLNode &serialize() {}
- //{
+ virtual XMLNode &get_state()
+ {
+ XMLNode *node = new XMLNode("MementoCommand");
// obj.id
// key is "MementoCommand" or something
// before and after mementos
- //}
+ return *node;
+ }
// TODO does this need a copy constructor?
protected:
obj_T &obj;
: obj(obj), before(before) {}
void operator() () { /* noop */ }
void undo() { obj.set_state(before); }
- virtual XMLNode &serialize() {}
- //{
+ virtual XMLNode &get_state()
+ {
+ XMLNode *node = new XMLNode("MementoUndoCommand"); // XXX
// obj.id
// key is "MementoCommand" or something
// before and after mementos
- //}
+ return *node;
+ }
protected:
obj_T &obj;
XMLNode &before;
: obj(obj), after(after) {}
void operator() () { obj.set_state(after); }
void undo() { /* noop */ }
- virtual XMLNode &serialize() {}
- //{
+ virtual XMLNode &get_state()
+ {
+ XMLNode *node = new XMLNode("MementoUndoCommand");
// obj.id
// key is "MementoCommand" or something
// before and after mementos
- //}
+ return *node;
+ }
protected:
obj_T &obj;
XMLNode &after;
+++ /dev/null
-/*
- Copyright (C) 2006 Paul Davis
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- $Id: /local/undo/libs/pbd3/pbd/undo.h 59 2006-06-15T18:16:20.960977Z fugalh $
-*/
-
-#ifndef __lib_pbd_serializable_h__
-#define __lib_pbd_serializable_h__
-
-#include <pbd/xml++.h>
-
-class Serializable
-{
-public:
- virtual XMLNode &serialize() = 0;
- virtual ~Serializable() {}
-};
-
-#endif // __lib_pbd_serializable_h__
void undo();
void redo();
- XMLNode &serialize();
+ XMLNode &get_state();
void set_name (const string& str) {
_name = str;
#include <iostream>
#include <pbd/undo.h>
+#include <pbd/xml++.h>
using namespace std;
using namespace sigc;
(*this)();
}
-XMLNode &UndoTransaction::serialize()
+XMLNode &UndoTransaction::get_state()
{
XMLNode *node = new XMLNode ("UndoTransaction");
// TODO