temporal: fix bug introduced in 48f4f9bf9c

timecnt_t and timepos_t constructors with the initial argument as an int64_t
are assumed to be using samples. We need to use the explicit factory methods
instead.
This commit is contained in:
Paul Davis 2022-05-28 12:56:42 -06:00
parent e505407b76
commit cca3e6e061

View File

@ -200,7 +200,11 @@ timecnt_t::compute_beats() const
timecnt_t
timecnt_t::scale (ratio_t const & r) const
{
return timecnt_t (PBD::muldiv (_distance.val(), r.numerator(), r.denominator()), _position);
if (time_domain() == AudioTime) {
return timecnt_t::from_superclock (PBD::muldiv (_distance.val(), r.numerator(), r.denominator()), _position);
} else {
return timecnt_t::from_ticks (PBD::muldiv (_distance.val(), r.numerator(), r.denominator()), _position);
}
}
ratio_t
@ -569,7 +573,11 @@ timepos_t::_ticks () const
timepos_t
timepos_t::scale (ratio_t const & n) const
{
return timepos_t (PBD::muldiv (val(), n.numerator(), n.denominator()));
if (time_domain() == AudioTime) {
return timepos_t::from_superclock (PBD::muldiv (val(), n.numerator(), n.denominator()));
} else {
return timepos_t::from_ticks (PBD::muldiv (val(), n.numerator(), n.denominator()));
}
}
timepos_t