summaryrefslogtreecommitdiff
path: root/libs/ardour/session_command.cc
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2006-08-10 01:22:45 +0000
committerDavid Robillard <d@drobilla.net>2006-08-10 01:22:45 +0000
commitab6f1ed9bafa869648b6e94ee5186ff317b32c3e (patch)
treed61dba7f9b6f1ae755803afc4b79bcff06a36005 /libs/ardour/session_command.cc
parent38c7d34d8c449c7ce5f7da9575c24e60c6b31b1a (diff)
Merged with trunk R776
git-svn-id: svn://localhost/ardour2/branches/midi@777 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/session_command.cc')
-rw-r--r--libs/ardour/session_command.cc101
1 files changed, 101 insertions, 0 deletions
diff --git a/libs/ardour/session_command.cc b/libs/ardour/session_command.cc
new file mode 100644
index 0000000000..9a43de55de
--- /dev/null
+++ b/libs/ardour/session_command.cc
@@ -0,0 +1,101 @@
+#include <ardour/session.h>
+#include <ardour/route.h>
+
+namespace ARDOUR {
+// solo
+Session::GlobalSoloStateCommand::GlobalSoloStateCommand(Session &sess, void *src)
+ : sess(sess), src(src)
+{
+ after = before = sess.get_global_route_boolean(&Route::soloed);
+}
+void Session::GlobalSoloStateCommand::mark()
+{
+ after = sess.get_global_route_boolean(&Route::soloed);
+}
+void Session::GlobalSoloStateCommand::operator()()
+{
+ sess.set_global_solo(after, src);
+}
+void Session::GlobalSoloStateCommand::undo()
+{
+ sess.set_global_solo(before, src);
+}
+XMLNode &Session::GlobalSoloStateCommand::get_state()
+{
+ XMLNode *node = new XMLNode("GlobalSoloStateCommand");
+ return *node;
+}
+
+// mute
+Session::GlobalMuteStateCommand::GlobalMuteStateCommand(Session &sess, void *src)
+ : sess(sess), src(src)
+{
+ after = before = sess.get_global_route_boolean(&Route::muted);
+}
+void Session::GlobalMuteStateCommand::mark()
+{
+ after = sess.get_global_route_boolean(&Route::muted);
+}
+void Session::GlobalMuteStateCommand::operator()()
+{
+ sess.set_global_mute(after, src);
+}
+void Session::GlobalMuteStateCommand::undo()
+{
+ sess.set_global_mute(before, src);
+}
+XMLNode &Session::GlobalMuteStateCommand::get_state()
+{
+ XMLNode *node = new XMLNode("GlobalMuteStateCommand");
+ return *node;
+}
+
+// record enable
+Session::GlobalRecordEnableStateCommand::GlobalRecordEnableStateCommand(Session &sess, void *src)
+ : sess(sess), src(src)
+{
+ after = before = sess.get_global_route_boolean(&Route::record_enabled);
+}
+void Session::GlobalRecordEnableStateCommand::mark()
+{
+ after = sess.get_global_route_boolean(&Route::record_enabled);
+}
+void Session::GlobalRecordEnableStateCommand::operator()()
+{
+ sess.set_global_record_enable(after, src);
+}
+void Session::GlobalRecordEnableStateCommand::undo()
+{
+ sess.set_global_record_enable(before, src);
+}
+XMLNode &Session::GlobalRecordEnableStateCommand::get_state()
+{
+ XMLNode *node = new XMLNode("GlobalRecordEnableStateCommand");
+ return *node;
+}
+
+// metering
+Session::GlobalMeteringStateCommand::GlobalMeteringStateCommand(Session &sess, void *src)
+ : sess(sess), src(src)
+{
+ after = before = sess.get_global_route_metering();
+}
+void Session::GlobalMeteringStateCommand::mark()
+{
+ after = sess.get_global_route_metering();
+}
+void Session::GlobalMeteringStateCommand::operator()()
+{
+ sess.set_global_route_metering(after, src);
+}
+void Session::GlobalMeteringStateCommand::undo()
+{
+ sess.set_global_route_metering(before, src);
+}
+XMLNode &Session::GlobalMeteringStateCommand::get_state()
+{
+ XMLNode *node = new XMLNode("GlobalMeteringStateCommand");
+ return *node;
+}
+
+} // namespace ARDOUR