diff options
author | David Robillard <d@drobilla.net> | 2006-08-10 01:22:45 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2006-08-10 01:22:45 +0000 |
commit | ab6f1ed9bafa869648b6e94ee5186ff317b32c3e (patch) | |
tree | d61dba7f9b6f1ae755803afc4b79bcff06a36005 /libs/ardour/session_command.cc | |
parent | 38c7d34d8c449c7ce5f7da9575c24e60c6b31b1a (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.cc | 101 |
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 |