... but still disallow it for .aup3 files.
The fix is a simple moving of the check for a FAT filesystem after several
other checks that distinguish types of imported files.
Break the workflow into smaller stages (Configure, Build, Install,
Package, etc.) so that you can see exactly which stage failed in the
GitHub Actions run log.
Create a separate Bash CI script for each job stage (configure.sh,
build.sh, install.sh, package.sh, etc.) to reduce the size of the main
YAML workflow file and enable Bash syntax highlighting.
Close#917
a) Fixed root cause, which is conversion of a
negative integer to a large unsigned, leading to
a very tall track.
b) Improved mitigation (in projects that already
have over tall tracks) by setting a smaller minimum
for the allowed size.
The root cause of the bad track height hasn't been tracked down
yet. It may be related to collapsing tracks as it was first seen with
all tracks collapsed.
... A call graph browser easily shows that the extra generality of fetching
samples in some other format is only used in Benchmark -- where the format is
always the same as what the track is constructed with.
This makes re-verification of the claims in comments two commits ago easier.
... incidental to a review of CopySamples in it. This code is used only when
importing an old-style .aup project file into the new project format.
Fixed some RAII for file handle.
Rewrote every call to IsGoodInt or IsGoodInt64 with a narrowly scoped temporary
variable.
Use IsGoodInt64 only for total track lengths and positions; but use IsGoodInt
for block and blockfile sizes, which are not supposed to be huge but are
supposed to fit in memory buffers.
... See allocation of RingBuffers in AudioIO.
Playback buffers always used floatSample format so this change has no
effect on them.
But we also want no extra dithering applied during recording, where the capture
format might be narrower than float.
.. Call the function SamplesToFloats instead, or in one place, where source
is also always float, just do memcpy.
Dithering never happened in these cases.
... the former uses Prefs, wxApp, and AudacityMessageBox, the latter has no
dependency on them.
Also move some other functions from GUIPrefs into namespace Languages.