Commit graph

643 commits

Author SHA1 Message Date
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
Paul Davis
5a0969a5c2 Temporal: remove last bit of floating point API from timepos_t 2021-08-13 12:51:28 -06:00
Paul Davis
9fe9658e8a Temporal: add clarifying comment 2021-08-13 12:51:28 -06:00
Paul Davis
ead17ed35c Temporal: add ratio_t type (currently boost::rational<int64_T> 2021-08-13 12:51:28 -06:00
Paul Davis
b1271a491e Temporal: add TempoMap::use() which returns the per-thread ptr-to-tempo-map without updating the pointer 2021-08-13 12:51:28 -06:00
Paul Davis
7446de72b1 Temporal: improve timepos_t::distance() implementations 2021-08-13 12:51:28 -06:00
Paul Davis
2c69a1425f Temporal: fundamental changes to get timeline.cc to compile 2021-08-13 12:51:28 -06:00
Paul Davis
35d0519109 make superclock_t signed, to match signedness of int62_t 2021-08-13 12:51:28 -06:00
Paul Davis
f4490f54c5 change Timecode::BBT_Time to use Temporal namespace, plus a couple of other minor changes to enable compilation
This still uses the tempo map object in libs/ardour, not the new one in libs/temporal, and isn't likely to be functional
(though it could be)
2021-08-13 12:51:28 -06:00
Paul Davis
9abf90c9d5 add the new timepos_t/timecnt_t header 2021-08-13 12:51:28 -06:00
Paul Davis
a80960468d first pass at integrating nutempo v1 with new 64 bit superclock/ticks representation
This compiles libtemporal, but nothing more
2021-08-13 12:51:28 -06:00
Paul Davis
e0b5b12129 basic work on a Tempo object that avoids (almost) all floating point arithmetic
Basic conversions between superclock and Beats are provided
2021-08-13 12:51:28 -06:00
Paul Davis
4dc048b28a update Temporal::Beats to merge master/nutempo versions, notably with private from-double constructor
This is the libraries-only edition. It still features liberal use of Beats::from_double() but this is now
explicit and will be easier to locate the calls and remove them. Several classes that were using
Beats::to_double() have been (temporarily) made friends of Beats to allow them to keep using it,
pending the much more widespread redesigns of several structures. Once this is done, the friend
relationships can (mostly) be removed. It is expected the ARDOUR::Variant will need to continue
as a friend because it is used to pass beat counts to LV2 as doubles
2021-08-13 12:51:28 -06:00
Paul Davis
617fcd660c add operator% and operator%= to Temporal::Beats (taken from nutempo) 2021-08-13 12:51:27 -06:00
Paul Davis
c41c622b37 another BBT comparator fix 2021-08-13 12:51:26 -06:00
Paul Davis
be831c6870 fix logic error in BBT_Time::operator>= 2021-08-13 12:51:26 -06:00
Hector Martin
4b9e46f11d Fix normalization in Temporal::Beats for times between -1 and 0 beats
Also fix normalization of times with negative beats and positive ticks
2020-11-18 13:40:31 -07:00
John Emmas
754f9bba0c Further change needed for 'libtemporal' 2020-05-29 12:28:13 +01:00
John Emmas
1d23e18efe Initial vcproj changes for building Ardour6 / Mixbus6 with MSVC 2020-05-29 08:33:33 +01:00
Paul Davis
70e27e0bf2 fix Beats::operator-() 2020-04-16 21:38:33 -06:00
Robin Gareus
bca825e515
NO-OP: whitespace 2020-01-14 00:52:24 +01:00
Paul Davis
8b3e7fea37 fix Temporal::Beats::operator* 2019-12-18 18:00:53 -07:00
David Robillard
8ec3e5fb54 Fix deprecated-copy warnings
It's long been a guideline (and IIRC a Weff-c++ warning) that either all, or
none, of the copy methods should be defined, but this became a standard warning
in GCC9.  Presumably to account for a later language change though I'm not sure
which.

I don't remember why the ChanMapping copy constructor can't just be a simple
copy (it's just a map of POD), but figure it's safer to just copy what that
does.
2019-12-09 23:25:59 +01:00
Robin Gareus
ecc2597870
Fix remaining doxygen warnings (!) 2019-09-30 21:03:29 +02:00
Robin Gareus
bfec73b8c3
NO-OP: whitespace, indent 2019-09-30 21:03:20 +02:00
Robin Gareus
0301c47f6b
Update core library GPL boilerplate and (C) from git log 2019-08-03 15:53:17 +02:00
Paul Davis
8ed33f1bc7 remove use of hardcoded -fPIC compiler flag, and use compiler flag dict instead 2018-10-14 22:06:11 -04:00
John Emmas
9506a294c7 Adapt our remaining MSVC projects for 'boost::atomic' (in case it later gets extended to the other libs)
Stage 1 of 3 (more to follow)
2018-09-30 08:56:12 +01:00
John Emmas
79f01bc889 Initial changes needed for building Mixbus (with MSVC) as version 5
(Mixbus itself will probably need extra changes)
2018-09-10 07:14:59 +01:00
John Emmas
b9c9777b9a When building with MSVC, allow for the fact that Mixbus and Ardour can be using different versions of the SESSION_FILE format 2018-02-15 09:03:32 +00:00
Paul Davis
9a20433d98 fix definition of Temporal::Beats::max()
Ticks can exceed PPQN, but if beats are already INT32_MAX, ::normalize() will not work correctly
2018-02-12 11:44:37 -06:00
John Emmas
b2032938b1 Accommodate newly added/removed source(s) in our MSVC project (libtemporal) 2017-09-28 12:27:54 +01:00
John Emmas
657ba64ad2 Rename 'libs/temporal/MSVCtemporal/timecode.vcproj' to 'libs/temporal/MSVCtemporal/temporal.vcproj' 2017-09-28 12:27:54 +01:00
John Emmas
2750f7f485 Rename 'libs/temporal/MSVCtimecode' to 'libs/temporal/MSVCtemporal' 2017-09-28 12:27:53 +01:00
Paul Davis
61be0990fa change libtemporal to be versioned like all others 2017-09-25 12:13:54 -04:00
Paul Davis
dcb55c508e additional changes to follow library name change from timecode -> temporal 2017-09-25 12:13:54 -04:00
Paul Davis
7db12f6b12 convert codebase to use Temporal for various time types 2017-09-24 12:03:54 -04:00
Paul Davis
9283bee867 new header file for audio-based time types 2017-09-24 12:03:13 -04:00
Paul Davis
48d402c960 part two of initial libtemporal creation 2017-09-24 10:48:00 -04:00
Paul Davis
b62c305f20 change libtimecode to libtemporal, add Evoral::Beats, positional types and superclock headers 2017-09-24 10:47:28 -04:00