mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-10 08:36:32 +01:00
move FaderPort8 method "button_varispeed()" into BasicUI for more general use
This commit is contained in:
parent
981fc6b3cd
commit
fbd1221833
3 changed files with 28 additions and 21 deletions
|
|
@ -185,6 +185,32 @@ BasicUI::remove_marker_at_playhead ()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
BasicUI::button_varispeed (bool fwd)
|
||||||
|
{
|
||||||
|
// switch play direction, if needed
|
||||||
|
if (fwd) {
|
||||||
|
if (get_transport_speed() <= 0) {
|
||||||
|
session->request_transport_speed (1.0, false);
|
||||||
|
session->request_roll (TRS_UI);
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (get_transport_speed() >= 0) {
|
||||||
|
session->request_transport_speed (-1.0, false);
|
||||||
|
session->request_roll (TRS_UI);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// incrementally increase speed by semitones
|
||||||
|
// (keypress auto-repeat is 100ms)
|
||||||
|
float maxspeed = Config->get_shuttle_max_speed();
|
||||||
|
float speed = exp2f(1.0/12.0) * get_transport_speed();
|
||||||
|
speed = std::max (-maxspeed, std::min (maxspeed, speed));
|
||||||
|
session->request_transport_speed (speed, false);
|
||||||
|
session->request_roll (TRS_UI);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
BasicUI::rewind ()
|
BasicUI::rewind ()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,7 @@ class LIBCONTROLCP_API BasicUI {
|
||||||
void goto_zero ();
|
void goto_zero ();
|
||||||
void goto_start (bool and_roll = false);
|
void goto_start (bool and_roll = false);
|
||||||
void goto_end ();
|
void goto_end ();
|
||||||
|
void button_varispeed (bool fwd);
|
||||||
void rewind ();
|
void rewind ();
|
||||||
void ffwd ();
|
void ffwd ();
|
||||||
void transport_stop ();
|
void transport_stop ();
|
||||||
|
|
|
||||||
|
|
@ -313,27 +313,7 @@ FaderPort8::button_varispeed (bool ffw)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// switch play direction, if needed
|
BasicUI::button_varispeed (ffw);
|
||||||
if (ffw) {
|
|
||||||
if (get_transport_speed() <= 0) {
|
|
||||||
session->request_transport_speed (1.0, false);
|
|
||||||
session->request_roll (TRS_UI);
|
|
||||||
return ;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (get_transport_speed() >= 0) {
|
|
||||||
session->request_transport_speed (-1.0, false);
|
|
||||||
session->request_roll (TRS_UI);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// incrementally increase speed by semitones
|
|
||||||
// (keypress auto-repeat is 100ms)
|
|
||||||
float maxspeed = Config->get_shuttle_max_speed();
|
|
||||||
float speed = exp2f(1.0/12.0) * get_transport_speed();
|
|
||||||
speed = std::max (-maxspeed, std::min (maxspeed, speed));
|
|
||||||
session->request_transport_speed (speed, false);
|
|
||||||
session->request_roll (TRS_UI);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef FP8_MUTESOLO_UNDO
|
#ifdef FP8_MUTESOLO_UNDO
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue