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

300 Commits

Author SHA1 Message Date
Paul Licameli
48459404a5 Exception safety in: general exporting routines 2017-03-21 14:11:22 -04:00
Paul Licameli
3bb04245c5 Strong exception safety in all uses of XMLFileWriter...
... Strong, meaning that the file at the specified path is created or modified
only if all write operations complete without exceptions, barring one very
unlikely possibility that a final file rename fails, but even in that case the
output is successfully written to some path.

This commit does not add throws, but changes the type thrown to a subclass of
AudacityException, so that GuardedCall will cause the user to see an error
dialog in all cases.

Duplicated logic for making temporary files and backups is now all in one
place, the class XMLWriter.

There may be more new GuardedCalls than necessary -- the catch-all for the
event loop, AudacityApp::OnExceptionInMainLoop, might be trusted instead in
some cases --  but they are sufficient.
2017-03-18 11:45:33 -04:00
Paul Licameli
b81cdee7e3 Comment where xml writing functions may throw 2017-03-18 11:45:05 -04:00
Paul Licameli
1614db9994 Remove naked malloc (or similar) and free in: export 2017-03-17 17:52:52 -04:00
Paul Licameli
9bdc7b2cbf Remove naked new[] in: export 2017-03-17 17:52:45 -04:00
Paul Licameli
d9be2be137 Restore selected status of tracks correctly in export multiple 2017-03-17 17:52:36 -04:00
Paul Licameli
aa0d55ac83 Use enum class ProgressResult, don't interconvert with int or bool 2017-03-17 17:52:24 -04:00
Paul Licameli
5036583549 Fewer inclusions of AudacityApp.h 2017-03-17 17:52:24 -04:00
Paul Licameli
b019e28a53 remove unused variable 2017-03-17 17:52:23 -04:00
Paul Licameli
81285ee0c1 More const and override 2017-03-17 17:52:20 -04:00
Leland Lucius
0efe931df2 Bug 290 - (Mac) LAME: Audacity looks for LAME in a restricted folder that Mac no longer supports 2017-03-03 19:27:17 +00:00
James Crook
a4136f5979 Bug 1427 - Summary: Wording Issues - Metadata Tags 2017-03-01 15:57:48 +00:00
James Crook
5809499cfc Bug 1580 - Residual
I'd missed the path for Export Audio and Export Selected Audio.
2017-02-07 11:38:56 +00:00
James Crook
ec12bc37b5 Bug 1580 - Enh: New default directory for Save and Export .../Documents/Audacity
Fix affects windows only.
In the case of Save and SaveAs creates the directory too, so that the dialog can be positioned there.
For Export Multiple, will prompt if the directory does not exist.
2017-02-06 15:38:20 +00:00
James Crook
97bf72ddb4 Bug 1304 - Starting Save or Export directory is not set, so is unwritable or requires authentication for most users
Covers the case of Export Multiple too.
2017-01-18 14:19:06 +00:00
James Crook
e9b9fcbcb2 Bug 1304 - Starting Save or Export directory is not set, so is unwritable or requires authentication for most users
I have done as suggested in the bug comments, and used:
Windows: Users\username\Documents
Unix/Mac: ~/Documents .

We could though use GetLocalizedResourcesDir() and could use Music rather than Documents.
2017-01-03 15:31:12 +00:00
James Crook
389b0f197e Improve source for xgettext
1: Mark % as not being treated as print formatting.
2: i18n hint fix.
2016-11-21 10:31:52 +00:00
windinthew
d5a6b83fe0 Fix issues reported on Wording page 2016-10-14 16:36:41 +01:00
Paul Licameli
f993f1eadf Regularize casts as (int), so they are easier to find and review 2016-09-20 08:42:11 -04:00
Paul Licameli
5d5edecca5 Remove unnecessary semicolons 2016-09-18 10:36:53 -04:00
Paul Licameli
ad04187a41 Change sampleCount arguments, variables, return values to size_t...
... whenever they really describe the size of a buffer that fits in memory, or
of a block file (which is never now more than a megabyte and so could be fit in
memory all at once), or a part thereof.
2016-09-15 21:03:17 -04:00
James Crook
65c7e8051a ThomasFeher - Unused parameters clean up. 2016-09-11 20:31:49 +01:00
James Crook
545d741eb2 Make Audacity source more like DarkAudacity source. 2016-09-11 13:03:37 +01:00
James Crook
923eefaf90 Add code from merging.
This brings more of the code from DarkAudacity into Audacity, though not yet enabled.  This will make cherry picking later easier.
- Changing colour of html displays now possible, as colour links are visible for substitution.  (Can't use css as wxHTML is very limited).
- Export can now be preset to a particular format independent of preferences.
- SnapTo reversion on zoom now a DA controlled option.
- Caching of pinning preference for faster repaint because preferences are slow.
- Record Append now has sensible limit on number of tracks, rather than giving an error, and flipping the meaning of shift is now DA controlled.
2016-09-10 21:34:14 +01:00
James Crook
796b98de8b Bug 1510 - Moonphase: Crash cancelling Save As... character replacement dialogue when exporting multiple by tracks
Bug no longer moonphase when exporting stereo.  Iterator is iterating through channels, not tracks, so we need to allow for that when we skip whole tracks.
2016-09-10 20:00:32 +01:00
Paul Licameli
2263a0f477 Don't use wxArrayPtrVoid with casts, use std::vector 2016-09-08 11:08:49 -04:00
James Crook
b56ea0599b Bug 1440 - (Residual) Error message looks funny on Mac as only ":" is disallowed.
Previously the dialog listed multiple characters that are disallowed.  On Mac, only ":" is disallowed, so the text in that case can't say "any of" without looking funny.
2016-09-07 15:53:44 +01: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
fd2b050d6f Type agnosticism for some other variables that were not sampleCount...
... in some cases, this fixes narrowings.
2016-08-24 14:50:45 -04:00
Paul Licameli
79c79f9cd3 Remove many mentions of sampleCount with auto and decltype...
... This makes much code agnostic about how other things (functions and
arguments) are typed.

Many of these neeed to become size_t instead of sampleCount.
2016-08-24 14:50:45 -04:00
Paul Licameli
b8c1d02058 Use sf_count_t not sampleCount 2016-08-24 14:50:45 -04:00
James Crook
6b4a43a0a7 Fix some web addresses which changed with the manual moving. 2016-08-19 19:20:05 +01:00
Paul Licameli
fe5ab9a462 Remove the naked new in allocation of AudacityProject 2016-08-14 15:24:59 -04:00
Paul Licameli
f82ff73578 Remove some naked new amd delete in: import and export 2016-08-08 07:53:28 -04:00
Paul Licameli
fd2e36e0c8 Remove some naked new amd delete in: FFmpeg 2016-08-08 07:51:24 -04:00
James Crook
7c7fc55bc2 Bug 1440 - Cancelling Export Multiple by labels containing illegal characters exports the cancelled file with empty name.
Also made ExportMultipleByTrack more like ExportMultipleByLabel in that it continues on exporting tracks even if one track has a bad name.
2016-07-15 16:20:25 +01: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
James Crook
763485b0dc Add error check comments.
These are places where we don't properly handle error returns.
2016-07-10 21:40:48 +01:00
Paul Licameli
4739f3e27b Compensate for wxW 3 tab navigation deficiencies on Mac...
... using char hook event handlers.  We don't need to go the extreme length
of patching wxWidgets source.
2016-06-25 19:14:05 -04:00
Paul Licameli
3410b601e1 A null pointer check 2016-06-21 19:02:04 -04:00
Paul Licameli
02ce3c312b Bug119: Export Multiple /, *, ? handled incorrectly 2016-06-20 22:32:23 -04:00
Paul Licameli
87f368f380 Redo AliasedFile using wxFileNameWrapper. 2016-04-17 03:31:16 -04:00
Paul Licameli
61177a15ad More consistent mutual exclusion in calls to certain sf_ functions; ...
... also SFCall to simplify thread-safe calls, and SFFile for RAII of SNDFILE
objects.
2016-04-14 15:20:37 -04:00
Paul Licameli
24df87bb4c Fix resource leaks in the usage of the FFMPEG library with RAII objects...
... This includes failure paths in the initialization if import.  Those
resources would have been reclaimed before program exit, but not as soon as
they should have been.

... This also includes certain leaks that would happen every time a file is
successfully imported or exported.  We never used avformat_free_context or
av_dict_free as we should have!

... There were also AVPacket objects repeatedly reinitialized without proper
cleanups in between.  That might have leaked memory too.
2016-04-13 20:31:54 -04:00
Steve Daulton
5b968e8250 Fix bug 1374 2016-04-12 21:58:44 +01:00
Paul Licameli
c3cca71461 Sweep for filename copying: import and export 2016-04-10 22:24:12 -04:00
Steve Daulton
1be7b0086f Consistent bit rates in MP3 export dialog
and update Plot Spectrum default.
2016-04-07 13:17:16 +01:00
Paul Licameli
ff3e3d0e83 ExportPlugin::CreateMixer returns a smart pointer 2016-04-06 14:56:05 -04:00
Paul Licameli
456c8fb01e ExportPlugins managed with smart pointers 2016-04-06 14:08:42 -04:00
Steve Daulton
b5c5d55d2f Fix bug 285 2016-04-01 21:46:56 +01:00