libtemporal: fix implementation of timecnt_t::operator+ (timecnt_t)
This commit is contained in:
parent
993186e9fc
commit
9438295607
@ -220,13 +220,16 @@ timecnt_t::to_string () const
|
|||||||
timecnt_t
|
timecnt_t
|
||||||
timecnt_t::operator+ (timecnt_t const & other) const
|
timecnt_t::operator+ (timecnt_t const & other) const
|
||||||
{
|
{
|
||||||
|
if (time_domain() == other.time_domain()) {
|
||||||
|
int62_t v (_distance.flagged(), _distance.val() + other.distance().val());
|
||||||
|
return timecnt_t (v, _position);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* mismatched time domains */
|
||||||
|
|
||||||
if (time_domain() == AudioTime) {
|
if (time_domain() == AudioTime) {
|
||||||
if (other.time_domain() == AudioTime) {
|
/* other must be beats */
|
||||||
/* both audio, just add and use an arbitrary position */
|
return timecnt_t (_distance + other.superclocks(), _position);
|
||||||
return timecnt_t (_distance + other.distance(), _position);
|
|
||||||
} else {
|
|
||||||
return timecnt_t (_distance + other.samples(), _position);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return timecnt_t (beats() + other.beats(), _position);
|
return timecnt_t (beats() + other.beats(), _position);
|
||||||
|
Loading…
Reference in New Issue
Block a user