summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-04-01 23:52:43 +0200
committerRobin Gareus <robin@gareus.org>2017-04-01 23:52:43 +0200
commit5ebe6fcde89d5f4696c3b0af156e2f2ba70c1489 (patch)
tree7dce7cbe5259ad38b82c62a724d7032618013551
parent4b1c288f87421b0e15908f5195284d47ebef7361 (diff)
Add option for record-only metronome.
-rw-r--r--libs/ardour/ardour/rc_configuration_vars.h1
-rw-r--r--libs/ardour/ardour/session.h1
-rw-r--r--libs/ardour/session.cc1
-rw-r--r--libs/ardour/session_click.cc4
-rw-r--r--libs/ardour/session_state.cc4
5 files changed, 11 insertions, 0 deletions
diff --git a/libs/ardour/ardour/rc_configuration_vars.h b/libs/ardour/ardour/rc_configuration_vars.h
index 413eb7fe33..66719e8d06 100644
--- a/libs/ardour/ardour/rc_configuration_vars.h
+++ b/libs/ardour/ardour/rc_configuration_vars.h
@@ -147,6 +147,7 @@ CONFIG_VARIABLE (std::string, midi_audition_synth_uri, "midi-audition-synth-uri"
/* click */
CONFIG_VARIABLE (bool, clicking, "clicking", false)
+CONFIG_VARIABLE (bool, click_record_only, "click-record-only", false)
CONFIG_VARIABLE (std::string, click_sound, "click-sound", "")
CONFIG_VARIABLE (std::string, click_emphasis_sound, "click-emphasis-sound", "")
CONFIG_VARIABLE (gain_t, click_gain, "click-gain", 1.0)
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h
index 8088858917..02f6fdeb5b 100644
--- a/libs/ardour/ardour/session.h
+++ b/libs/ardour/ardour/session.h
@@ -1896,6 +1896,7 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
typedef std::list<Click*> Clicks;
Clicks clicks;
bool _clicking;
+ bool _click_rec_only;
boost::shared_ptr<IO> _click_io;
boost::shared_ptr<Amp> _click_gain;
Sample* click_data;
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index eb8e233993..d54dac7fd9 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -295,6 +295,7 @@ Session::Session (AudioEngine &eng,
, _bundle_xml_node (0)
, _current_trans (0)
, _clicking (false)
+ , _click_rec_only (false)
, click_data (0)
, click_emphasis_data (0)
, click_length (0)
diff --git a/libs/ardour/session_click.cc b/libs/ardour/session_click.cc
index 08aa0cc446..fc1f9c5e1d 100644
--- a/libs/ardour/session_click.cc
+++ b/libs/ardour/session_click.cc
@@ -75,6 +75,10 @@ Session::click (framepos_t start, framecnt_t nframes)
return;
}
+ if (_click_rec_only && !actively_recording()) {
+ return;
+ }
+
start -= _worst_track_latency;
/* start could be negative at this point */
const framepos_t end = start + nframes;
diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc
index 72da3e6788..edca09ff14 100644
--- a/libs/ardour/session_state.cc
+++ b/libs/ardour/session_state.cc
@@ -4049,6 +4049,10 @@ Session::config_changed (std::string p, bool ours)
_clicking = false;
}
+ } else if (p == "click-record-only") {
+
+ _click_rec_only = Config->get_click_record_only();
+
} else if (p == "click-gain") {
if (_click_gain) {