Commit Graph

223 Commits

Author SHA1 Message Date
Steve Daulton
a06e561cb7 Support version strings in Nyquist plug-ins
For shipped plug-ins, the version number is the same as the Audacity
release version when the plug-in was last modified.
2018-07-02 22:41:59 +01:00
Steve Daulton
5cdf642133 Fix Travis build 2018-06-18 22:14:38 +01:00
Steve Daulton
5e219a031d Fix Factory Preset for Nyquist file browser
Expand platform independent keyword paths before
writing to pluginsettings.cfg.
2018-06-18 21:32:22 +01:00
Steve Daulton
c8c93319ec File browser widget for Nyquist plug-ins 2018-06-14 21:27:48 +01:00
Paul Licameli
c20aefc10f Save, later rethrow exceptions caught in callbacks from C libraries 2018-05-10 01:20:36 -04:00
Steve Daulton
504cf0fe85 Runtime translation for 3rd party Nyquist plug-ins
3rd party plug-ins may provide their own translations for runtime
messages (return strings and debug messages).
2018-05-06 17:50:43 +01:00
Steve Daulton
4733cd7775 Update enum name to match control type name 2018-04-28 20:04:12 +01:00
Steve Daulton
16ff3b4053 Nyquist text widget must not fail verification 2018-04-28 19:58:23 +01:00
Steve Daulton
cf07f858ec NumericTextCtrl for time input in Nyquist plug-ins
Also add widget for inserting a line of text into a Nyquist plug-in.
2018-04-28 19:18:32 +01:00
Steve Daulton
7bc32734ae Clear TODO: comments for Nyquist docs 2018-04-19 22:21:42 +01:00
Paul Licameli
b200819f75 Use IdentInterfaceSymbol to identify commands and effects 2018-04-11 11:51:10 -04:00
Paul Licameli
0394660e9e Use IdentInterfaceSymbol for vendor strings, which are used in paths 2018-04-11 11:13:41 -04:00
Paul Licameli
d9606e8cdf Make effect family names translatable and add i18n-hint comments 2018-04-11 11:13:41 -04:00
Paul Licameli
2c19e8f81e Use IdentInterfaceSymbol to identify effect families 2018-04-11 11:13:40 -04:00
David Bailes
526606fc29 Fix more accessibility names after the move to wx 3.1.1
This is a follow up to commit f9ee3cd.
2018-04-10 13:43:50 +01:00
Paul Licameli
6f52df545e Multi-line Nyquist header directives allow embedded comments 2018-03-27 15:54:47 -04:00
Paul Licameli
7f30636ecb .ny header can distinguish internal vs visible choice strings...
... Syntax is like:

( "InternalString" (_ "Visible String") )

But none of the shipped .ny headers need this yet.
2018-03-27 07:51:45 -04:00
Paul Licameli
d464878d65 Use std::vector<>::data() not address of first element 2018-03-27 07:51:44 -04:00
Paul Licameli
2065eebff6 IdentInterfaceSymbol to distinguish internal vs visible enum settings 2018-03-27 07:51:44 -04:00
Paul Licameli
81dd580c57 Pass array and count separately to read/write/define enum 2018-03-27 07:51:43 -04:00
James Crook
a4a588610e Revert "Bug 893 - Spectral Selection Toolbar misnamed"
This reverts commit eaada3a51d.
2018-03-26 20:18:37 +01:00
James Crook
eaada3a51d Bug 893 - Spectral Selection Toolbar misnamed 2018-03-25 21:41:56 +01:00
James Crook
e48bd77ea2 Fix bad unquoting in Nyquist. 2018-03-25 21:41:56 +01:00
Paul Licameli
37541de6be Bug1858: Allow empty default choice on $ control lines (again) 2018-03-24 16:20:13 -04:00
Paul Licameli
d978abba35 Allow \n to mean newline in .ny header control string...
... preserving old behavior, but such escapes should not be used if the string
needs to localize because xgettext will not treat them as Nyquist.cpp does.
2018-03-24 15:14:45 -04:00
Paul Licameli
1cda717a14 Fix parse of line break in string inside list in header of .ny file 2018-03-23 21:28:01 -04:00
Paul Licameli
01a45a6b36 Strip ... from Nyquist effect names again (but none shipped have it) 2018-03-15 13:44:51 -04:00
Paul Licameli
bc773e02d3 Supply some missing translation in Macros dialogs...
... The "Set" prompt for checkboxes;

Strings in Choice controls, which had been declared translatable with XO, but
the translations not yet used.

This can be tested in Ukrainian locale now, for editing parameters of
commands like Select or Drag, but be aware that even uk.po is not up to date
for all recent changes in the Manage Macros dialog itself.
2018-03-07 15:06:55 -05:00
Paul Licameli
08a8cc4bcf Strings in Nyquist plug-ins not translated too early...
... So that if you change language in-session, they will update.
2018-03-06 01:21:50 -05:00
Paul Licameli
f6efacbda3 Untranslated from GetVendor; translated in effect info menu only 2018-03-06 01:14:54 -05:00
James Crook
8cd5d7f4fe Tools menu and EffectTypeTool
- Also add a 'Nyquist Prompt' to the Tools Menu.
- Currently it is the same as the Effects Nyquist Prompt.
- Chains moved into the Tools prompt.
2018-03-03 12:57:32 +00:00
Paul Licameli
da39cc451f Remove redundant ellipses from names in .ny files...
... The code that parses the header was always just throwing them out.

The code that populates menus deduces whether to add ellipses, as there are
controls or not, regardless what the $name line said.
2018-03-02 20:11:54 -05:00
Paul Licameli
ff3a869e83 Line breaks allowed in strings (or lists) in $ lines; \n means n ...
... because we must match how xgettext parses strings, and unlike XLisp, it
does it strictly according to this reference:

http://www.lispworks.com/documentation/lw70/CLHS/Body/02_de.htm
2018-03-02 20:11:47 -05:00
Paul Licameli
ad4843621b Allow Nyquist header lines to start with $ 2018-03-02 19:46:58 -05:00
Paul Licameli
ba8e6bd465 Change tokenization of header comment lines & translate strings ...
... allowing (_ "...") for single strings, and allowing a sequence of such
inside outer ( ) for choice controls, but still accepting the old syntax too
2018-03-02 19:46:58 -05:00
Paul Licameli
0879949904 Register translation functions for Nyquist effects into XLisp runtime 2018-03-02 19:46:57 -05:00
Paul Licameli
f10b9c68ec wxString in Nyquist prompt makes trip to UTF8 and back properly...
... Simple test:  In Nyquist prompt enter

(progn "Ü")

Using Alt+U, U.

Formerly it came back mis-encoded.
2018-02-27 01:35:01 -05:00
James Crook
33daaafc59 Make Nyquist effects define their parameters. 2018-02-24 14:20:30 -05:00
James Crook
0ad533a740 Automation -> Scripting. 2018-02-24 14:20:30 -05:00
James Crook
1c988b4e3a Automation: AudacityCommand
This is a squash of 50 commits.

This merges the capabilities of BatchCommands and Effects using a new
AudacityCommand class.  AudacityCommand provides one function to specify the
parameters, and then we leverage that one function in automation, whether by chains,
mod-script-pipe or (future) Nyquist.

- Now have AudacityCommand which is using the same mechanism as Effect
- Has configurable parameters
- Has data-entry GUI (built using shuttle GUI)
- Registers with PluginManager.
- Menu commands now provided in chains, and to python batch.
   - Tested with Zoom Toggle.

- ShuttleParams now can set, get, set defaults, validate and specify
the parameters.
- Bugfix: Don't overwrite values with defaults first time out.
- Add DefineParams function for all built-in effects.
- Extend CommandContext to carry output channels for results.

We abuse EffectsManager.  It handles both Effects and
AudacityCommands now.  In time an Effect should become a special case of
AudacityCommand and we'll split and rename the EffectManager class.

- Don't use 'default' as a parameter name.
- Massive renaming for CommandDefinitionInterface
- EffectIdentInterface becomes EffectDefinitionInterface
- EffectAutomationParameters becomes CommandAutomationParameters
- PluginType is now a bit field.

This way we can search for related types at the same time.

- Most old batch commands made into AudacityCommands.
The ones that weren't are for a reason.  They are used by mod-script-pipe
to carry commands and responses across from a non-GUI thread to the GUI
thread.

- Major tidy up of ScreenshotCommand
- Reworking of SelectCommand
- GetPreferenceCommand and SetPreferenceCommand
- GetTrackInfo and SetTrackInfo
- GetInfoCommand
- Help, Open, Save, Import and Export commands.
- Removed obsolete commands ExecMenu, GetProjectInfo and SetProjectInfo
  which are now better handled by other commands.

- JSONify "GetInfo: Commands" output, i.e. commas in the right places.

- General work on better Doxygen.
    - Lyrics -> LyricsPanel
    - Meter -> MeterPanel
- Updated Linux makefile.
- Scripting commands added into Extra menu.
- Distinct names for previously duplicated find-clipping parameters.
- Fixed longstanding error with erroneous status field number which
  previously caused an ASSERT in debug.
- Sensible formatting of numbers in Chains, 0.1 not 0.1000000000137
2018-02-24 14:20:22 -05:00
Paul Licameli
097764d94c Distinguish Effect Family Id from Effect Family Name...
... and the distinction makes a difference only for built-in effects.

"Id" is meant to persist in pluginregistry.cfg, and is constrained by how
previous versions of Audacity were written.

"Name" is not persistent, so we have the liberty to change it, as done here
for the built-ins.
2018-02-21 21:43:01 -05:00
Paul Licameli
080dd34e61 Get rid of wx object arrays, use std::vector 2018-02-21 19:33:27 -05:00
Paul Licameli
6e7d7447c1 Use an enum class for numeric validator styles 2018-02-21 19:21:08 -05:00
Paul Licameli
0aad028c9b Simplify calls to Effect::Delegate 2018-02-21 19:20:53 -05:00
Paul Licameli
80a958f8a4 Rewrite empty prompts to ShuttleGUI functions as {} ...
... so we might more easily redefine the type of the function argument,
some other day (not this release)
2018-01-01 22:51:25 -05:00
Paul Licameli
7fd78183d2 Remove needless uses of wxString::c_str() in wxString::Format...
... and similar wx "variadics," which all treat wxString smartly enough that
you don't need this.

Don't need c_str either to convert wxString to const wxChar * because
wxString has a conversion operator that does the same.
2018-01-01 20:34:33 -05:00
Paul Licameli
384300016d Define FileDialogWrapper, with localized default prompt and name 2018-01-01 17:50:04 -05:00
Paul Licameli
ccb4bbac33 Translate "Message" as default title of message box...
... This required a sweeping change of all calls to wxMessageBox!  But it seems
safe to me, despite the great number of touched files.
2018-01-01 17:50:02 -05:00
Paul Licameli
378c96fda1 Consistently use translated effect name in titles of message boxes...
... For built-in and Nyquist effects.
2018-01-01 17:50:01 -05:00
Paul Licameli
bdd1358f9b Error messages for failing to load Nyquist effects 2017-12-27 15:46:06 -05:00