From a8d300ea18532c66f52f3efbe5e0465a5fec4fc8 Mon Sep 17 00:00:00 2001 From: Nikolay Date: Tue, 20 Jan 2015 17:04:43 +0200 Subject: [PATCH] [Summary] Apply Record Enable to all selected tracks. [Reviewed] GZharun --- gtk2_ardour/route_ui.cc | 78 ++++++++++++++++++++++++----------------- 1 file changed, 46 insertions(+), 32 deletions(-) diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc index e786e68073..9f7f35e044 100644 --- a/gtk2_ardour/route_ui.cc +++ b/gtk2_ardour/route_ui.cc @@ -598,21 +598,25 @@ RouteUI::rec_enable_press(GdkEventButton* ev) } if (!_session->engine().connected()) { - WavesMessageDialog msg ("", _("Not connected to AudioEngine - cannot engage record")); + WavesMessageDialog msg ("", _("Not connected to AudioEngine - cannot engage record")); msg.run (); return true; } - if (is_midi_track()) { +// Tracks Live doesn't use it +#if 0 + if (is_midi_track()) + { + /* rec-enable button exits from step editing */ - /* rec-enable button exits from step editing */ - - if (midi_track()->step_editing()) { - midi_track()->set_step_editing (false); - return true; - } + if (midi_track()->step_editing()) + { + midi_track()->set_step_editing (false); + return true; } - + } +#endif + if (is_track()) { if (Keyboard::is_button2_event (ev)) { @@ -620,7 +624,10 @@ RouteUI::rec_enable_press(GdkEventButton* ev) // do nothing on midi sigc::bind event return rec_enable_button.on_button_press_event (ev); - } else if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) { + } +#if 0 +// Groups will be able to use in the future, but Tracks Live doesn't support it now + else if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) { /* Primary-button1 applies change to the route group (even if it is not active) NOTE: Primary-button2 is MIDI learn. @@ -639,26 +646,47 @@ RouteUI::rec_enable_press(GdkEventButton* ev) rl->push_back (_route); } - DisplaySuspender ds; _session->set_record_enabled (rl, !rec_enable_button.active_state(), Session::rt_cleanup, true); } - - } else if (Keyboard::is_context_menu_event (ev)) { +#endif + else if (Keyboard::is_context_menu_event (ev)) { /* do this on release */ } else { - - boost::shared_ptr rl (new RouteList); - rl->push_back (route()); - DisplaySuspender ds; - _session->set_record_enabled (rl, !rec_enable_button.active_state()); + boost::shared_ptr rl (new RouteList); + + if ( is_selected () ) { + rl = get_selected_route_list (); + } else { + rl->push_back (_route); + } + /* Record enable uses EditorRoutes::redisplay N time. Where N is the number of changed tracks. + DisplaySuspender is used in order to improve GUI performance */ + DisplaySuspender ds; + _session->set_record_enabled (rl, !rec_enable_button.active_state(), Session::rt_cleanup, true); } } return true; } +bool +RouteUI::rec_enable_release (GdkEventButton* ev) +{ +#if 0 + if (Keyboard::is_context_menu_event (ev)) { + build_record_menu (); + if (record_menu) { + record_menu->popup (1, ev->time); + } + return true; + } +#endif + + return true; +} + void RouteUI::monitoring_changed () { @@ -812,20 +840,6 @@ RouteUI::step_edit_changed (bool yn) } } -bool -RouteUI::rec_enable_release (GdkEventButton* ev) -{ - if (Keyboard::is_context_menu_event (ev)) { - build_record_menu (); - if (record_menu) { - record_menu->popup (1, ev->time); - } - return true; - } - - return true; -} - void RouteUI::build_sends_menu () {