Add all_tracks_rec actions
authorBen Loftis <ben@harrisonconsoles.com>
Tue, 19 Jan 2016 20:00:03 +0000 (14:00 -0600)
committerBen Loftis <ben@harrisonconsoles.com>
Tue, 19 Jan 2016 20:00:03 +0000 (14:00 -0600)
libs/ardour/ardour/session.h
libs/ardour/session.cc
libs/surfaces/control_protocol/basic_ui.cc
libs/surfaces/control_protocol/control_protocol/basic_ui.h
libs/surfaces/osc/osc.cc
libs/surfaces/osc/osc.h

index afc93a9f76de882ae2d5421ddae44104217f3adb..43bd7483fbb9ca77187da56fba00f682f000dc14 100644 (file)
@@ -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 ();
 
index 3da7f6c071f302e085854fb079c8e54de21a1415..8f71ef29ef07ef8041a36523a8c1788c90a51e17 100644 (file)
@@ -1832,6 +1832,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)
 {
index 13b41ba373b9c7f561085c20bdbc9cefd3a5e045..5dc324edc200e8eb722f63654ffb2fb5ed01e3c5 100644 (file)
@@ -211,6 +211,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 ()
 {
index 5f15cc3e7012adcea253e538f7322789bacec00f..5a676ec5c24bd5d89f096a4329cc76b2af377e19 100644 (file)
@@ -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&);
index 3631a8bc7f266ab405170410fd5d0d1c4237adfd..7504cf0cdbc41ec2fdd8829d096667a11294b007 100644 (file)
@@ -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);
index 3128fe8eccc0711adfedf90ce47a08aa1ab00fd1..a3b83e03658c8aae5be79c66d33f1ba7b1f1a5e1 100644 (file)
@@ -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);