Rather than 'cut' (i.e. drop, not cut as in 'cut preview') channels immediately, we now only do so
if their last gain was already 0.0. Instead they micro-fade out. Later when the channels come back,
their last gain will be 0.0, so they will micro-fade in.
A comment explains that the code would be cleaner if we just computed gains, and not whether to
drop channels.
This is simple parsing of the response from AUD-DO. The first part is the string message, the second 1 or NIL depending on if scripting reported OK or not. Note that illegal scripting options often don't produce a 'Failed' but are silently substituted with valid ones.
Allow generate type plug-ins spawned from Nyquist Prompt to create
a new track if none selected.
This commit also fixes preview in generators when there is no selection.
Since the move to wxWidgets 3.1.1, NVDA now reads the name of a wxStaticBox. So in this dialog, there is no longer the need for the accessibility name of the NumericTextCtrl to duplicate the name of the wxStaticBox.
1. The rate actually used by the sound card now sets the stopping sample number.
2. The tolerance in the 'stop position' is additionally trimmed to 20 samples.
... We need to start the polling of mouse state before starting the audio
stream, and not "nudge" AudioThread, so that AudioThread primes the ring
buffer correctly, not inserting some silence.
This requires yields to timer events in AudioIO::StartStream.
The Objective C++ syntax '[[' used in a couple of places (Mac only),
breaks the parser in kdevelop. As suggested by Paul, a space between the
brackets fixes the problem.
Also removed some trailing spaces.
Previously running a TrackPanelHasFocus effect from the Macros dialog could fail, because the menu item was disabled (because track panel did not have focus).
... Bug happened only when append-recording by pressing the toolbar button, not
by using a shortcut key; and the blank track did get drawn if you moused over
it or hid and showed the window.
Turns out TrackPanel::ProcessUIHandleResult did the needed update, which was
lacking otherwise. Now TrackList::UpdatePendingTracks is called in another
place.
... Do for release as was already done for click and drag: hold a shared
pointer.
This will protect against reentrancy surprises as in this bug, where a
reference to the handle may be removed during one of the handle's own
methods.
On launch, Audacity scanning the sound system causes Pulse to grab
exclusive control of the audio device, causing the device to be
unavailable until Pulse times out and releases it.
If an attempt is made to start recording from the hardware device (hw:)
immediately after launch, PortAudio will time out before the device is
released. In this case we need to retry opening the capture stream.
(This also applies to monitoring).