summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-12-07 23:51:46 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-12-07 23:51:46 +0000
commit8faf95b9bdf8985b25e839419acffc495c8107e3 (patch)
tree1cd0870bf3f7654fca846abbc12c684eea50296d /gtk2_ardour
parent9686f8097d45c306168d1a5220d9c8bf225edb8c (diff)
better, cleaner, more generic version of real-time ping pong, still just for one case of rec-enable but more coming soon
git-svn-id: svn://localhost/ardour2/branches/3.0@6325 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/rc_option_editor.cc2
-rw-r--r--gtk2_ardour/route_ui.cc11
2 files changed, 5 insertions, 8 deletions
diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc
index 8773db5c48..8597995a88 100644
--- a/gtk2_ardour/rc_option_editor.cc
+++ b/gtk2_ardour/rc_option_editor.cc
@@ -1003,7 +1003,7 @@ RCOptionEditor::RCOptionEditor ()
add_option (_("Transport"),
new BoolOption (
"disable-disarm-during-roll",
- _("Disable record disarm when transport is rolling"),
+ _("Disable per-track record disarm while rolling"),
mem_fun (*_rc_config, &RCConfiguration::get_disable_disarm_during_roll),
mem_fun (*_rc_config, &RCConfiguration::set_disable_disarm_during_roll)
));
diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc
index a8e97f081f..ba706242fa 100644
--- a/gtk2_ardour/route_ui.cc
+++ b/gtk2_ardour/route_ui.cc
@@ -457,7 +457,6 @@ RouteUI::post_rec_cleanup (SessionEvent* ev, UndoTransaction* undo, Session::Glo
{
ENSURE_GUI_THREAD (bind (mem_fun (*this, &RouteUI::post_rec_cleanup), ev, undo, cmd));
- delete ev->routes;
delete ev;
check_rec_enable_sensitivity ();
@@ -493,13 +492,11 @@ RouteUI::rec_enable_press(GdkEventButton* ev)
UndoTransaction* undo = _session.start_reversible_command (_("rec-enable change"));
Session::GlobalRecordEnableStateCommand *cmd = new Session::GlobalRecordEnableStateCommand(_session, this);
- sigc::slot<void,SessionEvent*> callback = bind (sigc::mem_fun (*this, &RouteUI::post_rec_cleanup), undo, cmd);
+ SessionEvent* ev = new SessionEvent (SessionEvent::RealTimeOperation, SessionEvent::Add, SessionEvent::Immediate, 0, 0.0);
+ ev->rt_slot = bind (sigc::mem_fun (_session, &Session::set_all_record_enable), _session.get_routes(), !rec_enable_button->get_active());
+ ev->rt_return = bind (sigc::mem_fun (*this, &RouteUI::post_rec_cleanup), undo, cmd);
- if (rec_enable_button->get_active()) {
- _session.record_disenable_all (callback);
- } else {
- _session.record_enable_all (callback);
- }
+ _session.queue_event (ev);
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {