Commit graph

18433 commits

Author SHA1 Message Date
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
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
709df7a08f add operators for self-typed arithmetic 2021-08-13 12:51:28 -06:00
Paul Davis
cb78984c63 add new int62.h header, which implements a generic 62bit-int-plus-flagbit type 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
c043156089 new header with an efficient implementation of integer division-rounding-to-nearest 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
ecf2028c7a Revert "NO-OP: code formatting and cleanup, thanks clang-format"
Widespread minor changes cause conflicts when rebasing nutempo2; will
reapply formatting later.

This reverts commit 548db7a9a4.
2021-08-13 12:51:28 -06:00
Paul Davis
068cace22c fix semantics of Playlist::find_prev_region_start() 2021-08-13 12:51:28 -06:00
Paul Davis
7e3b22e519 add Playlist::find_prev_region_start() 2021-08-13 12:51:27 -06:00
Paul Davis
ac1d5bac0a improve rippling of marks to include any in the gap between the primary-dragged region and the one before it 2021-08-13 12:51:27 -06:00
Paul Davis
3ab65dc62d keep session range correct when rippling markers 2021-08-13 12:51:27 -06:00
Paul Davis
78a9e29507 fix deadlock and direction error in Locations::ripple() 2021-08-13 12:51:27 -06:00
Paul Davis
46fa558bc6 finalize removal of splicing code from ARDOUR::Playlist 2021-08-13 12:51:27 -06:00
Paul Davis
43c713d0ef we removed Splice mode from the GUI 7 years ago; now remove all code related to Splice mode 2021-08-13 12:51:27 -06:00
Paul Davis
a2b3e31e10 libardour: remove ripple callback API, and fix deadlock issues with ripple/ripple_locked/ripple_unlocked/remove_gaps 2021-08-13 12:51:27 -06:00
Paul Davis
2f11a49103 Add "Ripple All" edit mode to libardour 2021-08-13 12:51:27 -06:00
Paul Davis
815abed5c5 alter API for playlist ripple callback, to provide required information 2021-08-13 12:51:27 -06:00
Paul Davis
447e80a247 add a callback argument to Playlist::ripple() so that the caller can arrange for a response after a single ripple
Also add Playlist::rdiff_and_add_command() to consolidate what is required to save
playlist state in an (undo/redo) Command
2021-08-13 12:51:27 -06:00
Paul Davis
82bad0725a libcanvas: reapply LineSet::add_line -> add_coord change after rebase conflicts with master 2021-08-13 12:51:27 -06:00
Paul Davis
54de7c70ee Canvas: print item colors in hex when debugging 2021-08-13 12:51:27 -06:00
Paul Davis
86a31e34ba Canvas: fix recursive calling of Item::size_allocate()
ConstraintPacker is the one Item-derivative that should NOT call Item::size_allocate_children()
because it just did the size computation for its children and called their
::constrained() method, which in turns calls size_allocate() with the correct size
2021-08-13 12:51:27 -06:00
Paul Davis
dbe37d2752 Canvas: make possible even more debugging of constraint packing 2021-08-13 12:51:27 -06:00
Paul Davis
f118b3ab53 Canvas: remove dangling cairo path in Arc or ConstraintPacker if fill was requested but not outline 2021-08-13 12:51:27 -06:00
Paul Davis
1d96bad59f Canvas: remove cBox (API fully merged into ConstraintPacker) 2021-08-13 12:51:27 -06:00
Paul Davis
1b66890547 Canvas: continuing move of cBox functionality into ConstraintPacker 2021-08-13 12:51:27 -06:00
Paul Davis
4e82279ce4 Canvas: next step of merging cBox and ConstraintPacker 2021-08-13 12:51:27 -06:00
Paul Davis
af60c50990 first steps in merging cBox into constraint packer 2021-08-13 12:51:27 -06:00
Paul Davis
860d43697c Canvas: propagate ::size_allocate() down the item tree
This previously wasn't done because of fear that it would affect the traditional fixed-sized canvas,
but only items that _layout_sensitive (i.e. are packed into a constraint packer directly) will
actually do anything in ::size_allocate().

Possibly might want to relax this to cover items that have a constraint packer between them
and a root group.
2021-08-13 12:51:27 -06:00
Paul Davis
28f85747ca Canvas: fix behavior of Rectangle when used in a constraint packer
::size_allocate() sets the _position *and* the "self" rect appropriately
2021-08-13 12:51:27 -06:00
Paul Davis
3c2bd05750 Canvas: remove debug output 2021-08-13 12:51:27 -06:00
Paul Davis
fa2885d2d6 Canvas: do not fill containers by default (added during constraint packing work; badly affects the regular canvas) 2021-08-13 12:51:27 -06:00
Paul Davis
9909917976 Canvas: remove unnecessary and conflicting enum 2021-08-13 12:51:27 -06:00
Paul Davis
2e4d228f54 manual fixes for constraint-packer -> newbbgui merge 2021-08-13 12:51:27 -06:00
Paul Davis
2b39c5e0f0 fix header file rename that happened since this branch was last worked on 2021-08-13 12:51:27 -06:00
Paul Davis
1dcf797311 probably fix compilation with newer Boost::Rational library 2021-08-13 12:51:27 -06:00
Paul Davis
5c886ecb6e export step sequencer pattern to SMF 2021-08-13 12:51:27 -06:00