0b1d44f422
temporal: fix timepos_t::decrement() to not switch domains
2021-08-13 12:51:35 -06:00
b42727b92a
temporal: fix use of std::abs on 64 bit value
2021-08-13 12:51:34 -06:00
97e4a4f04a
change semantics of Region::set_length() to preserve current position
...
Before the nutempo changes, a call to Region::set_length() only set the length
of the region. Now that Region::_length is a duple of (duration,position),
maintain thesame semantics so that the call only affects the duration part of
the duple. Theoretically we might at some point want/need
Region::set_length_and_position() but that is not the case at this point,
2021-08-13 12:51:34 -06:00
56cde042cd
Region::_start should be a timepos_t not a timecnt_t
...
It is an offset from an *implicit* origin (the source zero), not from an explicit origin,
and this fits with the concept underlying timepos_t. A timecnt_t requires an explicit origin,
which makes no sense in this context (just as it doesn't for the timeline as a whole).
2021-08-13 12:51:34 -06:00
daad7b74ae
libtemporal: rename TempoMap::full_duration_at() to ::convert_duration() and reorder parameters
2021-08-13 12:51:34 -06:00
7773fc5b64
libtemporal: TempoMap::full_duration_at() returns correct value for unchanged time domain call
2021-08-13 12:51:34 -06:00
b7bc3b1947
libtemporal: expand comment to explain more about what TempoMap::full_duration_at() does
2021-08-13 12:51:34 -06:00
c0c3fd07c9
libtemporal: add timecnt_t::end() and timecnt_t::set_time_domain()
2021-08-13 12:51:34 -06:00
3bf6e013ee
get rid of Region _last_position member, since the _last_length member has its own position
2021-08-13 12:51:34 -06:00
c0343a5a1a
get rid of Region _position member, since the _length member has its own position
2021-08-13 12:51:34 -06:00
a71ba473f7
fix up post-rebase issues after rebase on master
2021-08-13 12:51:34 -06:00
beaa1b3fcb
be sure to check the return from the RCU mgr ::update method() inside TempoMap::update()
2021-08-13 12:51:34 -06:00
9a53ef4020
libevoral: fix some existing or potential issues with time domains
2021-08-13 12:51:34 -06:00
e11ecd56a9
libevoral: avoid use of std::numeric_limits<timepos_t> which does not (or should not) exist
2021-08-13 12:51:34 -06:00
87e56f28e9
libevoral: remove semi-shadow local variable
2021-08-13 12:51:34 -06:00
0877500437
libtemporal: don't compile file removed (too early) in a55df1ad6
2021-08-13 12:51:34 -06:00
3021038976
libardour: remove beats<->samples converter objects; provide a virtual get_origin() method instead to use with timepos_t/timecnt_t
2021-08-13 12:51:34 -06:00
5b3c5d3782
libtemporal: fix implementation of timepos_t::max() to avoid overflow for Beats time
2021-08-13 12:51:34 -06:00
b2510c0da2
libardour: use appropriate method to set AutomationList time domain from ::set_state()
2021-08-13 12:51:34 -06:00
6d154c14b4
libevoral: add a new method to set the time domain that can be used from ::set_state(), when the event list is not (yet) empty
2021-08-13 12:51:34 -06:00
9d7d158abd
add comment to help explain Region::source_beats_to_absolute_beats()
2021-08-13 12:51:34 -06:00
9a9bc3408f
fixups for xrun-marker work, now that Region::sample() and Region::length() so not return sample types
2021-08-13 12:51:34 -06:00
17fd3f5d3d
cleanup, clarify, fix various methods that compute region/source-relative positions and distances
2021-08-13 12:51:34 -06:00
2049cc44b2
libtemporal: tweak: don't both with local tempo map ptr
2021-08-13 12:51:34 -06:00
433a9ebe48
libtemporal: catch attempts to convert max audio time values into beats, early
2021-08-13 12:51:34 -06:00
d576fc8ca9
libtemporal: when computing Beats from a ticks value, do not try to pass potentially overflowing ticks value
2021-08-13 12:51:34 -06:00
1af74f7398
libtemporal: correct the definition of std::numeric_limits<Beats>::max(). Comment in code contains details.
2021-08-13 12:51:34 -06:00
bbb3ca01fa
libtemporal: remove several BBT-related methods that are not used and problematic for BBT/position markers
2021-08-13 12:51:34 -06:00
0667a50a11
libtemporal: improve TempoMap::get_grid()'s decision making about what bar points to include when bar_mod == 1
2021-08-13 12:51:34 -06:00
877e896caf
libtemporal: TempoMap::apply_with_metrics() needs to use *all* metrics (inc. MusicTimePoints)
2021-08-13 12:51:34 -06:00
a49ed5505e
libtemporal: no need for a default MusicTimePoint in the tempo map (default tempo+meter points serve same role)
2021-08-13 12:51:34 -06:00
5153124664
change (GUI) Marker objects to accept any Canvas::Item as parent, and use this to draw BBT position markers in the BBT ruler
2021-08-13 12:51:34 -06:00
34a3db7eaa
use existing (inline) method for updating thread local tempo map after update (avoid code duplication)
2021-08-13 12:51:34 -06:00
901f593af5
avoid unnecessary extra fetch of thread-local tempo map after undo/redo
2021-08-13 12:51:34 -06:00
25ecc54208
possible minor optimizations of atomic loads in int62_t class
2021-08-13 12:51:34 -06:00
38b1f5eee1
fixup mistakes from a manual conflict resolution during rebase on master
2021-08-13 12:51:34 -06:00
4a43f5aa0b
newly-added InternalReturn processor requires a time domain (post-rebase on master)
2021-08-13 12:51:34 -06:00
cffc25a11c
libtemporal: make TempoMap::metric_at() variants use all Points, to account for music time points as well as explicit tempo/meter points
2021-08-13 12:51:34 -06:00
c2401c3097
libtemporal: redesign TempoMap::get_grid() to iterate over _points rather than separated _tempos and _meters
2021-08-13 12:51:34 -06:00
8124bec5a1
libtemporal: fix XML node structure for MusicTimePoint
2021-08-13 12:51:34 -06:00
1035f9bd62
libtemporal: fix crash caused by thinko
2021-08-13 12:51:34 -06:00
388fa1b894
libtemporal: when removing tempos/meters/musictime points, remove them from TempoMap::_points also
2021-08-13 12:51:34 -06:00
982ccec7ab
libtemporal: when adding tempos/meters/musictime points, add them to TempoMap::_points also
2021-08-13 12:51:34 -06:00
b43eca15b0
Revert "libtemporal: the TempoMap::_points list serves no purpose, so remove it"
...
This reverts commit edc93fc62b6a36949b3cc37aee333904bc6b97f0.
2021-08-13 12:51:34 -06:00
d6d0eb0d9e
libtemporal: MusicTimePoint now IS-A Point,Tempo and Meter, all at once
2021-08-13 12:51:34 -06:00
cc0d065443
libtemporal: preparations to solve upcoming diamond inheritance problem
2021-08-13 12:51:34 -06:00
4e6c06bc95
libtemporal: add maybe-not-required operator>> for timeline types
2021-08-13 12:51:34 -06:00
4aa7e21e12
remove declarations and one call to methods removed in master (lld(1) failed to pick this up; ld(1) does)
2021-08-13 12:51:34 -06:00
cf0ad83f05
extra debug output to track down deep(er) issues in the TempoMap
2021-08-13 12:51:34 -06:00
12454f0a96
fix delivery of music time to LV2 plugins
2021-08-13 12:51:34 -06:00