1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-07-08 08:27:43 +02:00

78 Commits

Author SHA1 Message Date
James Crook
1192914460 Fix duplication of Nyquist Prompt.
Now just one Nyquist Prompt, and it's in the tools menu.
2018-08-03 16:11:44 +01:00
James Crook
c21855bbca Change ";type tool" to not iterate through tracks or selection.
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)
2018-08-01 20:32:30 +01:00
James Crook
b975956812 Add re-entrancy checks to Nyquist
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).
2018-08-01 20:31:03 +01:00
James Crook
848b66f4fa Make title of Nyquist Prompt dialog change appropriately.
Previously it was being overwritten each Init() by the string suitable for the Nyquist Effects Prompt.
2018-07-14 17:38:57 +01:00
James Crook
2739020342 Bug 1902 - "Nyquist Prompt" confusingly shown only as "Nyquist" when "Grouped by Type" is active
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.
2018-07-14 16:51:49 +01:00
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
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
4733cd7775 Update enum name to match control type name 2018-04-28 20:04:12 +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
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
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
2065eebff6 IdentInterfaceSymbol to distinguish internal vs visible enum settings 2018-03-27 07:51:44 -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
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
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
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
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
2a08a3cc07 Fix windows build...
Defaulted move constructors and assignments introduced at 080dd34 are not
essential but might give a bit more efficiency in std::vector on non-Windows.

Previous compilation fix was incorrect!  Excpliticly defined move assignments
should not have had no-effect bodies!
2018-02-22 12:32:53 -05:00
James Crook
2ece1acae9 Fix build
These changes needed to build on MSVC 2013.
2018-02-22 17:19:14 +00: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
bdd1358f9b Error messages for failing to load Nyquist effects 2017-12-27 15:46:06 -05:00
Paul Licameli
adc2695688 i18n-hints about the name "Nyquist" ...
... Although "Nyquist" is a proper name, still, translators should have
discretion to transliterate it into another alphabet, and also make it
consistent with longer translated strings containing it.

Not so for debug messages mentioning actual keywords of Nyquist programming.
2017-09-10 19:15:46 -04:00
Steve Daulton
b6a1ca916b Fix for bug 376
Documentation required.
2017-05-30 20:43:50 +01:00
Steve Daulton
04ba10a1c3 Add help button support for other Nyquist effects 2017-05-21 23:11:21 +01:00
Steve Daulton
1dd6b848c2 Enable Help button for Nyquist effects 2017-05-20 14:49:07 +01:00
Steve Daulton
469120cebd Enable help button for effects 2017-05-20 14:49:07 +01:00
Paul Licameli
22a12c6852 Exception safety in: some effects and generators...
... Those that directly call WaveTrack functions in their Process() routines,
which might throw exceptions for disk space exhaustion.
2017-03-21 14:11:25 -04:00
Paul Licameli
8e5975b10d Report read exceptions met in SBSMS and Nyquist callbacks to user...
... without letting them propagate through the libraries.
2017-03-17 17:53:03 -04:00
Paul Licameli
ac246d0468 Fix bug 1566 differently (signed/unsigned comparison) 2017-03-17 17:52:37 -04:00
Steve Daulton
81dd23bd16 Bug 1566 - Incorrect error message if Nyquist returns mono sound as an array
and quieten a load of compiler warnings.
2017-02-24 18:50:30 +00:00
Paul Licameli
5d5edecca5 Remove unnecessary semicolons 2016-09-18 10:36:53 -04:00
Paul Licameli
67cec5ad83 Make many counts of tracks and channels unsigned...
... And in some places where a library uses signed types, assert that
the reported number is not negative.

What led me to this, is that there are many places where a size_t value for
an allocation is the product of a number of channels and some other number.
2016-09-07 10:11:41 -04:00
Paul Licameli
1281f1b14b Common function limits buffer size to sampleCount known to be small 2016-08-23 12:46:10 -04:00
Paul Licameli
84c0337aba Fix TAB key navigation on Mac for all dialogs (not only for panels) 2016-07-10 17:12:27 -04:00
Paul Licameli
2696da89cb One more use of smart pointer object SampleBuffer, in Nyquist.h...
...Leaving no "naked" DeleteSamples.  Only SampleBuffer::Free now calls it
directly, and SampleBuffer calls Free in its destructor.
2016-04-10 00:07:21 -04:00
Paul Licameli
5ef4dd46a5 TrackFactory functions return std::unique_ptr, although some callers...
... release() them for now.
2016-03-26 11:50:12 -04:00
Paul Licameli
990080ae7d Replace virtual with override wherever possible; eliminate needless virtual...
... for functions in final classes.

override is like const -- it's not necessary, but it helps the compiler to
catch mistakes.

There may be some overriding functions not explicitly declared virtual and I did
not identify such cases, in which I might also add override.
2016-02-26 12:35:38 -05:00
Paul Licameli
7824e94030 Harmlessly qualify classes as final (or explicitly comment not)...
... Should have no effect on generated code, except perhaps some slight faster
virtual function calls.  Mostly useful as documentation of design intent.

Tried to mark every one of our classes that inherits from another, or is a
base for others, or has abstract virtual functions, and a few others besides.
2016-02-24 20:58:30 -05:00
Paul Licameli
99f161c36c Sweep unnecessary wxString copies: effects 2016-02-22 22:31:47 -05:00
Steve Daulton
1d6d08c47d Don't push effects that can't be undone onto the Undo Stack 2016-01-21 02:07:28 +00:00
Steve Daulton
6663f406d3 Bug 1275 - No preview in Spectral edit effects
Introduces a new type 'spectral' t Nyquist plug-ins
2015-12-26 19:26:39 +00:00
Steve Daulton
8828ab50b7 Remove obsolete 'rate' keyword to prevent crash
and added numeric-text controls.
2015-08-23 18:37:18 +01:00