summaryrefslogtreecommitdiff
path: root/gtk2_ardour/route_ui.cc
diff options
context:
space:
mode:
authorHans Fugal <hans@fugal.net>2006-07-28 23:38:30 +0000
committerHans Fugal <hans@fugal.net>2006-07-28 23:38:30 +0000
commit277b771a978b10580a46e19f19ae0cf2d8819f46 (patch)
treee41ff6ba913d42a6b8ef5da4037dbeffda08910a /gtk2_ardour/route_ui.cc
parent6aeb09062f4b4ff8e684f6f5ba80d47cb69665d5 (diff)
r209@gandalf: fugalh | 2006-07-28 17:38:21 -0600
global {solo,mute,record enable,metering} state commands. Same philosophy as the MementoCommand but using only the appropriate state and not the entire state of the session. git-svn-id: svn://localhost/ardour2/branches/undo@718 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/route_ui.cc')
-rw-r--r--gtk2_ardour/route_ui.cc35
1 files changed, 21 insertions, 14 deletions
diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc
index 84aeb9c73b..6ecb4d6255 100644
--- a/gtk2_ardour/route_ui.cc
+++ b/gtk2_ardour/route_ui.cc
@@ -132,9 +132,10 @@ RouteUI::mute_press(GdkEventButton* ev)
/* ctrl-shift-click applies change to all routes */
_session.begin_reversible_command (_("mute change"));
- _session.add_undo (_session.global_mute_memento(this));
+ Session::GlobalMuteStateCommand cmd(this);
_session.set_all_mute (!_route.muted());
- _session.add_redo_no_execute (_session.global_mute_memento(this));
+ cmd.mark();
+ _session.add_command(cmd);
_session.commit_reversible_command ();
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::Control)) {
@@ -207,9 +208,10 @@ RouteUI::solo_press(GdkEventButton* ev)
/* ctrl-shift-click applies change to all routes */
_session.begin_reversible_command (_("solo change"));
- _session.add_undo (_session.global_solo_memento(this));
+ Session::GlobalSoloStateCommand cmd(this);
_session.set_all_solo (!_route.soloed());
- _session.add_redo_no_execute (_session.global_solo_memento(this));
+ cmd.mark();
+ _session.add_command (cmd);
_session.commit_reversible_command ();
} else if (Keyboard::modifier_state_contains (ev->state, Keyboard::ModifierMask (Keyboard::Control|Keyboard::Alt))) {
@@ -217,10 +219,11 @@ RouteUI::solo_press(GdkEventButton* ev)
// ctrl-alt-click: exclusively solo this track, not a toggle */
_session.begin_reversible_command (_("solo change"));
- _session.add_undo (_session.global_solo_memento(this));
+ Session::GlobalSoloStateCommand cmd(this);
_session.set_all_solo (false);
_route.set_solo (true, this);
- _session.add_redo_no_execute (_session.global_solo_memento(this));
+ cmd.mark();
+ _session.add_command(cmd);
_session.commit_reversible_command ();
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::Shift)) {
@@ -280,7 +283,7 @@ RouteUI::rec_enable_press(GdkEventButton* ev)
else if (Keyboard::modifier_state_equals (ev->state, Keyboard::ModifierMask (Keyboard::Control|Keyboard::Shift))) {
_session.begin_reversible_command (_("rec-enable change"));
- _session.add_undo (_session.global_record_enable_memento(this));
+ Session::GlobalRecordEnableStateCommand cmd(this);
if (rec_enable_button->get_active()) {
_session.record_disenable_all ();
@@ -288,7 +291,8 @@ RouteUI::rec_enable_press(GdkEventButton* ev)
_session.record_enable_all ();
}
- _session.add_redo_no_execute (_session.global_record_enable_memento(this));
+ cmd.mark();
+ _session.add_command(cmd);
_session.commit_reversible_command ();
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::Control)) {
@@ -557,9 +561,10 @@ RouteUI::set_mix_group_solo(Route& route, bool yn)
if((mix_group = route.mix_group()) != 0){
_session.begin_reversible_command (_("mix group solo change"));
- _session.add_undo (_session.global_solo_memento (this));
+ Session::GlobalSoloStateCommand cmd(this);
mix_group->apply(&Route::set_solo, yn, this);
- _session.add_redo_no_execute (_session.global_solo_memento(this));
+ cmd.mark();
+ _session.add_command (cmd);
_session.commit_reversible_command ();
} else {
reversibly_apply_route_boolean ("solo change", &Route::set_solo, !route.soloed(), this);
@@ -595,9 +600,10 @@ RouteUI::set_mix_group_mute(Route& route, bool yn)
if((mix_group = route.mix_group()) != 0){
_session.begin_reversible_command (_("mix group mute change"));
- _session.add_undo (_session.global_mute_memento (this));
+ Session::GlobalMuteStateCommand cmd(this);
mix_group->apply(&Route::set_mute, yn, this);
- _session.add_redo_no_execute (_session.global_mute_memento(this));
+ cmd.mark();
+ _session.add_command(cmd);
_session.commit_reversible_command ();
} else {
reversibly_apply_route_boolean ("mute change", &Route::set_mute, !route.muted(), this);
@@ -611,9 +617,10 @@ RouteUI::set_mix_group_rec_enable(Route& route, bool yn)
if((mix_group = route.mix_group()) != 0){
_session.begin_reversible_command (_("mix group rec-enable change"));
- _session.add_undo (_session.global_record_enable_memento (this));
+ Session::GlobalRecordEnableStateCommand cmd(this);
mix_group->apply (&Route::set_record_enable, yn, this);
- _session.add_redo_no_execute (_session.global_record_enable_memento(this));
+ cmd.mark();
+ _session.add_command(cmd);
_session.commit_reversible_command ();
} else {
reversibly_apply_route_boolean ("rec-enable change", &Route::set_record_enable, !_route.record_enabled(), this);