This is mainly for the benefit of Mixbus, where input_latency
is not propagated upwards from the master bus (no direct
connection).
In Ardour's case _worst_input_latency >= _worst_route_latency
unless a given track with latent plugin is not connected.
Previously looping became out of sync (normal playback was not
affected) when a track had a latent plugin.
This reverts 00e35c48b6. Modal dialog does not
allow to change the color of the RouteGroup. Interaction
with the colorpicker was not possible.
See also 0db79b8023
Mute and Panner are the only automatable Route owned controls
(that are not managed by a processor). So they need special
casing to be moved when moving a region.
This replaces rule #17, 27, 43 and 59 on
https://manual.ardour.org/appendix/monitor-modes/
"Meter (What you see)" changes to 'Disk (Audio)'
aka "what you hear" in those cases.
This way "what you see" is always "what you hear".
Monitoring inputs is more conveniently done using
the Recorder Page.
The core selection can be (a) stripables (b) automation controls (c) possibly a combination of both
Any given selection op might pass (a) or (b) or (c), so we need to handle the
case where (a) is null.
By default timecode.rate = 30. When 30fps LTC is received,
::detect_ltc_fps() never returned true (FPS changed), and
the TransportMaster never entered "locked" stage.
This removes ::add_grouped_tracks() from Editor selection and
RouteProcessorSelection, since adding grouped stripables is now
a CoreSelection function, and should not be attempted by UI-side
elements
We now have two basic methods for CoreSelection
* when selecting a stripable, use ::select_stripable_and_maybe_group() with
appropriate arguments to cover the group selection aspects.
* when selecting an automation control that is part of a stripable, call
::select_stripable_with_control()
The old, more simply named methods (set/add/toggle etc.) have all been
made private, and their internal implementations changed somewhat.
This commit includes changes to control surfaces that use CoreSelection directly.
When moving the mouse fast it can happen that the resulting
position (note_qn + dx) becomes negative. Which causes
tempo-map ramp calculations to fail and the application aborts.
This is mainly for the benefit of CoreMIDI where MIDI
ports are identified by kMIDIPropertyUniqueID and ALSA
where Ardour uses a unique hash for persistent names.
In livetrax, where RF64 is one of two file formats, people frequently end up
with files named .rf64 that are actually .wav due to the libsndfile
header file downgrade. We want to avoid this, and this seems like
a more common case than people generating actual RF64 files that
(now) will be named .wav