summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorBen Loftis <ben@harrisonconsoles.com>2016-01-19 14:00:03 -0600
committerBen Loftis <ben@harrisonconsoles.com>2016-01-19 14:00:03 -0600
commit5493e20c847c404ea5f349adab77691e2af0b750 (patch)
tree92be1cf9e2b7931fc8ff843f311af68902356f85 /libs
parentfe7aac8dacf6abc83c4c2821e3237b1b551ed8b1 (diff)
Add all_tracks_rec actions
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/session.h2
-rw-r--r--libs/ardour/session.cc13
-rw-r--r--libs/surfaces/control_protocol/basic_ui.cc12
-rw-r--r--libs/surfaces/control_protocol/control_protocol/basic_ui.h3
-rw-r--r--libs/surfaces/osc/osc.cc4
-rw-r--r--libs/surfaces/osc/osc.h2
6 files changed, 36 insertions, 0 deletions
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h
index afc93a9f76..43bd7483fb 100644
--- a/libs/ardour/ardour/session.h
+++ b/libs/ardour/ardour/session.h
@@ -305,6 +305,8 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
void maybe_enable_record ();
void disable_record (bool rt_context, bool force = false);
void step_back_from_record ();
+
+ void set_all_tracks_record_enabled(bool);
void maybe_write_autosave ();
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index 3da7f6c071..8f71ef29ef 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -1833,6 +1833,19 @@ Session::enable_record ()
}
void
+Session::set_all_tracks_record_enabled (bool enable )
+{
+ boost::shared_ptr<RouteList> rl = routes.reader();
+ for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) {
+ boost::shared_ptr<Track> tr = boost::dynamic_pointer_cast<Track> (*i);
+ if (tr) {
+ tr->set_record_enabled (enable, this);
+ }
+ }
+}
+
+
+void
Session::disable_record (bool rt_context, bool force)
{
RecordState rs;
diff --git a/libs/surfaces/control_protocol/basic_ui.cc b/libs/surfaces/control_protocol/basic_ui.cc
index 13b41ba373..5dc324edc2 100644
--- a/libs/surfaces/control_protocol/basic_ui.cc
+++ b/libs/surfaces/control_protocol/basic_ui.cc
@@ -212,6 +212,18 @@ BasicUI::rec_enable_toggle ()
}
void
+BasicUI::all_tracks_rec_in ()
+{
+ session->set_all_tracks_record_enabled (true);
+}
+
+void
+BasicUI::all_tracks_rec_out ()
+{
+ session->set_all_tracks_record_enabled (false);
+}
+
+void
BasicUI::save_state ()
{
session->save_state ("");
diff --git a/libs/surfaces/control_protocol/control_protocol/basic_ui.h b/libs/surfaces/control_protocol/control_protocol/basic_ui.h
index 5f15cc3e70..5a676ec5c2 100644
--- a/libs/surfaces/control_protocol/control_protocol/basic_ui.h
+++ b/libs/surfaces/control_protocol/control_protocol/basic_ui.h
@@ -133,6 +133,9 @@ class LIBCONTROLCP_API BasicUI {
void rec_enable_toggle ();
void toggle_all_rec_enables ();
+ void all_tracks_rec_in ();
+ void all_tracks_rec_out ();
+
ARDOUR::framecnt_t timecode_frames_per_hour ();
void timecode_time (framepos_t where, Timecode::Time&);
diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc
index 3631a8bc7f..7504cf0cdb 100644
--- a/libs/surfaces/osc/osc.cc
+++ b/libs/surfaces/osc/osc.cc
@@ -359,6 +359,8 @@ OSC::register_callbacks()
REGISTER_CALLBACK (serv, "/ardour/toggle_punch_out", "", toggle_punch_out);
REGISTER_CALLBACK (serv, "/ardour/rec_enable_toggle", "", rec_enable_toggle);
REGISTER_CALLBACK (serv, "/ardour/toggle_all_rec_enables", "", toggle_all_rec_enables);
+ REGISTER_CALLBACK (serv, "/ardour/all_tracks_rec_in", "f", all_tracks_rec_in);
+ REGISTER_CALLBACK (serv, "/ardour/all_tracks_rec_out", "f", all_tracks_rec_out);
REGISTER_CALLBACK (serv, "/ardour/remove_marker", "", remove_marker_at_playhead);
REGISTER_CALLBACK (serv, "/ardour/jump_bars", "f", jump_by_bars);
REGISTER_CALLBACK (serv, "/ardour/jump_seconds", "f", jump_by_seconds);
@@ -425,6 +427,8 @@ OSC::register_callbacks()
REGISTER_CALLBACK (serv, "/ardour/pushbutton/toggle_punch_out", "f", toggle_punch_out);
REGISTER_CALLBACK (serv, "/ardour/pushbutton/rec_enable_toggle", "f", rec_enable_toggle);
REGISTER_CALLBACK (serv, "/ardour/pushbutton/toggle_all_rec_enables", "f", toggle_all_rec_enables);
+ REGISTER_CALLBACK (serv, "/ardour/pushbutton/all_tracks_rec_in", "f", all_tracks_rec_in);
+ REGISTER_CALLBACK (serv, "/ardour/pushbutton/all_tracks_rec_out", "f", all_tracks_rec_out);
REGISTER_CALLBACK (serv, "/ardour/pushbutton/remove_marker", "f", remove_marker_at_playhead);
REGISTER_CALLBACK (serv, "/ardour/pushbutton/mark_in", "f", mark_in);
REGISTER_CALLBACK (serv, "/ardour/pushbutton/mark_out", "f", mark_out);
diff --git a/libs/surfaces/osc/osc.h b/libs/surfaces/osc/osc.h
index 3128fe8ecc..a3b83e0365 100644
--- a/libs/surfaces/osc/osc.h
+++ b/libs/surfaces/osc/osc.h
@@ -191,6 +191,8 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI<OSCUIRequest>
PATH_CALLBACK(toggle_punch_out);
PATH_CALLBACK(rec_enable_toggle);
PATH_CALLBACK(toggle_all_rec_enables);
+ PATH_CALLBACK(all_tracks_rec_in);
+ PATH_CALLBACK(all_tracks_rec_out);
PATH_CALLBACK(remove_marker_at_playhead);
PATH_CALLBACK(mark_in);
PATH_CALLBACK(mark_out);