Commit graph

18165 commits

Author SHA1 Message Date
Paul Davis
0acc1a3fec temporal: use correct implementation of timepos_t::operator+ (timecnt_t) (and +=)
If time domains differ, it is necessary to first convert the argument duration into a duration
at the position of "this", in the correct time domain. Then we recursively call the operator
again, but this time we will use the fast path that just adds two timepos_t values.
2021-10-04 17:45:02 -06:00
Robin Gareus
5925ee0b7c
Prevent processing until buffersize change is complete
This fixes async callback from CoreAudio via
AudioDeviceAddPropertyListener. Apparently in rare cases it can
happen that the property listener calls back concurrently with
processing on M1 machines using Rosetta.

https://pastebin.com/upvc9LTc Thread 44 vs. Thread 32

May also be caused by plugin(s) taking a long time to
change buffersize. Processing continues even though the
buffersize callback has not yet completed.

PS. I have not been able to reproduce this on an Intel
machine, even with excessive buffersize changes. However
since buffersize changes cannot (usually) happen concurrently
with processing, taking the lock is reasonable.
2021-10-04 22:30:08 +02:00
Robin Gareus
e2efb698e0
VST3: fix discrete parameters
Some plugins have a min/max range of 1, for stepwise enumerated
values of a control. e.g. waves maps note-names this way.
https://discourse.ardour.org/t/106429/
2021-10-04 17:07:53 +02:00
Robin Gareus
877f56e575
Add Lua binding for ParameterDescriptor::rangesteps 2021-10-04 17:07:53 +02:00
Paul Davis
5caed9b0a6 trigger: add method to get position while playing as a fraction 2021-10-03 22:44:03 -06:00
Paul Davis
a1699ff612 canvas: size_allocate() from GTK gives origin in parent coordinates.
Convert to canvas-relative origin when passing to root group for allocation
2021-10-03 19:47:18 -06:00
Paul Davis
e670acbb0d canvastable: fix logic error in ::compute_bounding_box()
Since the bbox is determined by ::compute(), do not unconditionally clear it here
2021-10-03 16:46:25 -06:00
Paul Davis
747a49006c canvastable: finish comment 2021-10-02 17:45:43 -06:00
Paul Davis
a8cc0be45c canvastable: change some variable names; don't add per-col/row spacing twice 2021-10-02 17:09:01 -06:00
Paul Davis
df5699b03e canvastable: fix comment to reflect split row/col homogeneity 2021-10-02 16:24:04 -06:00
Paul Davis
8130d265fd canvas table: separate out row & col homogeneity 2021-10-02 16:19:49 -06:00
Paul Davis
590866f8c1 canvas table; move computation of bounding box 2021-10-02 16:19:49 -06:00
Paul Davis
88443586ef canvas table: clean up attach API; improve comments; move use of padding.right outside loop 2021-10-02 16:19:49 -06:00
Paul Davis
c550a400b1 triggerbox: more properties 2021-10-01 18:39:06 -06:00
Paul Davis
cc09576ef5 canvas table: dramatic fixes/extensions of table packing algorithm 2021-10-01 18:38:18 -06:00
Paul Davis
e265b27f5d triggerbox: add quantization property and notify on changes 2021-09-29 18:00:55 -06:00
Paul Davis
0e779fbec9 canvastable: if a cell is empty, still adjust horiz/vert coordinates so subsequent cells are aligned 2021-09-29 11:20:50 -06:00
Paul Davis
378e4e7a03 canvastable: fix typo that led to mis-sized table (row/col mixup) 2021-09-29 11:20:50 -06:00
Paul Davis
27ca49efd3 canvas: generic Item::_size_allocate() must adjust allocated space to parent-relative coords 2021-09-29 11:20:50 -06:00
Paul Davis
542424e27d triggerbox: minor fixes to get properties working more correctly 2021-09-29 11:20:50 -06:00
Robin Gareus
ed3d374f47
Fix --no-nls compilation 1/2 -- #8802
pbd/i18n.h MUST NEVER be included from header files and always be
the last include. This is because `_` is declared other headers
notably boost and some apple headers.

leading to issues like
../libs/pbd/gettext.h:58:27: error: expected unqualified-id before ‘const’
   58 | # define gettext(Msgid) ((const char *) (Msgid))
2021-09-27 16:28:44 +02:00
Paul Davis
2000bc6ea0 triggerbox: add use_follow and start using actual Properties for trigger properties 2021-09-26 21:59:15 -06:00
Paul Davis
cc6c0f1263 there is no Properties::position any more
Position is a part of a length property (a duple specifying
"duration AT position", and there is no distinct property
for just the position itself.
2021-09-25 16:49:51 -06:00
Paul Davis
64db1367bb Change name of Stateful::apply_changes (PropertyBase) to the singular form.
Makes it slightly easier to read+parse what is happening. Yes, for a
Sequence property, the call could apply several changes, but overwhelmingly
it is used to apply a single change.
2021-09-25 16:49:51 -06:00
Paul Davis
30a00c5e9f Fix implementation of timecnt_t::operator==() to compare both duration and position 2021-09-25 16:49:51 -06:00
Paul Davis
43c7a39f18 Additional removal of a PropertyTemplate::call() site 2021-09-25 16:49:51 -06:00
Paul Davis
2ed1bdd243 Remove PropertyTemplate::call() and replace with code that uses ::set()
This makes undo/redo work correctly.
2021-09-25 16:49:51 -06:00
Robin Gareus
5287bbb31e
Fix horiz meter expose 2021-09-25 00:01:23 +02:00
Robin Gareus
1c34a3dcbb
Add missing includes 2021-09-25 00:01:23 +02:00
Robin Gareus
e165e92268
Remove annoying debug message 2021-09-25 00:01:23 +02:00
Paul Davis
368e98336f gtkmm2ext: if a CairoWidget is used in the canvas, we do not need to realize the Gtk::EventBox
This may be a breaking change, but seems ok from superficial testing.
2021-09-23 11:48:29 -06:00
Paul Davis
d07436b15d canvas: much more work on table layout 2021-09-23 11:48:29 -06:00
Robin Gareus
5a1201f05b
Fix duplicate libs 2021-09-19 23:39:51 +02:00
Robin Gareus
29f96ad13e
Fix cross-compile (undefined references for canvas-tests) 2021-09-19 23:38:44 +02:00
Robin Gareus
5fb54c008d
Fix shortcut display in editor tooltips #8798
After the editor is attached as tab to the main window,
looking up keyboard bindings using get_toplevel() no longer
works.

This uses the widget-hierarchy just like ARDOUR_UI does.
2021-09-19 18:46:06 +02:00
John Emmas
666e62076c Part 2: Complete the changes needed to make 'boost::intrusive::list' work with MSVC
It turned out that 'boost::intrusive::list_base_hook<>' won't compile if its parent class is declared using '__declspec(dllexport)' - so rather than exporting each entire class, let's use the alternative approach and export the various class members individually.
2021-09-18 13:40:22 +01:00
Paul Davis
47f7958714 canvastable: remove unused vars; rename others 2021-09-17 14:36:09 -06:00
Paul Davis
44b1cea54a canvastable: minor optimization 2021-09-17 12:53:16 -06:00
Paul Davis
59c8b99fee canvastable: remove rows/cols members, reuse ::compute() for ::size_request() 2021-09-17 12:51:26 -06:00
Paul Davis
98e0ad901a canvas: significant design changes and implementation fixes for Table 2021-09-17 12:34:13 -06:00
Robin Gareus
e5599d1c85
Fix div/zero, allow switching backends
This is another attempt replacing 1288262ca7,
which performs better.
2021-09-15 17:52:59 +02:00
Robin Gareus
cb81b06a5d
Revert "Fix div/zero, allow switching backends"
This reverts commit 1288262ca7.
2021-09-15 17:52:53 +02:00
John Emmas
840e63e6b2 Prefer tags for 'boost::intrusive::list' rather than list_member_hook<>
list_member_hook<> is very troublesome in MSVC and is known to cause problems in other compilers when used inside a class which has a virtual base class.
2021-09-15 09:28:54 +01:00
Paul Davis
999fe54ab8 canvas: a few variable cleanups in Table and more use of for (auto ..) 2021-09-14 22:39:59 -06:00
Paul Davis
6aaba192a0 canvas: improve computation of Table bounding box 2021-09-14 21:39:24 -06:00
Paul Davis
b3854c2e92 canvas: just use stack and size counter instead of std::vector<> 2021-09-14 21:22:56 -06:00
Paul Davis
1c42c733f7 canvas: remove use of Table::Index from API of Table::attach() 2021-09-14 21:18:44 -06:00
Paul Davis
c952c57a99 canvas: actually follow CSS conventions for 1/2/3/4 arguments in padding 2021-09-14 21:18:44 -06:00
Robin Gareus
5eee8bf1a3
Allow to change process graph while auditioning
This fixes an issue with adding/removing tracks while auditioning.

Session::remove_routes() calls Graph::clear_other_chain(),
which will block until the graph chains have been swapped.
2021-09-15 04:03:18 +02:00
Paul Davis
473ef54614 canvas: fix initialization of FourDirections object 2021-09-14 18:49:41 -06:00