From 56554af08f7a54e0415bc3fff4752ca141e56498 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 7 Dec 2010 19:55:43 +0000 Subject: Revert previous ill-thought-out patch. git-svn-id: svn://localhost/ardour2/branches/3.0@8213 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/ardour/midi_region.h | 9 +-------- libs/ardour/ardour/region.h | 4 ---- libs/ardour/midi_region.cc | 17 ++--------------- libs/ardour/region.cc | 27 ++++++++++++++++++--------- libs/evoral/evoral/Event.hpp | 3 --- libs/evoral/evoral/Sequence.hpp | 2 -- libs/evoral/src/Event.cpp | 14 -------------- libs/evoral/src/Sequence.cpp | 20 -------------------- libs/fst/vstwin.c | 1 - 9 files changed, 21 insertions(+), 76 deletions(-) (limited to 'libs') diff --git a/libs/ardour/ardour/midi_region.h b/libs/ardour/ardour/midi_region.h index dae984c331..853272d349 100644 --- a/libs/ardour/ardour/midi_region.h +++ b/libs/ardour/ardour/midi_region.h @@ -107,20 +107,13 @@ class MidiRegion : public Region boost::shared_ptr model() { return midi_source()->model(); } boost::shared_ptr model() const { return midi_source()->model(); } - void fix_negative_start (); - - protected: - - virtual bool can_trim_start_before_source_start () const { - return true; - } - private: friend class RegionFactory; MidiRegion (const SourceList&); MidiRegion (boost::shared_ptr, frameoffset_t offset = 0, bool offset_relative = true); + private: framecnt_t _read_at (const SourceList&, Evoral::EventSink& dst, framepos_t position, framecnt_t dur, diff --git a/libs/ardour/ardour/region.h b/libs/ardour/ardour/region.h index ed4923bc40..3ad61919b1 100644 --- a/libs/ardour/ardour/region.h +++ b/libs/ardour/ardour/region.h @@ -315,10 +315,6 @@ class Region /** Constructor for derived types only */ Region (Session& s, framepos_t start, framecnt_t length, const std::string& name, DataType); - virtual bool can_trim_start_before_source_start () const { - return false; - } - protected: void send_change (const PBD::PropertyChange&); void mid_thaw (const PBD::PropertyChange&); diff --git a/libs/ardour/midi_region.cc b/libs/ardour/midi_region.cc index 74276ff5b6..f9fb791bad 100644 --- a/libs/ardour/midi_region.cc +++ b/libs/ardour/midi_region.cc @@ -121,7 +121,7 @@ MidiRegion::set_position_internal (framepos_t pos, bool allow_bbt_recompute) BeatsFramesConverter old_converter(_session.tempo_map(), _position - _start); double length_beats = old_converter.from(_length); - Region::set_position_internal (pos, allow_bbt_recompute); + Region::set_position_internal(pos, allow_bbt_recompute); BeatsFramesConverter new_converter(_session.tempo_map(), pos - _start); @@ -306,22 +306,9 @@ MidiRegion::model_automation_state_changed (Evoral::Parameter const & p) } /* the source will have an iterator into the model, and that iterator will have been set up - for a given set of filtered_parameters, so now that we've changed that list we must invalidate + for a given set of filtered_paramters, so now that we've changed that list we must invalidate the iterator. */ Glib::Mutex::Lock lm (midi_source(0)->mutex()); midi_source(0)->invalidate (); } - -/** This is called when a trim drag has resulted in a -ve _start time for this region. - * Fix it up by adding some empty space to the source. - */ -void -MidiRegion::fix_negative_start () -{ - BeatsFramesConverter c (_session.tempo_map(), _position); - - MidiModel::WriteLock lock (model()->edit_lock ()); - model()->insert_silence_at_start (c.from (-_start)); - _start = 0; -} diff --git a/libs/ardour/region.cc b/libs/ardour/region.cc index 585689a656..5c25d34c60 100644 --- a/libs/ardour/region.cc +++ b/libs/ardour/region.cc @@ -732,7 +732,13 @@ Region::trim_start (framepos_t new_position, void */*src*/) return; } framepos_t new_start; - frameoffset_t const start_shift = new_position - _position; + frameoffset_t start_shift; + + if (new_position > _position) { + start_shift = new_position - _position; + } else { + start_shift = -(_position - new_position); + } if (start_shift > 0) { @@ -753,7 +759,6 @@ Region::trim_start (framepos_t new_position, void */*src*/) } else { new_start = _start + start_shift; } - } else { return; } @@ -808,10 +813,9 @@ Region::modify_front (framepos_t new_position, bool reset_fade, void *src) framecnt_t newlen = 0; framepos_t delta = 0; - if (!can_trim_start_before_source_start ()) { - /* can't trim it back past where source position zero is located */ - new_position = max (new_position, source_zero); - } + /* can't trim it back passed where source position zero is located */ + + new_position = max (new_position, source_zero); if (new_position > _position) { newlen = _length - (new_position - _position); @@ -883,13 +887,18 @@ Region::trim_to (framepos_t position, framecnt_t length, void *src) void Region::trim_to_internal (framepos_t position, framecnt_t length, void */*src*/) { + frameoffset_t start_shift; framepos_t new_start; if (locked()) { return; } - frameoffset_t const start_shift = position - _position; + if (position > _position) { + start_shift = position - _position; + } else { + start_shift = -(_position - position); + } if (start_shift > 0) { @@ -901,7 +910,7 @@ Region::trim_to_internal (framepos_t position, framecnt_t length, void */*src*/) } else if (start_shift < 0) { - if (_start < -start_shift && !can_trim_start_before_source_start ()) { + if (_start < -start_shift) { new_start = 0; } else { new_start = _start + start_shift; @@ -1600,7 +1609,7 @@ Region::can_trim () const ct = CanTrim (ct | FrontTrimLater | EndTrimEarlier); - if (start() != 0 || can_trim_start_before_source_start ()) { + if (start() != 0) { ct = CanTrim (ct | FrontTrimEarlier); } diff --git a/libs/evoral/evoral/Event.hpp b/libs/evoral/evoral/Event.hpp index 873572e77c..2410b3684a 100644 --- a/libs/evoral/evoral/Event.hpp +++ b/libs/evoral/evoral/Event.hpp @@ -170,9 +170,6 @@ struct Event { inline const uint8_t* buffer() const { return _buf; } inline uint8_t*& buffer() { return _buf; } - void set_time (Time); - void set_original_time (Time); - inline event_id_t id() const { return _id; } inline void set_id (event_id_t n) { _id = n; } diff --git a/libs/evoral/evoral/Sequence.hpp b/libs/evoral/evoral/Sequence.hpp index 56903f582b..7675aeeb4e 100644 --- a/libs/evoral/evoral/Sequence.hpp +++ b/libs/evoral/evoral/Sequence.hpp @@ -173,8 +173,6 @@ public: void set_notes (const Sequence