From fdc24b6594489410690ec300a66cc380ceb217c1 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Tue, 15 Jun 2021 22:14:44 -0400 Subject: [PATCH] Add BasicUI::get_play_loop() Towards removing the direct use of Session by surfaces. --- libs/surfaces/cc121/cc121.cc | 2 +- libs/surfaces/control_protocol/basic_ui.cc | 6 ++++++ libs/surfaces/control_protocol/control_protocol/basic_ui.h | 3 ++- libs/surfaces/faderport/faderport.cc | 2 +- libs/surfaces/faderport8/callbacks.cc | 2 +- .../frontier/tranzport/tranzport_control_protocol.cc | 2 +- libs/surfaces/mackie/mcp_buttons.cc | 2 +- libs/surfaces/maschine2/callbacks.cc | 2 +- libs/surfaces/osc/osc.cc | 2 +- libs/surfaces/osc/osc_global_observer.cc | 2 +- libs/surfaces/tranzport/general.cc | 2 +- libs/surfaces/us2400/mcp_buttons.cc | 2 +- 12 files changed, 18 insertions(+), 11 deletions(-) diff --git a/libs/surfaces/cc121/cc121.cc b/libs/surfaces/cc121/cc121.cc index a0e124e180..266331facb 100644 --- a/libs/surfaces/cc121/cc121.cc +++ b/libs/surfaces/cc121/cc121.cc @@ -667,7 +667,7 @@ CC121::map_recenable_state () void CC121::map_transport_state () { - get_button (Loop).set_led_state (_output_port, _session->get_play_loop()); + get_button (Loop).set_led_state (_output_port, get_play_loop()); float ts = get_transport_speed(); diff --git a/libs/surfaces/control_protocol/basic_ui.cc b/libs/surfaces/control_protocol/basic_ui.cc index 52b2d107a3..111916d1c0 100644 --- a/libs/surfaces/control_protocol/basic_ui.cc +++ b/libs/surfaces/control_protocol/basic_ui.cc @@ -446,6 +446,12 @@ BasicUI::transport_rolling () const return !_session->transport_stopped_or_stopping (); } +bool +BasicUI::get_play_loop () const +{ + return _session->get_play_loop (); +} + void BasicUI::undo () { diff --git a/libs/surfaces/control_protocol/control_protocol/basic_ui.h b/libs/surfaces/control_protocol/control_protocol/basic_ui.h index c30d8d931c..32d320d392 100644 --- a/libs/surfaces/control_protocol/control_protocol/basic_ui.h +++ b/libs/surfaces/control_protocol/control_protocol/basic_ui.h @@ -38,9 +38,9 @@ namespace ARDOUR { -class Route; class Session; class SessionConfiguration; +class Stripable; class LIBCONTROLCP_API BasicUI { public: @@ -70,6 +70,7 @@ class LIBCONTROLCP_API BasicUI { double get_transport_speed () const; double transport_rolling () const; + bool get_play_loop () const; void jump_by_seconds (double sec, LocateTransportDisposition ltd = RollIfAppropriate); void jump_by_bars (int bars, LocateTransportDisposition ltd = RollIfAppropriate); diff --git a/libs/surfaces/faderport/faderport.cc b/libs/surfaces/faderport/faderport.cc index 5a69ef8b60..f786db87c5 100644 --- a/libs/surfaces/faderport/faderport.cc +++ b/libs/surfaces/faderport/faderport.cc @@ -684,7 +684,7 @@ FaderPort::map_recenable_state () void FaderPort::map_transport_state () { - get_button (Loop).set_led_state (_output_port, _session->get_play_loop()); + get_button (Loop).set_led_state (_output_port, get_play_loop()); float ts = get_transport_speed(); diff --git a/libs/surfaces/faderport8/callbacks.cc b/libs/surfaces/faderport8/callbacks.cc index f4beeab25d..4278277829 100644 --- a/libs/surfaces/faderport8/callbacks.cc +++ b/libs/surfaces/faderport8/callbacks.cc @@ -169,7 +169,7 @@ FaderPort8::notify_loop_state_changed () { bool looping = false; Location* looploc = _session->locations ()->auto_loop_location (); - if (looploc && _session->get_play_loop ()) { + if (looploc && get_play_loop ()) { looping = true; } _ctrls.button (FP8Controls::BtnLoop).set_active (looping); diff --git a/libs/surfaces/frontier/tranzport/tranzport_control_protocol.cc b/libs/surfaces/frontier/tranzport/tranzport_control_protocol.cc index b964753add..358d32dc70 100644 --- a/libs/surfaces/frontier/tranzport/tranzport_control_protocol.cc +++ b/libs/surfaces/frontier/tranzport/tranzport_control_protocol.cc @@ -1129,7 +1129,7 @@ int TranzportControlProtocol::lights_show_normal() /* Global settings */ - lights_pending[LightLoop] = session->get_play_loop(); + lights_pending[LightLoop] = get_play_loop(); lights_pending[LightPunch] = Config->get_punch_in() || Config->get_punch_out(); lights_pending[LightRecord] = session->get_record_enabled(); lights_pending[LightAnysolo] = session->soloing(); diff --git a/libs/surfaces/mackie/mcp_buttons.cc b/libs/surfaces/mackie/mcp_buttons.cc index da3ce01582..a1b10bf9ed 100644 --- a/libs/surfaces/mackie/mcp_buttons.cc +++ b/libs/surfaces/mackie/mcp_buttons.cc @@ -596,7 +596,7 @@ MackieControlProtocol::loop_press (Button &) access_action ("Editor/set-loop-from-edit-range"); return off; } else { - bool was_on = _session->get_play_loop(); + const bool was_on = get_play_loop(); loop_toggle (); return was_on ? off : on; } diff --git a/libs/surfaces/maschine2/callbacks.cc b/libs/surfaces/maschine2/callbacks.cc index 1703ef776e..dbadb4d64e 100644 --- a/libs/surfaces/maschine2/callbacks.cc +++ b/libs/surfaces/maschine2/callbacks.cc @@ -140,7 +140,7 @@ Maschine2::notify_loop_state_changed () { bool looping = false; Location* looploc = _session->locations ()->auto_loop_location (); - if (looploc && _session->get_play_loop ()) { + if (looploc && get_play_loop ()) { looping = true; } _ctrl->button (M2Contols::Loop)->set_color (looping ? COLOR_GRAY : 0); diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc index 5697240cfc..eb76dab0e8 100644 --- a/libs/surfaces/osc/osc.cc +++ b/libs/surfaces/osc/osc.cc @@ -1304,7 +1304,7 @@ OSC::osc_toggle_roll (bool ret2strt) _session->request_stop (ret2strt, true); } else { - if (_session->get_play_loop() && Config->get_loop_is_mode()) { + if (get_play_loop() && Config->get_loop_is_mode()) { locate (_session->locations()->auto_loop_location()->start().samples(), MustRoll); } else { _session->request_roll (TRS_UI); diff --git a/libs/surfaces/osc/osc_global_observer.cc b/libs/surfaces/osc/osc_global_observer.cc index ecbb6ae089..aadf6563d1 100644 --- a/libs/surfaces/osc/osc_global_observer.cc +++ b/libs/surfaces/osc/osc_global_observer.cc @@ -415,7 +415,7 @@ OSCGlobalObserver::send_trim_message (string path, boost::shared_ptrget_play_loop(), addr); + _osc.float_message (X_("/loop_toggle"), _osc.get_play_loop(), addr); _osc.float_message (X_("/transport_play"), session->actual_speed() == 1.0, addr); _osc.float_message (X_("/toggle_roll"), session->actual_speed() == 1.0, addr); _osc.float_message (X_("/transport_stop"), session->transport_stopped_or_stopping(), addr); diff --git a/libs/surfaces/tranzport/general.cc b/libs/surfaces/tranzport/general.cc index f45e6b8e37..35b62a7710 100644 --- a/libs/surfaces/tranzport/general.cc +++ b/libs/surfaces/tranzport/general.cc @@ -120,7 +120,7 @@ int TranzportControlProtocol::lights_show_normal() /* Global settings */ - lights_pending[LightLoop] = session->get_play_loop(); + lights_pending[LightLoop] = get_play_loop(); lights_pending[LightPunch] = config ().get_punch_in() || config().get_punch_out(); lights_pending[LightRecord] = session->get_record_enabled(); lights_pending[LightAnysolo] = session->soloing(); diff --git a/libs/surfaces/us2400/mcp_buttons.cc b/libs/surfaces/us2400/mcp_buttons.cc index 8673ae2f31..ae4ba3790b 100644 --- a/libs/surfaces/us2400/mcp_buttons.cc +++ b/libs/surfaces/us2400/mcp_buttons.cc @@ -569,7 +569,7 @@ US2400Protocol::loop_press (Button &) access_action ("Editor/set-loop-from-edit-range"); return off; } else { - bool was_on = _session->get_play_loop(); + const bool was_on = get_play_loop(); loop_toggle (); return was_on ? off : on; }