diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2007-11-28 13:56:11 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2007-11-28 13:56:11 +0000 |
commit | b8e300b36c1dc989e47b5e9b28848588e4dd2b20 (patch) | |
tree | 87b8bb51b5a1b416549dead9827b6bc12916933c /gtk2_ardour | |
parent | 598e0dd010648677ed70661f7161f922dec2bb8c (diff) |
implement 1-touch record action
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2721 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/ardour-sae.bindings.in | 1 | ||||
-rw-r--r-- | gtk2_ardour/ardour-sae.menus | 1 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 12 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui.h | 2 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui_ed.cc | 4 |
5 files changed, 17 insertions, 3 deletions
diff --git a/gtk2_ardour/ardour-sae.bindings.in b/gtk2_ardour/ardour-sae.bindings.in index bb0923e80a..47992de1e6 100644 --- a/gtk2_ardour/ardour-sae.bindings.in +++ b/gtk2_ardour/ardour-sae.bindings.in @@ -16,6 +16,7 @@ ; (gtk_accel_path "<Actions>/redirectmenu/copy" "") ; (gtk_accel_path "<Actions>/options/MeterFalloffFaster" "") (gtk_accel_path "<Actions>/Transport/ToggleRollForgetCapture" "<%PRIMARY%>space") +(gtk_accel_path "<Actions>/Transport/record-roll" "<%TERTIARY%>space") (gtk_accel_path "<Actions>/Transport/Record" "<%TERTIARY%>r") ; (gtk_accel_path "<Actions>/RegionList/SortByRegionLength" "") ; (gtk_accel_path "<Actions>/options/MeterFalloffSlowest" "") diff --git a/gtk2_ardour/ardour-sae.menus b/gtk2_ardour/ardour-sae.menus index ba88f555f0..af875a49ba 100644 --- a/gtk2_ardour/ardour-sae.menus +++ b/gtk2_ardour/ardour-sae.menus @@ -30,6 +30,7 @@ </menu> <menu name='Transport' action='Transport'> <menuitem action='ToggleRoll'/> + <menuitem action='record-roll'/> <menuitem action='ToggleRollForgetCapture'/> <menuitem action='Loop'/> <menuitem action='PlaySelection'/> diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index bbe3b787eb..44562f3ec0 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -1406,7 +1406,7 @@ ARDOUR_UI::remove_last_capture() } void -ARDOUR_UI::transport_record () +ARDOUR_UI::transport_record (bool roll) { if (session) { switch (session->record_status()) { @@ -1417,8 +1417,18 @@ ARDOUR_UI::transport_record () return; } session->maybe_enable_record (); + if (roll) { + transport_roll (); + } break; case Session::Recording: + if (roll) { + session->request_stop(); + } else { + session->disable_record (false, true); + } + break; + case Session::Enabled: session->disable_record (false, true); } diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index cab635e5a7..ab599305ff 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -567,7 +567,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI void transport_goto_end (); void transport_stop (); void transport_stop_and_forget_capture (); - void transport_record (); + void transport_record (bool roll); void transport_roll (); void transport_play_selection(); void transport_forward (int option); diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc index 2d322bbdd2..88e32cc11d 100644 --- a/gtk2_ardour/ardour_ui_ed.cc +++ b/gtk2_ardour/ardour_ui_ed.cc @@ -266,7 +266,9 @@ ARDOUR_UI::install_actions () ActionManager::session_sensitive_actions.push_back (act); ActionManager::transport_sensitive_actions.push_back (act); - act = ActionManager::register_action (transport_actions, X_("Record"), _("Enable Record"), mem_fun(*this, &ARDOUR_UI::transport_record)); + act = ActionManager::register_action (transport_actions, X_("Record"), _("Enable Record"), bind (mem_fun(*this, &ARDOUR_UI::transport_record), false)); + ActionManager::session_sensitive_actions.push_back (act); + act = ActionManager::register_action (transport_actions, X_("record-roll"), _("Start Recording"), bind (mem_fun(*this, &ARDOUR_UI::transport_record), true)); ActionManager::session_sensitive_actions.push_back (act); ActionManager::transport_sensitive_actions.push_back (act); act = ActionManager::register_action (transport_actions, X_("Rewind"), _("Rewind"), bind (mem_fun(*this, &ARDOUR_UI::transport_rewind), 0)); |