summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-01-18 23:47:50 +0100
committerRobin Gareus <robin@gareus.org>2017-01-18 23:47:50 +0100
commitef64c7ba19e2908e27fbcdb4ba536b7e0e173371 (patch)
tree42101a68bea059b5561745538cc8429f9abb33a8 /gtk2_ardour
parentd650b3c29208ea57a24618e13f4787b74476f908 (diff)
Promote the preroll_seconds config option to include musical time:
Interpret negative preroll time as bars
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/editor_ops.cc9
-rw-r--r--gtk2_ardour/rc_option_editor.cc5
2 files changed, 8 insertions, 6 deletions
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc
index 00234670ea..6d78b9fac0 100644
--- a/gtk2_ardour/editor_ops.cc
+++ b/gtk2_ardour/editor_ops.cc
@@ -2609,17 +2609,16 @@ Editor::play_selection ()
framepos_t
Editor::get_preroll (framepos_t pos)
{
-#if 0 // TODO: this needs a config option, or special case (e.g. negative get_preroll_seconds ())
- if (pos >= 0) {
+ const float pr = Config->get_preroll_seconds();
+ if (pos >= 0 && pr < 0) {
/* currently 1 bar's worth of pre-roll, not aligned to bar/beat
* to align to a bar before pos, see count_in, session_transport.cc
*/
const Tempo& tempo = _session->tempo_map().tempo_at_frame (pos);
const Meter& meter = _session->tempo_map().meter_at_frame (pos);
- return meter.frames_per_bar (tempo, _session->frame_rate());
+ return meter.frames_per_bar (tempo, _session->frame_rate()) * -pr;
}
-#endif
- return Config->get_preroll_seconds() * _session->frame_rate();
+ return pr * _session->frame_rate();
}
diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc
index 316592dc12..4a5b0a8eef 100644
--- a/gtk2_ardour/rc_option_editor.cc
+++ b/gtk2_ardour/rc_option_editor.cc
@@ -2999,8 +2999,11 @@ RCOptionEditor::RCOptionEditor ()
sigc::mem_fun (*_rc_config, &RCConfiguration::set_preroll_seconds)
);
Gtkmm2ext::UI::instance()->set_tip (psc->tip_widget(),
- (_("The amount of preroll (in seconds) to apply when <b>Play with Preroll</b> is initiated.\n\n"
+ (_("The amount of preroll to apply when <b>Play with Preroll</b> or <b>Record with Preroll</b>is initiated.\n\n"
"If <b>Follow Edits</b> is enabled, the preroll is applied to the playhead position when a region is selected or trimmed.")));
+ psc->add (-4.0, _("4 Bars"));
+ psc->add (-2.0, _("2 Bars"));
+ psc->add (-1.0, _("1 Bar"));
psc->add (0.0, _("0 (no pre-roll)"));
psc->add (0.1, _("0.1 second"));
psc->add (0.25, _("0.25 second"));