diff options
author | Robin Gareus <robin@gareus.org> | 2018-05-30 18:29:51 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2018-07-09 17:38:35 +0200 |
commit | dca30c99fca7ee0048c89aa6b4ed530ebd1753d7 (patch) | |
tree | 3ea7d8b1acc6cdc078458fdb7afb9c3954450d51 | |
parent | bee09ac9e12c1e7d5b6c6fa4642217e7a7cc6ec0 (diff) |
Prepare API for per disk-reader de-click
-rw-r--r-- | libs/ardour/ardour/disk_reader.h | 6 | ||||
-rw-r--r-- | libs/ardour/ardour/track.h | 3 | ||||
-rw-r--r-- | libs/ardour/disk_reader.cc | 1 | ||||
-rw-r--r-- | libs/ardour/track.cc | 6 |
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; |