1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-24 08:10:05 +02:00

27 Commits

Author SHA1 Message Date
Paul Licameli
c7ab9f2338 Rewrite many iterations over tracks and channels in src/commands 2018-10-01 11:24:37 -04:00
Paul Licameli
b94e8fec96 Remove VisibleTrackIterator 2018-10-01 11:20:52 -04:00
Paul Licameli
51842fc78b Use TypeSwitch and track_cast 2018-10-01 10:58:47 -04:00
James Crook
1b6cd725e6 Use count of channels instead of boolean 'linked' in GetInfo.
This change is inspired by the plan to eliminate GetLinked() in 2.3.1.  Logically we shouldn't be exposing a boolean 'linked' in scripting, but instead a channel count.
2018-09-10 23:54:16 +01:00
James Crook
7d0839393b Report selectedness of all tracks, not just WaveTracks.
(Suggested by Steve Daulton).
2018-09-03 22:02:15 +01:00
James Crook
85c1eb4720 Fix GetInfo: Type=Labels counts channels rather than tracks. 2018-08-29 13:35:21 +01:00
James Crook
660dc03b9f GetInfo tweaks.
JSON now more consistent, using structs rather than arrays.
Removed unused GetInfo Command+
2018-04-27 12:45:29 +01:00
Paul Licameli
e1b60916b7 More consistent naming conventions for choice control items...
... This commit leaves at least a comment for all choice controls of all
built-in effects and commands.

Use CamelCase with no spaces for the internal identifiers, given in
wxT("...")

Use more idiomatic English with spaces in the user-visible names, given in
XO("..."); these strings go to the message catalog for internationalization

Do not use underscores

In case these strings are the same, give it just once in XO("..."), but if in
a future version it is decided to change the name in XO("..."), then the
original should be kept also in a distinct wxT("...") string, so that
saved configuration or plugin settings or macro files don't become gratuitously
incompatible just because of that user-visible name change.

Left TruncateSilence alone for now -- I think that choice demands a rewrite
as a slider instead.
2018-03-27 15:57:48 -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
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
andheh
d72028de26 fixed more "statement has no effect" warnings 2018-03-06 21:29:58 +00:00
James Crook
ea4968e094 Add GetInfo Preferences. 2018-02-27 22:26:28 +00:00
James Crook
0ad533a740 Automation -> Scripting. 2018-02-24 14:20:30 -05:00
James Crook
e3ef968d57 Add DragCommand. Default Y/N on optional fields. Open/Save project items.
- More Y/N in Optional, making it easier to omit parameters.
- AT removed from Envelope, since T already gives it.
2018-02-24 14:20:29 -05:00
James Crook
e9e9ee2998 Can choose by Channel or by Track in Set commands. 2018-02-24 14:20:28 -05:00
James Crook
b4f7f485a8 Less verbose LISPy output of GetInfo: Type=Labels 2018-02-24 14:20:27 -05:00
James Crook
edf90d6e2c Add envelope commands
- Added SetEnvelope (which can also delete/clear an envelope.)
- Added GetInfo: Type=Envelope
2018-02-24 14:20:27 -05:00
James Crook
5c2f35d96f Fix Automation listing
- Now correctly shows optional fields
- Now includes the zero-parameter commands.
- Fetches the Short-Names for menu commands.
2018-02-24 14:20:25 -05:00
James Crook
1d9477a455 SetClip, SetLabel, SetProject added
- SetTrack also updated with more options.
2018-02-24 14:20:24 -05:00
James Crook
8ebf502cd6 Cleaner class hierarchy 2018-02-24 14:20:24 -05:00
James Crook
b1b1a362ed Doxygen, Clips and Labels
- Classes renamed and better doxygenated
- GetInfo: Type=Clips added
- GetInfo: Type=Labels added.
2018-02-24 14:20:24 -05:00
James Crook
ca5dac59ff Support: JSON, Lispy or Other formats 2018-02-24 14:20:23 -05:00
James Crook
c0c5cc6337 Structured output for CommandContext 2018-02-24 14:20:23 -05:00
James Crook
2f6fc0a1e5 Long message target
This allows interactive display of the results of new commands that generate
lots of text.
2018-02-24 14:20:23 -05:00
James Crook
e29699086e More Menus Items, Better prompting Dialogs. 2018-02-24 14:20:23 -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