When processing multiple regions, apply results at the end, so that
when the action is canceled, no changes are applied.
Furthermore, do not commit an undo-command if time-stretch is a no-op.
If it defines local versions, we can end up with two (different) bindings for the same action, one
in global scope, one when MonitorSection has key focus. Bad.
Undo/Redo allows to change a region's envelope without the envelope-list
changing (AutomationList::StateChanged is not emitted).
This also catches other operations where region-length can change while
the Envelope is visible. -- Normally when using the range or object tool
to modify a Region, the Envelope is not visible.
Without this change it was possible that the GUI shows automation
points that don't have a corresponding libardour representation:
e.g. select range, change tool to "draw", press "s" (split), undo,
click on any region-gain point.
* Both the session-start and session-end point should follow the is-free option
* Rename the end-is-free option to session-range-is-free, to reflect that change
* This fixes the problem: recording before the start marker would move the Start,
even if the user had already fixed the End marker.
* When splitting in MouseObject, entered_region should get priority over selected regions.
This fixes the unexpected case where you try to split an unselected a region, but
a) nothing happens OR
b) some other region (maybe off-screen) is split
* Range mode now has its own option for splits, which can be:
Clear: the selection is cleared.
Preserve: the selection is left as-is. (default)
Force: all the regions that resulted from the split are selected (forcing a tool change).
* Un-hid the additional config options to select only the regions BEFORE or AFTER a split.
* Note: splits made with Cut Tool should be unaffected by these changes.
This fixes an issue on MacOS/X to only show non-root volumes in
the file-open dialog. They're just as valid for save-as, export, video
files etc.
In case of a 2nd internal disk, it is also a valid choice as default
folder for new sessions.
Only update MIDI devices list, which can be dynamic. Audio devices
which are in-use can't be updated, and the GUI may no longer show
the current device (since it is in use).
OptionPitchHighQuality - Use the highest quality
method for pitch shifting. This method has a CPU cost
approximately proportional to the required frequency shift