patch from lincoln to fix failure to leave loop play mode at transort stop
git-svn-id: svn://localhost/ardour2/branches/3.0@8489 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
9766e40235
commit
f7cef2016f
@ -1687,21 +1687,30 @@ ARDOUR_UI::toggle_roll (bool with_abort, bool roll_out_of_bounded_mode)
|
||||
void
|
||||
ARDOUR_UI::toggle_session_auto_loop ()
|
||||
{
|
||||
if (_session) {
|
||||
if (_session->get_play_loop()) {
|
||||
if (_session->transport_rolling()) {
|
||||
Location * looploc = _session->locations()->auto_loop_location();
|
||||
if (looploc) {
|
||||
_session->request_locate (looploc->start(), true);
|
||||
}
|
||||
} else {
|
||||
if (!_session) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (_session->get_play_loop()) {
|
||||
|
||||
if (_session->transport_rolling()) {
|
||||
|
||||
Location * looploc = _session->locations()->auto_loop_location();
|
||||
|
||||
if (looploc) {
|
||||
_session->request_locate (looploc->start(), true);
|
||||
_session->request_play_loop (false);
|
||||
}
|
||||
|
||||
} else {
|
||||
Location * looploc = _session->locations()->auto_loop_location();
|
||||
if (looploc) {
|
||||
_session->request_play_loop (true);
|
||||
}
|
||||
_session->request_play_loop (false);
|
||||
}
|
||||
} else {
|
||||
|
||||
Location * looploc = _session->locations()->auto_loop_location();
|
||||
|
||||
if (looploc) {
|
||||
_session->request_play_loop (true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -119,6 +119,7 @@ StreamPanner::PanControllable::set_value (double val)
|
||||
val = max (min (val, 1.0), 0.0);
|
||||
if (p.set_stereo_pan (val, p.width_control()->get_value())) {
|
||||
AutomationControl::set_value(val);
|
||||
p.session().set_dirty ();
|
||||
}
|
||||
break;
|
||||
|
||||
@ -127,6 +128,7 @@ StreamPanner::PanControllable::set_value (double val)
|
||||
val = max (min (val, 1.0), -1.0);
|
||||
if (p.set_stereo_pan (p.direction_control()->get_value(), val)) {
|
||||
AutomationControl::set_value(val);
|
||||
p.session().set_dirty ();
|
||||
}
|
||||
break;
|
||||
|
||||
@ -134,6 +136,7 @@ StreamPanner::PanControllable::set_value (double val)
|
||||
val = max (min (val, 1.0), 0.0);
|
||||
streampanner->set_position (AngularVector (direct_control_to_stereo_pan (val), 0.0));
|
||||
AutomationControl::set_value(val);
|
||||
p.session().set_dirty ();
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -944,6 +944,7 @@ Session::set_transport_speed (double speed, bool abort, bool clear_state)
|
||||
if (Config->get_monitoring_model() == HardwareMonitoring)
|
||||
{
|
||||
boost::shared_ptr<RouteList> rl = routes.reader();
|
||||
|
||||
for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) {
|
||||
boost::shared_ptr<Track> tr = boost::dynamic_pointer_cast<Track> (*i);
|
||||
if (tr && tr->record_enabled ()) {
|
||||
@ -965,6 +966,8 @@ Session::set_transport_speed (double speed, bool abort, bool clear_state)
|
||||
} else {
|
||||
stop_transport (abort);
|
||||
}
|
||||
|
||||
unset_play_loop ();
|
||||
|
||||
} else if (transport_stopped() && speed == 1.0) {
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user