When building for wx3 on Linux, the backported number validators
and formatter conflicts with the wx3 version because I never
renamed them. Crashes during termination would occur because
the wx3 version and our version had different vtables.
I was thinking that we would just be able to delete the
backported version when upgrading to wx3, but since
we've made Audacity specific changes to them we can't
simply start using the real wx3 versions anymore.
Therefore, I needed to rename then to prevent the crashes.
1) Removed tabs and cleaned up consistency
2) Added removeal of "win" and "mac" directories which don't do
Linux users any good
3) Added removal of "lv2" directory as a system install of lv2
and requisites will be used instead
4) Added removal of "libvamp" directory as a system install of libvamp
will be used instead
5) Added removeal of "libsoxr" directory as a system install of libsoxr
will be used instead
6) Removed deletion of portaudio-v19/test since it seems to be required
to build now
7) Removed Windows project file updating
8) Reordered the src directory copy so that it is done before any
changes are made. This way if the tarball creation fails, you still
have a pristine src directory.
This will remove that pesky Makefile.in that would get in
the way when trying to commit. It doesn't need to be in
SVN since it is regenerated each build.
And this will restore Makefile.in.in to the unmodified
version there was a risk of losing those changes when/if
autopoint was rerun.
The changes were moved to configure.ac.
Thanks to a discussion with Steve, I went back to the docs
and found that SetCursor() is persistent. So it doesn't
have to be done in a mouse event handler. The constructor
is perfectly sufficient.
1) Shell VSTs were completely unrecognized...that is no longer the case
2) All VSTs will now ALWAYS be initialized and cleaned up from the main
GUI thread. I found that some Waves VSTs would freeze Audacity when
initialized in the audio thread and closed in the GUI thread.
3) While realtime previewing, it was possible that the wrong slave
could be used to process new blocks of audio.
4) I found that the Waves AUs don't crash on a real Mac (instead of a
virtual machine), so I removed the "black list" I'd put in just for
them. (Something to do with needing full 3D support I think.)
Anyway, #2 and #3 were quite intrusive, so as much RTP testing as possible
would be a good thing.
This will fix the clipping indicator turning on after a toolbar reset
and, as a bonus, the timers now only run if playing, capturing, or
monitoring. Will (slightly) reduce the CPU consumption.
The value in audacity.cfg is now prepended to the PATH
variable instead of appending it, so that directory
should be searched first.
It doesn't do fallback searches if the first attempt
fails.
This was my bad. I'd reset the number of capture channels
in AudioIO when the stream was stopped. Unfortunately, two
methods depended on it being valid AFTER the stream had
stopped.
Those methods, TrackPanel::OnTimer and AudacityProjecT::OnCloseWindow,
were using it as an indicator if recording had been taking place
before they stopped the stream. They then flushed the tracks, pushed
the state onto the undo stack and did some other post-recording tasks.
Turns out that the tracks are already flushed as part of the normal
AudioIO::StopStream processing, so that was redundant.
And, instead of duplicating the process, I've relocated most of each
methods processing to AudacityProject::OnAudioIOStopRecording.
Many other changes including:
1) Independent preferences
2) Automatic layout separated from vertical/horizontal orientation choices
3) Combined menu and icon which saves space
4) Click to start monitoring label no longer covers peak hold line completely
5) Click to start monitoring label now adjusts label based on available width
6) Click to start monitoring label now appears on vertical meter (not sure about this one...)
7) Reduced width of vertical meter by moving icon to left of meters
8) Includes a compact vertical meter now
9) Clipping indicator is easier to see
10) All 1-off drawing issues resolved (99.9% sure...I challenge you to find some ;-))
11) Bevels around meters are no longer overlaid by meter updates
12) "Old" menu handling code removed
13) Though not perfect since some non-English characters are taller/wider than the meters, non-English text is now handled better
14) Clicking play meter resets indicators as appropriate
15) Indicators on meters now stick around until the meter is clicked
16) Ugly flashing while resizing is now gone
17) There should be NO magic numbers in the code. Every +1 or -2 is explained in comments...
18) Size of L/R labels are recalculated now when preferences are updated (to pull in locale changes)