summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2018-05-30 18:29:51 +0200
committerRobin Gareus <robin@gareus.org>2018-07-09 17:38:35 +0200
commitdca30c99fca7ee0048c89aa6b4ed530ebd1753d7 (patch)
tree3ea7d8b1acc6cdc078458fdb7afb9c3954450d51
parentbee09ac9e12c1e7d5b6c6fa4642217e7a7cc6ec0 (diff)
Prepare API for per disk-reader de-click
-rw-r--r--libs/ardour/ardour/disk_reader.h6
-rw-r--r--libs/ardour/ardour/track.h3
-rw-r--r--libs/ardour/disk_reader.cc1
-rw-r--r--libs/ardour/track.cc6
4 files changed, 15 insertions, 1 deletions
diff --git a/libs/ardour/ardour/disk_reader.h b/libs/ardour/ardour/disk_reader.h
index 9027bf3282..98caca30b0 100644
--- a/libs/ardour/ardour/disk_reader.h
+++ b/libs/ardour/ardour/disk_reader.h
@@ -93,6 +93,10 @@ public:
void playlist_modified ();
void reset_tracker ();
+ bool declick_in_progress () const {
+ return _declick_gain != 0; // declick-out
+ }
+
static void set_midi_readahead_samples (samplecnt_t samples_ahead) { midi_readahead = samples_ahead; }
static void set_no_disk_output (bool yn);
@@ -132,6 +136,8 @@ private:
IOChange input_change_pending;
samplepos_t file_sample[DataType::num_types];
+ gain_t _declick_gain;
+
int _do_refill_with_alloc (bool partial_fill);
static samplecnt_t _chunk_samples;
diff --git a/libs/ardour/ardour/track.h b/libs/ardour/ardour/track.h
index 148fec652d..2ec5a0f4aa 100644
--- a/libs/ardour/ardour/track.h
+++ b/libs/ardour/ardour/track.h
@@ -64,7 +64,8 @@ public:
bool set_processor_state (XMLNode const & node, XMLProperty const* prop, ProcessorList& new_order, bool& must_configure);
- bool needs_butler() const { return _needs_butler; }
+ bool needs_butler () const { return _needs_butler; }
+ bool declick_in_progress () const;
bool can_record();
diff --git a/libs/ardour/disk_reader.cc b/libs/ardour/disk_reader.cc
index 2673da56b9..b943110b44 100644
--- a/libs/ardour/disk_reader.cc
+++ b/libs/ardour/disk_reader.cc
@@ -56,6 +56,7 @@ DiskReader::DiskReader (Session& s, string const & str, DiskIOProcessor::Flag f)
, overwrite_offset (0)
, _pending_overwrite (false)
, overwrite_queued (false)
+ , _declick_gain (0)
{
file_sample[DataType::AUDIO] = 0;
file_sample[DataType::MIDI] = 0;
diff --git a/libs/ardour/track.cc b/libs/ardour/track.cc
index 072ae27d08..78b5a209cc 100644
--- a/libs/ardour/track.cc
+++ b/libs/ardour/track.cc
@@ -251,6 +251,12 @@ Track::freeze_state() const
}
bool
+Track::declick_in_progress () const
+{
+ return _disk_reader->declick_in_progress ();
+}
+
+bool
Track::can_record()
{
bool will_record = true;