summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
authorHans Fugal <hans@fugal.net>2006-08-03 21:54:14 +0000
committerHans Fugal <hans@fugal.net>2006-08-03 21:54:14 +0000
commitb0b723445816bc968a6a183c6619fccc61e82859 (patch)
treeacea74f2808f94f09492bfa5c09163ba6ec3a8cd /libs/ardour
parent1f1c4981de73b13d0b7617d8ebe89d9f22dddec3 (diff)
r260@gandalf: fugalh | 2006-08-03 15:53:50 -0600
It compiles and runs and seems to still work. Still needed is the actual serialization. Time to merge back to trunk so things can be tested by all. git-svn-id: svn://localhost/ardour2/branches/undo@754 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/SConscript1
-rw-r--r--libs/ardour/ardour/automation_event.h5
-rw-r--r--libs/ardour/ardour/session.h12
-rw-r--r--libs/ardour/automation_event.cc14
-rw-r--r--libs/ardour/session_command.cc69
5 files changed, 61 insertions, 40 deletions
diff --git a/libs/ardour/SConscript b/libs/ardour/SConscript
index f5f1272fb8..a1bed7aeef 100644
--- a/libs/ardour/SConscript
+++ b/libs/ardour/SConscript
@@ -75,6 +75,7 @@ send.cc
session.cc
session_butler.cc
session_click.cc
+session_command.cc
session_events.cc
session_export.cc
session_midi.cc
diff --git a/libs/ardour/ardour/automation_event.h b/libs/ardour/ardour/automation_event.h
index 73aed389c1..1fa29d4adf 100644
--- a/libs/ardour/ardour/automation_event.h
+++ b/libs/ardour/ardour/automation_event.h
@@ -154,10 +154,7 @@ class AutomationList : public StateManager, public Stateful
virtual void load_state (const XMLNode&);
XMLNode &get_state(void);
- int set_state (const XMLNode &s) {
- load_state(s);
- return 1; /*XXX*/
- }
+ int set_state (const XMLNode &s);
void set_max_xval (double);
double get_max_xval() const { return max_xval; }
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h
index a809a2e479..7a9e50ae9b 100644
--- a/libs/ardour/ardour/session.h
+++ b/libs/ardour/ardour/session.h
@@ -853,8 +853,9 @@ class Session : public sigc::trackable, public Stateful
{
GlobalRouteBooleanState before, after;
void *src;
+ Session &sess;
public:
- GlobalSoloStateCommand(void *src);
+ GlobalSoloStateCommand(Session &, void *src);
void operator()();
void undo();
XMLNode &serialize();
@@ -865,8 +866,9 @@ class Session : public sigc::trackable, public Stateful
{
GlobalRouteBooleanState before, after;
void *src;
+ Session &sess;
public:
- GlobalMuteStateCommand(void *src);
+ GlobalMuteStateCommand(Session &, void *src);
void operator()();
void undo();
XMLNode &serialize();
@@ -877,8 +879,9 @@ class Session : public sigc::trackable, public Stateful
{
GlobalRouteBooleanState before, after;
void *src;
+ Session &sess;
public:
- GlobalRecordEnableStateCommand(void *src);
+ GlobalRecordEnableStateCommand(Session &, void *src);
void operator()();
void undo();
XMLNode &serialize();
@@ -889,8 +892,9 @@ class Session : public sigc::trackable, public Stateful
{
GlobalRouteMeterState before, after;
void *src;
+ Session &sess;
public:
- GlobalMeteringStateCommand(void *src);
+ GlobalMeteringStateCommand(Session &, void *src);
void operator()();
void undo();
XMLNode &serialize();
diff --git a/libs/ardour/automation_event.cc b/libs/ardour/automation_event.cc
index 3df7dd94f7..a9e76ac55c 100644
--- a/libs/ardour/automation_event.cc
+++ b/libs/ardour/automation_event.cc
@@ -1246,3 +1246,17 @@ AutomationList::load_state (const XMLNode& node)
add (x, y);
}
}
+
+XMLNode &AutomationList::get_state ()
+{
+ XMLNode *node = new XMLNode("AutomationList");
+ store_state(*node);
+ return *node;
+}
+
+int AutomationList::set_state(const XMLNode &s)
+{
+ load_state(s);
+ return 0;
+}
+
diff --git a/libs/ardour/session_command.cc b/libs/ardour/session_command.cc
index 9e473fe233..6482de41fb 100644
--- a/libs/ardour/session_command.cc
+++ b/libs/ardour/session_command.cc
@@ -1,87 +1,92 @@
#include <ardour/session.h>
+#include <ardour/route.h>
namespace ARDOUR {
// solo
-Session::GlobalSoloStateCommand::GlobalSoloStateCommand(void *src) : src(src)
+Session::GlobalSoloStateCommand::GlobalSoloStateCommand(Session &sess, void *src)
+ : sess(sess), src(src)
{
- after = before = get_global_route_boolean(&Route::soloed);
+ after = before = sess.get_global_route_boolean(&Route::soloed);
}
void Session::GlobalSoloStateCommand::mark()
{
- after = get_global_route_boolean(&Route::soloed);
+ after = sess.get_global_route_boolean(&Route::soloed);
}
-void operator()()
+void Session::GlobalSoloStateCommand::operator()()
{
- set_global_solo(after, src);
+ sess.set_global_solo(after, src);
}
-void undo()
+void Session::GlobalSoloStateCommand::undo()
{
- set_global_solo(before, src);
+ sess.set_global_solo(before, src);
}
-XMLNode &serialize()
+XMLNode &Session::GlobalSoloStateCommand::serialize()
{
}
// mute
-Session::GlobalMuteStateCommand::GlobalMuteStateCommand(void *src) : src(src)
+Session::GlobalMuteStateCommand::GlobalMuteStateCommand(Session &sess, void *src)
+ : sess(sess), src(src)
{
- after = before = get_global_route_boolean(&Route::muted);
+ after = before = sess.get_global_route_boolean(&Route::muted);
}
void Session::GlobalMuteStateCommand::mark()
{
- after = get_global_route_boolean(&Route::muted);
+ after = sess.get_global_route_boolean(&Route::muted);
}
-void operator()()
+void Session::GlobalMuteStateCommand::operator()()
{
- set_global_mute(after, src);
+ sess.set_global_mute(after, src);
}
-void undo()
+void Session::GlobalMuteStateCommand::undo()
{
- set_global_mute(before, src);
+ sess.set_global_mute(before, src);
}
-XMLNode &serialize()
+XMLNode &Session::GlobalMuteStateCommand::serialize()
{
}
// record enable
-Session::GlobalRecordEnableStateCommand::GlobalRecordEnableStateCommand(void *src) : src(src)
+Session::GlobalRecordEnableStateCommand::GlobalRecordEnableStateCommand(Session &sess, void *src)
+ : sess(sess), src(src)
{
- after = before = get_global_route_boolean(&Route::record_enabled);
+ after = before = sess.get_global_route_boolean(&Route::record_enabled);
}
void Session::GlobalRecordEnableStateCommand::mark()
{
- after = get_global_route_boolean(&Route::record_enabled);
+ after = sess.get_global_route_boolean(&Route::record_enabled);
}
-void operator()()
+void Session::GlobalRecordEnableStateCommand::operator()()
{
- set_global_record_enable(after, src);
+ sess.set_global_record_enable(after, src);
}
-void undo()
+void Session::GlobalRecordEnableStateCommand::undo()
{
- set_global_record_enable(before, src);
+ sess.set_global_record_enable(before, src);
}
-XMLNode &serialize()
+XMLNode &Session::GlobalRecordEnableStateCommand::serialize()
{
}
// metering
-Session::GlobalMeteringStateCommand::GlobalMeteringStateCommand(void *src) : src(src)
+Session::GlobalMeteringStateCommand::GlobalMeteringStateCommand(Session &sess, void *src)
+ : sess(sess), src(src)
{
- after = before = get_global_route_metering();
+ after = before = sess.get_global_route_metering();
}
void Session::GlobalMeteringStateCommand::mark()
{
- after = get_global_route_metering();
+ after = sess.get_global_route_metering();
}
-void operator()()
+void Session::GlobalMeteringStateCommand::operator()()
{
- set_global_route_metering(after, src);
+ sess.set_global_route_metering(after, src);
}
-void undo()
+void Session::GlobalMeteringStateCommand::undo()
{
- set_global_route_metering(before, src);
+ sess.set_global_route_metering(before, src);
}
-XMLNode &serialize()
+XMLNode &Session::GlobalMeteringStateCommand::serialize()
{
}