Previously this was semi-random, on_size_request() may be called
in response to some other widget changing size, before a given
ArdourButton DPIReset handler could set _diameter = 0.
* Fix copy/edit bug: `get_last_capture_sources` cleared
last capture sources. tagging a take made its removal
impossible.
* `remove_last_capture` also directly modified capture
sources by reference in calling thread.
* get_ prefix violates styleguide #12
This prevents accidental deletes of files saved to disk
after the fact. e.g.
* save, delete last capture, quit w/o save.
* save, switch-snapshot, delete last capture.
This forces the length of AudioRegions to be an integer number of samples. It is intended
to fix a set of bugs that occur when using music time as the session time domain
and carrying out editing operations that would otherwise lead to audio regions
whose length involves fractional samples.
It is perfectly legal to specific audio distances that include fractional samples,
but there is no reason for any audio region to ever have such a length (we think).
Quantizing superclocks to samples in libtemporal negates the whole purpose of superclocks,
and breaks a variety of things, not limited to moving forward to markers and the grid
extern here is literally C `extern`, not DLL exported functions,
see libs/tk/ztk/ztk/atkversion.h
```
#ifndef _ATK_EXTERN
#define _ATK_EXTERN extern
#endif
```
There can never be fractional audio time, and since superclock_t is used to represent audio time, when we
convert from Beat time, we should never, ever return a superclock value that does not correspond to
an integer number of samples.
This fixes a number of bugs, including any use of ARDOUR::Filter which writes a new (audio) file
to disk that must be an integer number of samples long, but may be derived from and later used
by a region that had an audio-time duration that is slightly longer (less than one sample)
than the audio file