diff --git a/libs/ardour/ardour/location.h b/libs/ardour/ardour/location.h index 5d1b5bed90..615ff3fb15 100644 --- a/libs/ardour/ardour/location.h +++ b/libs/ardour/ardour/location.h @@ -203,7 +203,7 @@ public: bool clear_xrun_markers (); bool clear_ranges (); - void ripple (samplepos_t at, samplecnt_t distance, bool include_locked, bool notify); + void ripple (timepos_t const & at, timecnt_t const & distance, bool include_locked, bool notify); XMLNode& get_state (void); int set_state (const XMLNode&, int version); diff --git a/libs/ardour/location.cc b/libs/ardour/location.cc index 206b1e639b..c53ef38d79 100644 --- a/libs/ardour/location.cc +++ b/libs/ardour/location.cc @@ -1517,7 +1517,7 @@ Locations::range_starts_at (timepos_t const & pos, timecnt_t const & slop, bool } void -Locations::ripple (samplepos_t at, samplecnt_t distance, bool include_locked, bool notify) +Locations::ripple (timepos_t const & at, timecnt_t const & distance, bool include_locked, bool notify) { LocationList copy; @@ -1554,10 +1554,10 @@ Locations::ripple (samplepos_t at, samplecnt_t distance, bool include_locked, bo } if ((*i)->start() >= at) { - (*i)->set_start ((*i)->start() + distance); + (*i)->set_start ((*i)->start().earlier (distance)); if (!(*i)->is_mark()) { - (*i)->set_end ((*i)->end() + distance); + (*i)->set_end ((*i)->end().earlier (distance)); } }