... Unnecessary because transitively included.
But each .cpp file still includes its own .h file near the top to ensure
that it compiles indenendently, even if it is reincluded transitively later.
Problem: With host set to WASAPI: if the playback position is less that about ten seconds before the end of any of the tracks and the user presses one of the left/arrow keys to seek, then a bug alert appears, and it's seems like it's impossible to recover from this.
libsoxr 0.1.3, first used in Audacity 2.3.0, crashes with constant rate resampling if you try to reuse the resampler after it has flushed.
Fix: work around which is the same as used for bug 1887 - recreate resamplers, rather than reusing them.
... This even makes it possible to remove the prohibition of undo and redo
during transport, not that we want to though. Playback and recording will
continue, using track objects that might not be in the current project.
- Dead code from experiments in SelectionBar removed.
- Many warnings about unused parameters fixed with WXUNUSED()
- Many warnings about signed / unsigned comparisons cleaned up.
- Several 'local variable declared but not used' warnings fixed.
... WAV format simply can't do that, others (FLAC, ogg, mp3) can and should
Some history:
This got broken very badly for an interim starting at
919d77d1760bab320ae963e1e54fc6e4981b6000.
Exported files were only tens of bytes!
This was broken differently after
ad04187a4122556c9a91ce1ac6d6a7cf3b4162ac with symptoms as in the bug report.
... whenever they really describe the size of a buffer that fits in memory, or
of a block file (which is never now more than a megabyte and so could be fit in
memory all at once), or a part thereof.
... A non-narrowing conversion out to long long is a necessity, but the
conversions to float and double are simply conveniences.
Conversion from floating is explicit, to avoid unintended consequences with
arithmetic operators, when later sampleCount ceases to be an alias for an
integral type.
Some conversions are not made explicit, where I expect to change the type of
the variable later to have mere size_t width.
... And in some places where a library uses signed types, assert that
the reported number is not negative.
What led me to this, is that there are many places where a size_t value for
an allocation is the product of a number of channels and some other number.
... This makes much code agnostic about how other things (functions and
arguments) are typed.
Many of these neeed to become size_t instead of sampleCount.
These changes fix a broken build in Windows.
#include <algorithm> needed for min/max to be in std.
decltype(+name) was declaring a const variable, that could not be incremented. Changed to auto.