... because the two macros have the same expansion, and are both checked for
in the --keyword arguments passed to msgfmt by locale/update_po_files.sh.
This commit makes ONLY such changes, and comments in Internat.h. It is big
but quite harmless.
The intention is to introduce a type distinction in a later release, by defining
XXO differently. XXO is used where & characters in strings (for hotkeys of menu
items or control prompts) are permitted, XO where not.
... by passing parent as reference, not pointer, and testing in the dialog
factory function.
This is important so that we know the lifetime of an effect dialog, even when
it is non-modal, is bounded by the lifetime of the associated project.
... 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.
... except Audacity.h
This forces us to make each header contain all forward declarations or nested
headers that it requires, rather than depend on context.
... which will make it easier to change the types of those containers to
std::vectors of other string-like classes
for wxString,
IsEmpty => empty
Clear => clear
Alloc => reserve
for wxArrayString,
Count => size
GetCount => size
IsEmpty => empty
Add => push_back
Clear => clear
Empty => clear
Sort => std::sort (only with default comparator)
SetCount => resize
Last => back
Item => operator []
Alloc => reserve
1. Set accessibility names for the buttons for applying a macro to the project or files. Note that although these names are not read by NVDA 2018.2, they will be read by NVDA 2018.3
2. Remove access keys from wxStaticText controls, as they do not work on this type of control.
It is now populated with the CommandID and the command type.
Later we can add the command help string.
Std::pair changed to std::tuple to accommodate the extra information.
I've added some of the new plugin stuff to LV2, Nyquist, and
Vamp so that they play better in the new system. They no
longer get bunched in with the Audacity effects when sorting
or grouping the menus. They have not been fully converted
but they should be good for 2.1.0.
Nyquist plugins now include ";author" and ";copyright"
statements.
Added the 4 new Nyquist plugins to the Windows build.
Audiounits are still coming...had to push them to the back
burner to get this other stuff out of the way.
Scanning for new plugins has been improved so that newly
discovered ones will be shown to the user when Audacity starts.
Effects menu sorting has been fixed and improved.
Disabling effect types in Preferences works again and you
no longer have to restart Audacity for them the change to work.
Effect usage in chains works again.
Plugin registration dialog code simplified a bit.
Group names in the pluginregistry are now base64 encoded. I
never really thought about it, but wxFileConfig group names
are case insensitive and since I was using the group name as
the plugin ID, I ran into a conflict on Linux where there
were two plugins with the same name, just different case. (And
they were different plugins.) Hoping all of this will change
when/if the config file gets converted to XML. (wx3 if finally
including XML support)
A fair amount of cleanup of this new code has been done and
will continue as more stuff is converted.
I've made it where you can enable and disable via experimentals:
EXPERIMENTAL_REALTIME_EFFECTS
EXPERIMENTAL_EFFECTS_RACK
You will notice that, as of now, the only effects currently set up for
realtime are VSTs. Now that this is in, I will start converting the
rest.
As I start to convert the effects, the astute of you may notice that
they no longer directly access tracks or any "internal" Audacity
objects. This isolates the effects from changes in Audacity and makes
it much easier to add new ones.
Anyway, all 3 platforms can now display VST effects in graphical mode.
Yes, that means Linux too. There are quite a few VSTs for Linux if
you search for them.
The so-called "rack" definitely needs some discussion, work, and attention
from someone much better at graphics than me. I'm not really sure it should
stay in as-is. I'd originally planned for it to be simply a utility window
where you can store your (preconfigured) favorite effects. It should probably
revert back to that idea.
You may notice that this DOES include the API work I did. The realtime effects
were too tied to it and I didn't want to redo the whole thing. As I mentioned
elsewhere, the API stuff may or may not be very future proof.
So, let the critter complaints commence. I absolute KNOW there will be some.
(I know I'll be hearing from the Linux peeps pretty darn quickly. ;-))