Paul Davis
9c2e4ec6d2
libtemporal: fix timepos_t::set_time_domain()
...
For legacy reasons, this was going via a sample intermediate representation
2021-08-13 12:51:36 -06:00
Paul Davis
e7cdca1ea2
remove some debug output
2021-08-13 12:51:36 -06:00
Paul Davis
8bada4b5e1
remove public ::bbt_at (INTEGER) methods, because of superclock_t/samplepos_t confusion
...
libtemporal still needs ::bbt_at (superclock_t) fairly often so retain it as a private method, but public
interfaces take either Beats or timepos_t
2021-08-13 12:51:35 -06:00
Paul Davis
092a454648
fix timepos_t::string_to (wrong argument to samples_to_superclock()
2021-08-13 12:51:35 -06:00
Paul Davis
445ad2e383
rearrange if/else logic to avoid NOTREACHED condition
2021-08-13 12:51:35 -06:00
Paul Davis
daad7b74ae
libtemporal: rename TempoMap::full_duration_at() to ::convert_duration() and reorder parameters
2021-08-13 12:51:34 -06:00
Paul Davis
c0c3fd07c9
libtemporal: add timecnt_t::end() and timecnt_t::set_time_domain()
2021-08-13 12:51:34 -06:00
Paul Davis
2049cc44b2
libtemporal: tweak: don't both with local tempo map ptr
2021-08-13 12:51:34 -06:00
Paul Davis
433a9ebe48
libtemporal: catch attempts to convert max audio time values into beats, early
2021-08-13 12:51:34 -06:00
Paul Davis
4e6c06bc95
libtemporal: add maybe-not-required operator>> for timeline types
2021-08-13 12:51:34 -06:00
Paul Davis
ce82efafcf
libtemporal: slightly improve output from conversion statistics
2021-08-13 12:51:34 -06:00
Paul Davis
25375ee6f4
add timepos_t::set_time_domain() to potentially change time domains
2021-08-13 12:51:33 -06:00
Paul Davis
016aada4df
libtemporal: fix/improve/correct parsing of timecnt_t from string
2021-08-13 12:51:32 -06:00
Paul Davis
d165c492af
temporal: fix/simplify/improve parsing of time values from strings
2021-08-13 12:51:32 -06:00
Paul Davis
209908f700
libtemporal: improve/fix implementation of timepos_t::operator+=(timepos_t)
2021-08-13 12:51:32 -06:00
Paul Davis
9438295607
libtemporal: fix implementation of timecnt_t::operator+ (timecnt_t)
2021-08-13 12:51:32 -06:00
Paul Davis
80986b9445
libtemporal: add (commented) debug output for timepos_t::distance() methods
2021-08-13 12:51:31 -06:00
Paul Davis
6fe4394c54
fix parameter name in comment
2021-08-13 12:51:31 -06:00
Paul Davis
df0ac42f54
Temporal: cleanup for explicit Beats::operator bool()
2021-08-13 12:51:31 -06:00
Paul Davis
43d84620e0
Temporal: clean up API to remove ambiguity about ::quarter*_at_*
...
superclock_t and samplepos_t have the same underlying C++ type, so methods that accept one or the
other as an argument need to be named to make it clear which type they accept. We do not need
the superclock_t variant publically, but it turns out to be useful within TempoMap.
2021-08-13 12:51:31 -06:00
Paul Davis
c3d325b56a
Temporal: clean up API for timepos_t to remove unneeded duplicates and remove ambiguity
2021-08-13 12:51:31 -06:00
Paul Davis
5887ee524e
Temporal: further improvements to a timepos_t::distance() method
2021-08-13 12:51:31 -06:00
Paul Davis
7c56b9b2fc
Temporal: fix insanely incorrect implementation of timepos_t::distance()
2021-08-13 12:51:30 -06:00
Paul Davis
def35cf043
mark BBT_Offset (double) constructor explicit to avoid implicit conversion in timeline expressions.
...
Also clean up the mess this had caused.
2021-08-13 12:51:30 -06:00
Paul Davis
f0008898af
add operator<<() for timecnt_t()
2021-08-13 12:51:30 -06:00
Paul Davis
b876baa757
Temporal: various changes to arithmetic/logic methods to avoid assert() on domain mismatches where none is really needed
2021-08-13 12:51:30 -06:00
Paul Davis
cdab3a5e8f
fix a bunch of missing symbols related to temporal
2021-08-13 12:51:29 -06:00
Paul Davis
8fb70885ec
changes needed to get audio_clock.cc to work
2021-08-13 12:51:29 -06:00
Paul Davis
bca8e2e8cc
libtemporal: changes derived from converting libardour
2021-08-13 12:51:28 -06:00
Paul Davis
f06e2dd6d1
Temporal: remove constructors accepting scalar values from timepos_t/timecnt_t and force use of factory methods
...
This allows us to differentiate between superclock_t and samplepos_t (and related types) which are all typedef'ed to the
same underlying primitive C++ type. Without this, it would be impossible for the compiler or someone reading the code
to know whether a scalar passed to a constructor for a timeline type is in units of samples or superclocks
2021-08-13 12:51:28 -06:00
Paul Davis
c75fc64306
Temporal: various changes to int62_t and timeline types based on code review
2021-08-13 12:51:28 -06:00
Paul Davis
b5bf518a0a
Temporal: fixes, changes, redesigns, extensions to be able to compile ARDOUR::Region with timepos_t/timecnt_t members
2021-08-13 12:51:28 -06:00
Paul Davis
56795a97a3
changes required to get ardour to start up (missing vars, incorrect values)
2021-08-13 12:51:28 -06:00
Paul Davis
1f0d9159a7
Temporal: use, don't fetch tempo map pointer
2021-08-13 12:51:28 -06:00
Paul Davis
8ec81c2308
Temporal: correctly construct return timepos_t for * and /
2021-08-13 12:51:28 -06:00
Paul Davis
e89d727939
Temporal: remove the final #warning from timeline.cc
2021-08-13 12:51:28 -06:00
Paul Davis
b87c855240
Temporal: add string_to/to_string methods for timecnt_t
2021-08-13 12:51:28 -06:00
Paul Davis
974196b7d2
Temporal: add timeline.cc
2021-08-13 12:51:28 -06:00