This should correct the crash and will also correct
the problem where one project's playback/capture was
being metered in another project if multiple projects
were open.
The hairbrained "solution" I came up with in r13716
"worked" but it was simply unnecessary and this is
what I should have just done to begin with.
The previous "solution" actually caused some display
issues in the menus.
The problem is that lookup of effects is based on their
ID and legacy effects didn't play well in this scheme, so
I've added a workaround for now. This will go away when
I get all of the effects converted.
And removes some debugging.
This is more of a toleration than a fix since I can't
get any of the Waves plugins to display their custom views.
They do work in generic view however, so I've put in a
temporary hack to force all Waves plugins to use the
generic view.
This MUST be tested by everyone on as many platforms as you
have access to...reason:
This removes a very old piece of code (May 10, 2003) in the
command manager that worked around a problem in GTK where
accelerators could not be changed again after the initial
menu setup.
While there is another way to fix this bug, remove this old
code is actually a better way AS LONG AS it doesn't break
anything else. So far, it's looking like it is no longer
needed.
But, I'll be trying as many combinations of changing shortcuts,
entering/exiting preferences, swapping shortcuts, etc, as
I can on Linux, Windows and OSX.
But, the more ppl trying to break keyboard shortcuts the
better.
In case it helps, here's the comments that Dominic had in the
code:
// This is a very weird hack. Under GTK, menu labels are totally
// linked to accelerators the first time you create a menu item
// with that label and can't be changed. This causes all sorts of
// problems. As a workaround, we create each menu item with a
// made-up name (just an ID number string) but with the accelerator
// we want, then immediately change the label to the correct string.
// -DMM
When undoing not only should the capture state be checked to
see if it safe to undo, but the captured track should be
checked as well since some activities only set the captured
track and not the state.
One example is if a user tries to export a file to an invalid file or
is not permitted to write to it. For the FFmpeg, MP2, and OGG exporters
this error would not be flagged and to the user, it would look like the
file was exported.
These now throw up an error dialog to left the user know.
But, it made another issue visible...several exporters
fail silently and the user may thing the export was
successful when it was not.
Will be hitting that next.
The problem was that the mouse capture was not being reset
when the pointer left the track panel. In that case, as
long as no buttons are down, the capture state needs to be
reset so that when the mouse re-enters the track panel it
figures out what is going on from a clean slate.
I REALLY need to come up with a better process for moving
between plats as I (apparently) can't remember to do a simple
"svn add" on the final move...grrrr!!!!
I say possible because I can't fully test it as my motherboard
audio device doesn't show up in Windows (don't know why yet).
So, because of that and because this "fix" needs a little discussion
amongst the troops, I've ifdef'd it with EXPERIMENTAL_HAVE_DEVICE_CHANGE
and have disabled it by default.
What is does is it sets up a device change listener and performs an
automatic rescan when a change is detected. (That's the part that
needs discussion.)
One endianess byte swap was completely wrong
And program loading should have had some additional
dispatches to tell the effect to prepare for loading
banks and programs.
Audacity maintains a list of effects it has seen in the pluginregistry
to provide scanning for "new" effects during startup. It also uses
this list to determine if existing effects are still valid.
It was using the single "Enabled" setting to keep track of that, BUT
it also used the "Enabled" setting to determine if the user chose to
enable or disable the effect. That doesn't work since Audacity can
ignore the users choice if effects come and go.
So, this change fixes it by adding a "Valid" setting to separate the
two cases.
All:
Export/Import now disabled if the Effect (family) doesn't support it
Options disabled if the Effect (family) doesn't support it
Standarized on "Latency compensation" instead of "Buffer delay compensation"
Correct loading/saving of factory default settings
Fixed "Mannage" to be "Manage"
Removed conditional code since we're keeping the transport buttons
Play bases state on actual playback status
Play no longer monkeys with selection
Play will now start from where it left off IF:
The user stops the playback via the Effect Stop button
If the user wants to restart from the beginning of the selection
then the user can click Rewind while stopped.
Rewind will not go past start of selection (sorry Steve ;-))
If Rewind is clicked while not playing, playback will next
start at beginning of selection.
Fast Forward will stop at end of selection
However, if FFwd is clicked while not playing, it will
put playback at the end of selection and the next time
the user clicks the Effect play button, playback will
continue from the end of selection to the end of track.
Deleting a preset now prompts user to confirm
Button faces should now look a little better
Bypass (should we rename that???) button now grays when disabled
Audio Units:
Corrected all user visible "AudioUnit" strings to be "Audio Unit"
Removed unneeded "Buffer Size" in settings dialog
Only uses latency if user said it was okay
Ladspa:
Added settings dialog to allow control of latency usage
Removed unused "user selectable" buffer size
Only use latency if user wants it
Refresh controls when presets are loaded
VST:
Removed unused "Rescan at startup" setting
Propogate parameter loads to slave effects
Solves the problem of what the "Settings" button should say
by converting it to a bitmap button.
Adds the missing "bypass effect" button.
The Ok/Cancel buttons are now Apply/Close buttons and the
dialog stays open after the apply is done.
Record is no longer disabled when an RTP effect is open as
the RTP effect now monitors when recording starts and disables
its buttons as needed.
Added "Play", "Skip forward", and "Skip backward" buttons.
While the other stuff is required, this last one is in to
get a feel for its usefulness. We'll need to get feedback
on it pretty quickly so we can rip it out if need be.