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) 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 should allow the new Spectral edit plugins to work on systems that use comma as the decimal separator.
Also removes the *F0* and *F1* definitions that are no longer used (superseded by lowHz and highHz properties).
Makes the tooltips display the action that is going to
be performed rather than a generic description.
Disables transport buttons when the effect dialog is
initially displayed if another project has using the
audio device.
It corrects several "multiple project" problems with the
meter toolbars and meters.
In addition, there was a "multiple project" issue where
the transport buttons didn't disable properly in the
non-active project.
This bit the textual mode plain old text based buttons
and retains the bitmap buttons for graphical mode.
It also allowed me to remove the manual accelerator table
building (no access keys in GUI mode) which was a good
thing as I really didn't know if the was gonna work for
non-English keyboards anyway.
1) Play now respects play region
If there is a play region it will always play that no matter
what the selection is and it will always "rewind" to the start
of the region even if stopped in the middle.
2) i18n-hints added to the labels and tooltips to let translators
know that the access keys should be the same for the different
labels/tips for a specific button.
3) (ALT+...) removed from the Mac tooltips
4) You now get a message if nothing is selected and Apply is pressed
I thought this was simply the best way...nothing fancy.
If you can believe it, this whole big mess is
just to get localized effect labels back into
the menus.
I sure wish I'd had a little bit more time to
finish up all of the effects. It sure would
be a lot cleaner (code wise).
This round fixes Mac pointers when mouse transitions from
the main project window to an open effect window in GUI
mode and back.
Not all of the cases are fixed with VST overlay windows
being the final holdout. Couldn't figure out the cause
so will just deal with it when we convert to wx3.
(I GET TO REDO ALL OF THIS FOR WX3...WOOHOO!!!)
Per David Bailes, removing the "&" mnemonic characters also
removed the access key feedback present to screen reader
users. He also found that having the mnemonic and the
accelerators still prevented the focus from jumping to the
transport button.
I'm hoping that with wx3, we can clean this up some as it
appears they've redone the whole bitmap button design.
When looking into the +morphfilter issue, I noticed that
I wasn't consistently handling preset chunks. While I
didn't have any effects complaining about it, some of it
was (near as I can deduce...this stuff isn't well documented)
probably wrong.
So, I cleaned it all up and in the process added more validity
checking when loading presets for all 3 preset formats.
Incidentially, the +morphfilter still crashes Audacity...but
it also crashes Cubase, so we're in good company. :-) I've
sent an email to the author to see if I'm setting the chunks
correctly or he has a known issue.
Closing the window via the frame's close button was
not being recognized by wxWidgets. I'm sure it's
because of the of the additional event handler, but
the close event should have been sent on to the wx
handler since it wasn't handled.
No matter...just capture the event and close the
window manually.
It would crash Audacity when the initial default parameters
were saved (effGetChunk w/program) since it didn't seem to
have a default programs selected.
Fix is to simply to default to program 0 on startup.
On Windows, when the button access keys were used, the focus
would jump to the associated button. This would be a real
pain for keyboard user since they would then have to TAB back
to the control they were on to make further adjustments.
By using the accelerator table instead of the normal mnemonic,
the access key isn't directly tied to the button, so focus
remains untouched.
On GTK, this actually makes the accelerators work. It seems
that normal mnemonics do not work with a wxBitmapButton, so
using the accelerator table provides the access keys.