mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-06 23:05:04 +01:00
Add GUI action to record with preroll
This commit is contained in:
parent
efd10abdfb
commit
645402bc42
7 changed files with 31 additions and 0 deletions
|
|
@ -74,6 +74,7 @@
|
|||
<menuitem action='record-roll'/>
|
||||
<menuitem action='ToggleRollForgetCapture'/>
|
||||
<menuitem action='Record'/>
|
||||
<menuitem action='RecordPreroll'/>
|
||||
#if 0
|
||||
<menuitem action='toggle-skip-playback'/>
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -2449,6 +2449,15 @@ ARDOUR_UI::transport_play_preroll ()
|
|||
editor->play_with_preroll ();
|
||||
}
|
||||
|
||||
void
|
||||
ARDOUR_UI::transport_rec_preroll ()
|
||||
{
|
||||
if (!_session) {
|
||||
return;
|
||||
}
|
||||
editor->rec_with_preroll ();
|
||||
}
|
||||
|
||||
void
|
||||
ARDOUR_UI::transport_rewind (int option)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -677,6 +677,7 @@ private:
|
|||
void transport_roll ();
|
||||
void transport_play_selection();
|
||||
void transport_play_preroll();
|
||||
void transport_rec_preroll();
|
||||
void transport_forward (int option);
|
||||
void transport_rewind (int option);
|
||||
void transport_loop ();
|
||||
|
|
|
|||
|
|
@ -408,6 +408,10 @@ ARDOUR_UI::install_actions ()
|
|||
ActionManager::session_sensitive_actions.push_back (act);
|
||||
ActionManager::transport_sensitive_actions.push_back (act);
|
||||
|
||||
act = global_actions.register_action (transport_actions, X_("RecordPreroll"), _("Record w/Preroll"), sigc::mem_fun(*this, &ARDOUR_UI::transport_rec_preroll));
|
||||
ActionManager::session_sensitive_actions.push_back (act);
|
||||
ActionManager::write_sensitive_actions.push_back (act);
|
||||
|
||||
act = global_actions.register_action (transport_actions, X_("Record"), _("Enable Record"), sigc::bind (sigc::mem_fun(*this, &ARDOUR_UI::transport_record), false));
|
||||
ActionManager::session_sensitive_actions.push_back (act);
|
||||
ActionManager::write_sensitive_actions.push_back (act);
|
||||
|
|
|
|||
|
|
@ -264,6 +264,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
|
|||
framepos_t get_preroll ();
|
||||
void maybe_locate_with_edit_preroll (framepos_t);
|
||||
void play_with_preroll ();
|
||||
void rec_with_preroll ();
|
||||
void select_all_in_track (Selection::Operation op);
|
||||
void select_all_objects (Selection::Operation op);
|
||||
void invert_selection_in_track ();
|
||||
|
|
|
|||
|
|
@ -2665,6 +2665,20 @@ Editor::play_with_preroll ()
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
Editor::rec_with_preroll ()
|
||||
{
|
||||
framepos_t preroll = get_preroll();
|
||||
framepos_t ph = playhead_cursor->current_frame ();
|
||||
framepos_t start = std::max ((framepos_t)0, ph - preroll);
|
||||
|
||||
_session->request_preroll_record (ph);
|
||||
_session->maybe_enable_record ();
|
||||
_session->request_locate (start, true);
|
||||
_session->set_requested_return_frame (ph);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
Editor::play_location (Location& location)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -211,6 +211,7 @@ class PublicEditor : public Gtkmm2ext::Tabbable {
|
|||
virtual bool extend_selection_to_track (TimeAxisView&) = 0;
|
||||
virtual void play_selection () = 0;
|
||||
virtual void play_with_preroll () = 0;
|
||||
virtual void rec_with_preroll () = 0;
|
||||
virtual void maybe_locate_with_edit_preroll (framepos_t location) = 0;
|
||||
virtual void goto_nth_marker (int nth) = 0;
|
||||
virtual void trigger_script (int nth) = 0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue