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
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
c043156089
new header with an efficient implementation of integer division-rounding-to-nearest
2021-08-13 12:51:28 -06:00
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
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
068cace22c
fix semantics of Playlist::find_prev_region_start()
2021-08-13 12:51:28 -06:00
7e3b22e519
add Playlist::find_prev_region_start()
2021-08-13 12:51:27 -06:00
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
3ab65dc62d
keep session range correct when rippling markers
2021-08-13 12:51:27 -06:00
78a9e29507
fix deadlock and direction error in Locations::ripple()
2021-08-13 12:51:27 -06:00
46fa558bc6
finalize removal of splicing code from ARDOUR::Playlist
2021-08-13 12:51:27 -06:00
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
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
2f11a49103
Add "Ripple All" edit mode to libardour
2021-08-13 12:51:27 -06:00
815abed5c5
alter API for playlist ripple callback, to provide required information
2021-08-13 12:51:27 -06:00
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
82bad0725a
libcanvas: reapply LineSet::add_line -> add_coord change after rebase conflicts with master
2021-08-13 12:51:27 -06:00
54de7c70ee
Canvas: print item colors in hex when debugging
2021-08-13 12:51:27 -06:00
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
dbe37d2752
Canvas: make possible even more debugging of constraint packing
2021-08-13 12:51:27 -06:00
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
1d96bad59f
Canvas: remove cBox (API fully merged into ConstraintPacker)
2021-08-13 12:51:27 -06:00
1b66890547
Canvas: continuing move of cBox functionality into ConstraintPacker
2021-08-13 12:51:27 -06:00
4e82279ce4
Canvas: next step of merging cBox and ConstraintPacker
2021-08-13 12:51:27 -06:00
af60c50990
first steps in merging cBox into constraint packer
2021-08-13 12:51:27 -06:00
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
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
3c2bd05750
Canvas: remove debug output
2021-08-13 12:51:27 -06:00
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
9909917976
Canvas: remove unnecessary and conflicting enum
2021-08-13 12:51:27 -06:00
2e4d228f54
manual fixes for constraint-packer -> newbbgui merge
2021-08-13 12:51:27 -06:00
2b39c5e0f0
fix header file rename that happened since this branch was last worked on
2021-08-13 12:51:27 -06:00
1dcf797311
probably fix compilation with newer Boost::Rational library
2021-08-13 12:51:27 -06:00
5c886ecb6e
export step sequencer pattern to SMF
2021-08-13 12:51:27 -06:00
617fcd660c
add operator% and operator%= to Temporal::Beats (taken from nutempo)
2021-08-13 12:51:27 -06:00
93d2f6f433
remove debug output
2021-08-13 12:51:27 -06:00
b18aaf0c7c
Rectangle border/sizing behaves like CSS border-box
2021-08-13 12:51:27 -06:00
27919fec61
items should not round their bounding box when requesting a redraw
2021-08-13 12:51:27 -06:00
9c071cd6ef
Canvas::queue_draw_item_area() now expands the passed-in rect appropriately
...
This means that a request to (re)draw the Rect (0.5,0.5,9.5,9.5)
will actually generate an expose event for (0,0,10,10)
Note: the above rects are of the form (x0,y0,x1,y1)
2021-08-13 12:51:27 -06:00
35a9bcc409
add Rectangle::size_request() which returns actual rectangle size, not bounding box
2021-08-13 12:51:26 -06:00
a9c2e2f7e5
expose step sequencer's step's index
2021-08-13 12:51:26 -06:00
60f3985957
replace push2 call to Canvas::Box::pack_start() with Canvas::Box::add() which is equivalent
...
::pack_start() was removed
2021-08-13 12:51:26 -06:00
210702481b
add required virtual method to Push2Canvas
2021-08-13 12:51:26 -06:00
12b4807bc9
add a very (very) basic resize/layout design to the canvas
...
Items call ::queue_resize(), which sets a flag in the canvas; at next idle, we call
Canvas::layout() which walks the item tree and recursively calls layout (depth first)
on all items needing a resize.
Only Container types implement layout, and so far only Box
2021-08-13 12:51:26 -06:00
03e32a22d0
make Item::add() virtual
2021-08-13 12:51:26 -06:00
2ae616bf44
fix incorrect location of step sequencer request object "deletion" (really: pool return)
2021-08-13 12:51:26 -06:00
1edcc3d279
remove debug output
2021-08-13 12:51:26 -06:00
c9e4d3f045
alter note off handling in step sequencer to be global to the whole sequencer
2021-08-13 12:51:26 -06:00
eb139acab6
change API to adjust note timing
2021-08-13 12:51:26 -06:00
aceec18510
adjust StepSequence API(s) to meet needs
2021-08-13 12:51:26 -06:00