Paul Davis
00d4765b57
gtkmm2ext: move initialization of CairoWidget members into initializer context
2021-09-10 13:03:57 -06:00
Paul Davis
9f0f1f1772
gtkmm2ext: when calling ::get_width()/get_height() on a cairowidget, if allocation is zero, use widget size
2021-09-10 13:03:32 -06:00
Paul Davis
d50693b97d
cnavas: add lots more debug traces to box, and an explanatory comment
2021-09-10 13:02:01 -06:00
Paul Davis
107ff8466a
canvas: box should not try to reposition children for a zero-sized allocation
2021-09-10 13:01:26 -06:00
Paul Davis
63a74d0911
Canvas: improve behavior of Widget::compute_bounding_box()
...
Firstly, ::compute_bounding_box() cannot allocate space, so do not try to do that here.
Secondly, if there is no allocation yet, use the CairoWidget's own size_request()
2021-09-10 12:59:29 -06:00
Paul Davis
be461e95e1
canvas: remove debug output
2021-09-10 12:57:43 -06:00
Paul Davis
4806e10aa1
session: wrap undo history loading in catch/try to avoid throwing errors to glibmm
2021-09-10 12:15:24 -06:00
Paul Davis
1904c4aa29
temporal: fix operator>> for Beats when handling pre-nutempo formats (double)
2021-09-10 12:15:24 -06:00
Paul Davis
300ca3124b
canvas; temporarily resurrect ConstraintPacker interactive tests
2021-09-10 12:15:24 -06:00
Paul Davis
494bc8da14
canvas: add ::set_size_request_to_display_given_text() analogous to Gtkmm2ext utility
2021-09-10 12:15:24 -06:00
Paul Davis
90322399fc
canvas: use fwd decl instead of header inclusion for CairoWidget
2021-09-10 12:15:24 -06:00
Paul Davis
4bbfc60126
add 2 new canvas debug bits
2021-09-10 12:15:24 -06:00
Robin Gareus
eb0498bb28
Overhaul ambiguous latency detection
...
Simply comparing connected latency min/max is insufficient
and allows for false positives.
get_connected_latency_range() reports private, uncompensated
latency for internal ports. In this case an additional test
is required to match it against the reported latency of
connected ports.
Since 13b8a9727bb05 remote connected ports now correctly
report latency for both internal as well as external ports.
2021-09-08 22:39:32 +02:00
Robin Gareus
6199d08f71
Add API to report I/O Latency
2021-09-08 22:39:32 +02:00
Robin Gareus
f301e692a7
Expose compensated port-latency, fix ambig. latency detection
...
Previously Ardour only announced processor latency.
Routes that had additional latency to compensate for those
have not published this delay.
This is of no concern with internal backends, however with JACK,
Ardour reported incorrect *individual* port-latencies of
routes that perform PDC.
Since public port latency now includes delay-compensation,
some extra work is required to unset it before recalculating
latency of paths that include external ports.
2021-09-08 22:39:32 +02:00
Robin Gareus
c342e4bfa9
Add API to announce managed MIDI port latency
...
Since Ardour implements jack latency callback, Arodur
is responsible to the set latency of those ports.
2021-09-08 22:39:32 +02:00
Robin Gareus
1978d3723e
Fix latency debug messages
2021-09-08 22:39:31 +02:00
Hector Martin
d4b0090850
Cache the absence of ffmpeg_harvid
...
Without this, absence of the transcode tool causes it to be searched for
for every entry in the file picker.
2021-09-07 04:33:07 +02:00
Paul Davis
50b01732fd
midi buffer handling: fix some logic errors in dealing with MidiRingBuffer reads
2021-09-06 13:55:26 -06:00
Paul Davis
7932c9bde1
triggerbox: more behavioral improvements
2021-09-05 10:40:58 -06:00
Paul Davis
c2abde9199
triggerbox: closing in on a one-at-a-time design
2021-09-04 23:20:08 -06:00
Paul Davis
2cd88a67f1
triggerbox: start redesign based on only 1 trigger running at a time
2021-09-04 23:20:08 -06:00
Paul Davis
e057088195
remove unused, empty glib event source/callback code (was from an experiment during nutempo2 development)
2021-09-04 07:39:27 -06:00
John Emmas
dda7612479
A few visibility changes needed for linking to libpbd (when building with MSVC)
2021-09-04 12:35:44 +01:00
John Emmas
f6ed73986b
A few visibility changes needed for linking to libtemporal (when building with MSVC)
2021-09-04 12:28:15 +01:00
John Emmas
d7d966e02b
Adapt 'Temporal::TempoMap::tempo_map_p' to be buildable with MSVC
...
Whenever a variable gets declared using 'thread_local' MSVC requires that it should not be compiled with DLL linkage (i.e. it mustn't be exportable). So for Temporal::TempoMap we'll need to export the required members individually, rather than exporting the entire class.
2021-09-03 10:02:41 +01:00
Robin Gareus
c74f80caa4
NO-OP: clean up maths, remove extra brackets
...
This may also help due to huge xdelta numbers.
2021-09-02 20:45:30 +02:00
Paul Davis
8087bad9a0
triggerbox: create regions and sources using factories, and restore region in set_state()
2021-08-31 22:35:14 -06:00
Paul Davis
7dba843cb4
temporal: fix error in operator>> for BBT_offset
2021-08-31 22:33:33 -06:00
Paul Davis
dcfbdb482d
triggerbox: reload sessions containing triggerboxen
2021-08-31 19:03:32 -06:00
Paul Davis
af8be5e71d
triggerbox: restore state initial implementation (incomplete)
2021-08-31 18:36:16 -06:00
Paul Davis
a9d4668dee
triggerbox: state saving
2021-08-31 16:46:19 -06:00
Paul Davis
b46eaebb76
triggerbox: add enums to libardour enum decls
2021-08-31 16:46:14 -06:00
Paul Davis
4eda53c8c9
temporal: add to_string() converters for BBT_Offset
2021-08-31 16:45:44 -06:00
Paul Davis
51110a92d9
canvas: fix computation of Box bounding box
2021-08-31 13:21:12 -06:00
Paul Davis
584e5c5b45
triggerbox: various improvements, including legato support, state tracking
2021-08-31 11:53:24 -06:00
Paul Davis
3734277263
canvas: improve box packing - compute child dimensions more correctly
2021-08-30 17:40:06 -06:00
Paul Davis
b47fbc91e0
canvas: provide Rect::shrink () with four arguments
2021-08-30 17:39:39 -06:00
Paul Davis
2aa313eb4e
triggerbox: actually fully stop trigger when explicitly requested, rather than use follow action
2021-08-30 16:32:02 -06:00
Paul Davis
13a0f74ce4
triggerbox: add more debugging
2021-08-30 16:31:35 -06:00
Paul Davis
940f3022c1
prevent addition of events to a ControlList whose time-domain does not match the ControlList's own time-domain
2021-08-30 15:15:14 -06:00
Paul Davis
4fb3e24bd6
evoral: tentative fix for problems with Curve::multipoint_eval()
...
Now that we use superclock_t for audio time, it is possible for the square of an audio time value to overflow int64_t quite easily.
This change fixes that (and cleans up other code a little), but probably a different solution would be a good idea
2021-08-30 14:29:11 -06:00
Paul Davis
25093af986
triggerbox: fix uninitialized variable
2021-08-30 09:13:48 -06:00
Paul Davis
0699449f29
evoral: debugging curve errors
2021-08-30 09:04:27 -06:00
Paul Davis
4cef8c681c
evoral: fix for Curve coefficient computation
2021-08-30 09:04:27 -06:00
Nil Geisweiller
21c94b23f3
Make BBT_Time::print_padded const
...
As this method does not modify BBT_Time it can be const. This allows such
method to be called over a const BBT_Time instance.
2021-08-30 02:24:38 +03:00
John Emmas
2de2ab8f91
Use std::vector<Sample*> rather than a simple array
...
(for a simple stack-based array, MSVC requires that the size should be known at compile time)
2021-08-29 15:40:59 +01:00
John Emmas
d3cd621f7a
Initial changes needed for building libtemporal with MSVC
...
Later I'll need to push some extra changes (to support 'tempo_map_p' and 'boost::intrusive::list' etc) but these initial ones (hopefully!) won't cause any issues for the other builds.
2021-08-29 11:03:58 +01:00
Paul Davis
cd792f3713
avoid intermediate unnecessary shared_ptr
2021-08-27 17:25:51 -06:00
Paul Davis
fad71ce748
when creating new MIDI sources, be sure that we create a stub file on disk
...
These files will be removed at session close if they are still empty. Their existence prevents
collisions across snapshots and likely some other wierdness that relied on file existence for
various tests and conditions
2021-08-27 16:52:53 -06:00