... instead use the utility make_iterator_range and its index() or contains()
method. This generic utility works with any container defining begin() and
end().
This further lessens dependency on wxWidgets container idioms.
... 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
Bug 2013 - Extended ASCII characters in Nyquist plug-ins freeze Audacity
We previously assumed that plug-ins would always be valid UTF8, but
if it isn't then the conversion to wxTextInputStream fails, causing
pgm.ReadLine() to perpetually return a zero length line.
It combines the old IdentInterface with the ParamsInterface, providing an identifier and parameters (if needed).
The main purpose of the change is to make the class hierarchy (as viewed via doxygen) much easier to follow.
... Don't trim leading whitespace from source file lines before passing them
to eval.
So when a string in Lisp code is (_ "like
this")
(the Lisp reader allows embedded newlines in quoted strings),
then the string extracted to the .pot file by xgettext contains the spaces, and
the string literal seen by our Lisp interpreter will also retain the spaces and
match the msgid in the catalog exactly.
This is simple parsing of the response from AUD-DO. The first part is the string message, the second 1 or NIL depending on if scripting reported OK or not. Note that illegal scripting options often don't produce a 'Failed' but are silently substituted with valid ones.
Allow generate type plug-ins spawned from Nyquist Prompt to create
a new track if none selected.
This commit also fixes preview in generators when there is no selection.
The Objective C++ syntax '[[' used in a couple of places (Mac only),
breaks the parser in kdevelop. As suggested by Paul, a space between the
brackets fixes the problem.
Also removed some trailing spaces.
... Reuse the external function registration added earlier in 2.3.0
development, for support of internationalization in Nyquist.
This way, we avoid making cyclic static linkage dependencies between the
library and the application.
Also adds the options
;type tool
;type tool process
;type tool generator
;type tool analyze
These tools will appear in the Tools menu, but behave as their second argument (if any)
These changes below are paving the way for aud-do:
Nyquist Effect now detects self reentrancy and skips reentry if so.
Nyquist Effect now detects if another effect has run during effect processing, and does not send Nyquist
output if so.
Neither of these preparatory changes have an effect in absence of AUD-DO (or other function
that allows Nyquist effect to call out to Audacity functions).
Now shown as "Nyquist Effects Prompt" (in Effects menu) and "Nyquist Tools Prompt" (in Tools Menu).
These prompts will have slightly different behaviour, e.g. only tools allow aud-do.