1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-09-19 17:40:51 +02:00

306 Commits

Author SHA1 Message Date
James Crook
6509947de8 Fix some MSVC warnings. 2018-03-02 12:04:37 +00: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
8be1e8fdad Remove wxArray(Int|Long|Double) except where wxWidgets fns need it 2018-02-21 19:33:31 -05:00
Paul Licameli
080dd34e61 Get rid of wx object arrays, use std::vector 2018-02-21 19:33:27 -05:00
Paul Licameli
151cbb1305 Follow wxWidgets argument conventions for other ctors 2018-02-21 19:21:03 -05:00
Darrell Walisser
3d4a357f95 Update for FFmpeg 3.5 2018-01-26 19:18:25 -05:00
Paul Licameli
0a035b0ffc Avoid bit-shifting of -1 value 2018-01-26 10:12:14 -05:00
Paul Licameli
d4b21bb33e Bug 1600: Should keep progress dialog visible throughout Exp. Multi 2018-01-25 15:58:37 -05:00
Paul Licameli
2677ec5fe1 Bug1831: Export Multi fails? Erase incomplete, restore original file! 2018-01-24 14:38:44 -05:00
Paul Licameli
52a7f2320d Re-fix some warnings about mixing signed and unsigned better...
... Assuming that large unsigned magnitudes with high order bit set are not
the problem, but signed negatives of small magnitude may be:

1) Always cast the unsigned to signed in comparisons, not the other way.

Also:

2) Cast unsigned TERM to signed by itself, before subtracting.  Don't cast
the result.

3) Rewrite some comparisons by moving subtracted term to other side.

See commits
d2fe7b1757d77d93d82d53685a118517a4d2e996
f463eda36c059236ecc168919c745eb687170c95
2018-01-23 18:51:53 -05:00
Darrell Walisser
f4c8920e23 Fix truncation on FFmpeg export
This fixes the file truncation (missing last ~1000-2000 samples)
on file export. It will also eliminate error dialog some users
have witnessed.

Also cleans up the code
- simplified the Finalize function
- add error dialog for encoder errors
- always writes a final frame even if it has to pad with silence
- correctly determine when a codec supports short final frame
2018-01-22 17:46:09 -05:00
Paul Licameli
38568f611d Bug1829, more: check all errors flushing and closing export files...
... MP3 export already did this, the other five needed work.
2018-01-22 16:48:20 -05:00
Paul Licameli
07bf088565 Bug1829, more: correct error checks for writing MP3 & add more of them 2018-01-22 16:48:17 -05:00
Paul Licameli
e1cf056710 Bug1829: Inform user, erase incomplete files whenever export fails...
... Also checked more error returns from library functions.  Detect it when
write fails (maybe because of exhaustion of space) -- don't continue,
pretending all is still well.

Using one non-specific error message in many places, because we're in string
freeze now.
2018-01-20 19:56:32 -05:00
James Crook
b384f99e62 Bug 1825 - Import Uncompressed File Dialog Incorrect Reference to Menu Item 2018-01-17 13:27:00 +00:00
Paul Licameli
8e0cffb7f2 Simplify GuardedCall and default its return type to void 2018-01-13 01:32:41 -05:00
Paul Licameli
c975de8c5e More use of shared_ptr to Track, for safety...
... This even makes it possible to remove the prohibition of undo and redo
during transport, not that we want to though.  Playback and recording will
continue, using track objects that might not be in the current project.
2018-01-10 20:05:11 -05:00
Paul Licameli
cb403954fa Use std::[tr1::]unordered_(set|map), not the wxWidgets container macros 2018-01-08 18:22:51 -05:00
Richard Ash
499c6b4f36 Fix building without libid3tag (#230)
* Fix building without libid3tag

* Fix building without libid3tag

Extend the pull Audacity#214 from torto9 to fix building
with twolame but without libid3tag
2018-01-07 12:06:33 -05:00
Paul Licameli
def1d52505 Substitute, don't concatenate, when composing localized strings...
... Avoid English syntax bias.
2018-01-04 04:30:46 -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
e0970ad1e8 Remove unnecesary Format, Printf, casts to wxString 2018-01-01 21:53:51 -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
cf4b9eb5c8 Define wxDirDialogWrapper, with localized default prompt and name 2018-01-01 17:50:04 -05:00
Paul Licameli
af290d73c0 Define AudacityTextEntryDialog wrapper around wxTextEntryDialog...
... Prohibiting use of the default caption which is unlocalized.  (But we
didn't use it in fact anywhere.)
2018-01-01 17:50:03 -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
James Crook
d9bab5347a String changes: Exporting 'the audio' rather than 'the entire project'. 2017-12-17 17:34:28 +00:00
James Crook
f463eda36c Clean up some dead code and MSVC warnings.
- Dead code from experiments in SelectionBar removed.
- Many warnings about unused parameters fixed with WXUNUSED()
- Many warnings about signed / unsigned comparisons cleaned up.
- Several 'local variable declared but not used' warnings fixed.
2017-12-08 15:20:39 +00:00
Olivier Humbert
0d89bc3f15 Fix some typos in msgids, thanks to Olivier Humbert...
... Fix the source code; fix up msgids in audacity.pot and *.po
2017-11-27 23:12:37 -05:00
Paul Licameli
653fa2d354 Fix progress dialog for export of FLAC 2017-11-27 21:17:41 -05:00
Paul Licameli
31231a54d2 use override 2017-11-05 21:01:52 -05:00
Paul Licameli
a5dfff4bd2 Fix message box for completed Export Multiple which got lost in 2.2.0 2017-11-04 21:00:01 -04:00
Paul Licameli
1a22a59ee9 Fix links to local help for buttons in Library preferences...
... There are four different code paths to test, for four different "Download"
buttons:

The two "Download" buttons in the Libraries preference dialog; and,
The Download button in each of the two dialog boxes that follow the two
"Locate..." buttons.

There are just two new help pages in a proper build of local help, each the
target of two buttons.

One of these pages is called "FAQ:Installing the FFmpeg-Import-Export Library"
rather than "FAQ:Installing the FFmpeg-Import/Export Library"

because there are some difficulties preventing links to pages with "/" in the
title, which I didn't try to fix.
2017-10-18 21:47:59 -04:00
Paul Licameli
e329990ec0 fix build 2017-10-18 04:14:45 -04:00
Paul Licameli
32e40b3f7f Fix a remote help link in Lib prefs> Locate... > Download ...
FindDialog::OnDownload in ExportMP3.cpp should be analogous with
FindFFmpegDialog::OnDownload in FFmpeg.cpp
2017-10-17 20:31:58 -04:00
Paul Licameli
49174461d1 Overwriting export via save-compressed or chain commands: safety...
... of original file contents in case of failure.
2017-10-17 06:46:29 -04:00
Paul Licameli
cbf4c11e26 When export fails, don't leave a partially written file. 2017-10-17 06:29:04 -04:00
Paul Licameli
6a8bba0a99 Fix all remaining misuses of macro _ in static initializers...
... I found them using a rewritten macro _ that dynamically checked
that translations have been initialized.  But I do not commit that changed
macro.
2017-10-01 17:20:05 -04:00
Paul Licameli
70b5076b0b Fix some untranslated prompts and messages...
... Even if some commented out.  Such don't enlarge the .pot file, but make
them right in case they are ever un-commented.
2017-09-10 19:24:41 -04:00
James Crook
ce9938787c Use alpha or released or local manual for "help on selection".
Previously this was hard coded to use the online alphamanual.
Some other help-on-errors paths were hardcoded to use the online manual, and did not use local help even if available, so these were changed too.

Also two naming changes in the code:
ShowHelpDialog() became ShowHelp() because it typically shows the help in your browser, only showing the help in a dialog under certain circumstances.
The helpURL parameter became helpPage since it is usually a page name that is then elaborated into a url.
The Link() function became InnerLink().

Some careful http -> https changes made too.
2017-08-25 13:59:16 +01:00
James Crook
aee0c4cbc6 Fix for broken build (::None)
None clashed with something else under linux, probably a macro expansion.
2017-08-03 17:25:12 +01:00
Paul Licameli
5d48e96942 Where FileSelector was used, default to Documents not cwd; save prefs 2017-08-03 08:02:33 -04:00
Paul Licameli
a9d4c2c05b Defaulting of file paths to Documents is defined in just one place 2017-08-03 08:02:19 -04:00
Paul Licameli
7ced70c210 Bug1315 fix suggested by Bobby Kent (export file dialog problem) 2017-07-22 14:41:02 -04:00
Henric Jungheim
8d13bf1d83 Update _MSC_VER #if block for VS2015+ 2017-07-12 21:06:30 +01:00
James Crook
1c03eee052 Bug 1218 - "Other uncompressed files": AIFF defaults to 8-bit export. 2017-06-21 22:54:48 +01:00
Paul Licameli
6b5c5a0335 More simplifications by use of SelectionStateChanger 2017-06-11 11:21:36 -04:00