diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2009-12-07 23:51:46 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2009-12-07 23:51:46 +0000 |
commit | 8faf95b9bdf8985b25e839419acffc495c8107e3 (patch) | |
tree | 1cd0870bf3f7654fca846abbc12c684eea50296d /gtk2_ardour | |
parent | 9686f8097d45c306168d1a5220d9c8bf225edb8c (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.cc | 2 | ||||
-rw-r--r-- | gtk2_ardour/route_ui.cc | 11 |
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)) { |