diff options
author | Hans Fugal <hans@fugal.net> | 2006-08-03 21:54:14 +0000 |
---|---|---|
committer | Hans Fugal <hans@fugal.net> | 2006-08-03 21:54:14 +0000 |
commit | b0b723445816bc968a6a183c6619fccc61e82859 (patch) | |
tree | acea74f2808f94f09492bfa5c09163ba6ec3a8cd /libs/ardour | |
parent | 1f1c4981de73b13d0b7617d8ebe89d9f22dddec3 (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/SConscript | 1 | ||||
-rw-r--r-- | libs/ardour/ardour/automation_event.h | 5 | ||||
-rw-r--r-- | libs/ardour/ardour/session.h | 12 | ||||
-rw-r--r-- | libs/ardour/automation_event.cc | 14 | ||||
-rw-r--r-- | libs/ardour/session_command.cc | 69 |
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() { } |