mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-07 23:35:03 +01:00
copy-n-paste the ARDOUR_UI toggle-roll code into BasicUI (for Faderport and others)
This commit is contained in:
parent
ec8a840b1a
commit
ae7cc64377
1 changed files with 49 additions and 15 deletions
|
|
@ -199,23 +199,57 @@ BasicUI::transport_stop ()
|
||||||
void
|
void
|
||||||
BasicUI::transport_play (bool from_last_start)
|
BasicUI::transport_play (bool from_last_start)
|
||||||
{
|
{
|
||||||
|
if (!session) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (session->is_auditioning()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
if (session->config.get_external_sync()) {
|
||||||
|
switch (Config->get_sync_source()) {
|
||||||
|
case Engine:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
/* transport controlled by the master */
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
bool rolling = session->transport_rolling();
|
bool rolling = session->transport_rolling();
|
||||||
|
|
||||||
if (session->get_play_loop()) {
|
if (session->get_play_loop()) {
|
||||||
session->request_play_loop (false);
|
|
||||||
|
/* If loop playback is not a mode, then we should cancel
|
||||||
|
it when this action is requested. If it is a mode
|
||||||
|
we just leave it in place.
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!Config->get_loop_is_mode()) {
|
||||||
|
/* XXX it is not possible to just leave seamless loop and keep
|
||||||
|
playing at present (nov 4th 2009)
|
||||||
|
*/
|
||||||
|
if (!Config->get_seamless_loop()) {
|
||||||
|
/* stop loop playback and stop rolling */
|
||||||
|
session->request_play_loop (false, true);
|
||||||
|
} else if (rolling) {
|
||||||
|
/* stop loop playback but keep rolling */
|
||||||
|
session->request_play_loop (false, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (session->get_play_range ()) {
|
} else if (session->get_play_range () ) {
|
||||||
session->request_play_range (0);
|
/* stop playing a range if we currently are */
|
||||||
}
|
session->request_play_range (0, true);
|
||||||
|
|
||||||
if (from_last_start && rolling) {
|
|
||||||
session->request_locate (session->last_transport_start(), true);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!rolling) {
|
||||||
session->request_transport_speed (1.0f);
|
session->request_transport_speed (1.0f);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
BasicUI::rec_enable_toggle ()
|
BasicUI::rec_enable_toggle ()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue