From 0d15797499f6bf12628ee1b67d474ca779a1fa86 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Tue, 8 Dec 2020 11:35:13 -0700 Subject: [PATCH] small cleanup to Source length API --- libs/ardour/ardour/midi_cursor.h | 9 ++++----- libs/ardour/ardour/source.h | 4 ++-- libs/ardour/ardour/srcfilesource.h | 4 ++-- libs/ardour/source.cc | 7 ------- 4 files changed, 8 insertions(+), 16 deletions(-) diff --git a/libs/ardour/ardour/midi_cursor.h b/libs/ardour/ardour/midi_cursor.h index 31de33e690..5cd60d7aec 100644 --- a/libs/ardour/ardour/midi_cursor.h +++ b/libs/ardour/ardour/midi_cursor.h @@ -39,14 +39,13 @@ struct MidiCursor : public boost::noncopyable { void connect(PBD::Signal1& invalidated) { connections.drop_connections(); - invalidated.connect_same_thread( - connections, boost::bind(&MidiCursor::invalidate, this, _1)); + invalidated.connect_same_thread (connections, boost::bind(&MidiCursor::invalidate, this, _1)); } void invalidate(bool preserve_notes) { - iter.invalidate(preserve_notes ? &active_notes : NULL); -#warning NUTEMPO this locks last_read_end to BeatTime which may not be good - last_read_end = Temporal::timepos_t (Temporal::BeatTime); + iter.invalidate (preserve_notes ? &active_notes : NULL); + /* maintain time domain while resetting to zero */ + last_read_end = Temporal::timepos_t (last_read_end.time_domain()); } Evoral::Sequence::const_iterator iter; diff --git a/libs/ardour/ardour/source.h b/libs/ardour/ardour/source.h index 415313f75d..95b9731eb1 100644 --- a/libs/ardour/ardour/source.h +++ b/libs/ardour/ardour/source.h @@ -74,10 +74,10 @@ public: time_t timestamp() const { return _timestamp; } void stamp (time_t when) { _timestamp = when; } - timecnt_t length() const; + timecnt_t length() const { return _length; } + samplecnt_t length_samples () const { return _length.samples(); }; virtual bool empty () const; - virtual samplecnt_t length_samples (timepos_t const & pos) const { return _length.samples(); }; virtual void update_length (timecnt_t const & cnt) {} void set_take_id (std::string id) { _take_id =id; } diff --git a/libs/ardour/ardour/srcfilesource.h b/libs/ardour/ardour/srcfilesource.h index b7fa928b82..3676e965c7 100644 --- a/libs/ardour/ardour/srcfilesource.h +++ b/libs/ardour/ardour/srcfilesource.h @@ -43,8 +43,8 @@ public: float sample_rate () const { return _session.nominal_sample_rate(); } timepos_t natural_position() const { return _source->natural_position() * _ratio;} - samplecnt_t readable_length_samples() const { return _source->length_samples (timepos_t (Temporal::AudioTime)) * _ratio; } - samplecnt_t length (samplepos_t /*pos*/) const { return _source->length_samples (timepos_t (Temporal::AudioTime)) * _ratio; } + samplecnt_t readable_length_samples() const { return _source->length_samples () * _ratio; } + samplecnt_t length (samplepos_t /*pos*/) const { return _source->length_samples () * _ratio; } bool can_be_analysed() const { return false; } bool clamped_at_unity() const { return false; } diff --git a/libs/ardour/source.cc b/libs/ardour/source.cc index 2036f8f6d2..ec1d1ef323 100644 --- a/libs/ardour/source.cc +++ b/libs/ardour/source.cc @@ -513,10 +513,3 @@ Source::empty () const { return _length == timecnt_t(); } - -timecnt_t -Source::length() const -{ - return _length; -} -