1
0
mirror of https://github.com/cookiengineer/audacity synced 2026-02-06 03:32:09 +01:00
Commit Graph

51 Commits

Author SHA1 Message Date
Paul Licameli
ca0fb190e6 Register factory functions with DirManager to interpret XML tags...
... Removes direct dependency on ODManager.h and some BlockFile subclasses,
but does not yet break any dependency cycles
2019-05-18 20:32:19 -04:00
Paul Licameli
81d4c217e6 Rewrite DirManager::EnsureSafeFileName without downcasts...
... weakening but not yet eliminating dependency on BlockFile subclasses
2019-05-18 20:32:19 -04:00
Paul Licameli
2faa24c96b Move ProjectFSCK out of DirManager...
... which makes DirManager.cpp not depend on MissingAliasFileDialog.cpp
2019-05-18 15:06:50 -04:00
Paul Licameli
6c57948d8f Remove unnecessary #include-s from .cpp files...
... Unnecessary because transitively included.

But each .cpp file still includes its own .h file near the top to ensure
that it compiles indenendently, even if it is reincluded transitively later.
2019-05-16 17:21:00 -04:00
Paul Licameli
f6adeed47b Remove some unnecessary #include directives 2019-05-15 14:14:18 -04:00
Paul Licameli
3760db9dff Remove wx/wxchar.h from headers 2019-03-29 15:56:54 -04:00
Paul Licameli
c68e336247 More use of std:: style members of wxString...
... replacing:

Length => length
Len => length
2019-03-10 14:44:54 -04:00
Paul Licameli
4d978bcefb Use wxPrintf not printf 2017-12-16 11:54:32 -05:00
James Crook
c28be778e2 Linty fixes
This commit fixes a number of warnings shown in compilation with MSVC.  No behavioral changes intended.  I did not fix signed/unsigned warnings.
2017-11-07 14:23:30 +00:00
Paul Licameli
55439247ad All the catches are in place for BlockFile and other errors, now throw. 2017-04-03 23:32:40 -04:00
Paul Licameli
98d1468a01 BlockFile::ReadData overrides: on failure, pad with 0s or throw...
... as the mayThrow argument directs.
2017-03-21 14:19:03 -04:00
Paul Licameli
70d9e4bdc7 GetMinMax, GetRMS functions take a mayThrow argument, return numbers 2017-03-21 14:19:02 -04:00
Paul Licameli
ed6f2ea80f Exception safety in: locking of BlockFile for read 2017-03-21 14:11:27 -04:00
Paul Licameli
2677796b0c Zero and return false for all failures to read block file summary...
... Though in the only place where these summaries are used, which is
Sequence::GetWaveDisplay, we ignore the correctly reported error code anyway.

Also RAII in management of relevant memory buffers and mutexes.
2017-03-20 17:49:03 -04:00
Paul Licameli
b81cdee7e3 Comment where xml writing functions may throw 2017-03-18 11:45:05 -04:00
Paul Licameli
5de19dc952 ODDecode task checks blockfile error, making no progress if so...
... also replace explicit mutex locking with RAII and atomics.

This is a part of the big project that handles failure to write block files, as
from disk exhaustion.  ODDecodeBlockFile::WriteODDecodeBlockFile is the one
place calling WriteSimpleBlockFile but not (as in SimpleBlockFile constructor)
throwing an exception.

It is called only when attempting to recover files at open time, or in worker
threads in an EXPERIMENTAL code branch.
2017-03-17 17:52:55 -04:00
Paul Licameli
e6db1a57a3 Remove naked new[] in: blockfile and commands 2017-03-17 17:52:46 -04:00
Paul Licameli
aebaaf46a0 require unsigned arguments for Array(s)Of::reinit 2017-03-17 17:52:43 -04:00
Paul Licameli
3e51fd5078 fix some comments 2017-03-17 17:52:22 -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
Paul Licameli
78be459fa1 Convert sampleCount <-> floating or -> long long explicitly ...
... A non-narrowing conversion out to long long is a necessity, but the
conversions to float and double are simply conveniences.

Conversion from floating is explicit, to avoid unintended consequences with
arithmetic operators, when later sampleCount ceases to be an alias for an
integral type.

Some conversions are not made explicit, where I expect to change the type of
the variable later to have mere size_t width.
2016-09-15 21:02:31 -04:00
Paul Licameli
c9bff2f0f4 BlockFile::GetSpaceUsage() returns an unsigned value 2016-09-06 12:39:57 -04:00
Paul Licameli
367ed1dfce Uniform init in blockfile ctors (prevents implicit narrowings) 2016-08-22 21:45:54 -04:00
Paul Licameli
0c4c835b27 Write and read the wide aliasStart fields carefully...
...They may never have been large enough to matter, but some seek offsets into
files were written as 64 bits but read back as only 32.  It ought to be
consistent.
2016-08-21 09:18:06 -04:00
Paul Licameli
e7b4d935a5 Hide the use of new in factory functions for BlockFiles 2016-08-16 12:29:59 -04:00
Paul Licameli
2ede67be96 Use type alias for pointer to BlockFile, which is still a dumb pointer 2016-08-16 12:29:59 -04:00
Paul Licameli
b81efbb816 Remove duplicated, inaccurate RMS calculations 2016-06-22 10:12:24 -04:00
Paul Licameli
3d102a3390 Access BlockFile::mFileName without copying, with proper multithreading cautions 2016-04-17 13:58:21 -04:00
Paul Licameli
b6fdffbab2 Don't copy wxFileName often, it's not lightweight! Use wxFileNameWrapper...
... which is a new class that defines moves.
2016-04-16 11:57:39 -04:00
Paul Licameli
f94b3b3afa Add some const qualifiers to BlockFile methods 2016-04-10 21:05:20 -04:00
Paul Licameli
70bd46b8ad travis 2016-04-09 22:55:15 -04:00
Paul Licameli
1108c1376c Fix possible memory leak in use of overrides of BlockFile::CalcSummary 2016-04-05 23:30:33 -04:00
Paul Licameli
60bcd7aea2 Fix warnings for unused variables and functions 2016-02-26 14:56:26 -05:00
Paul Licameli
7c4c45a0d5 "new"->"NEW" in comments, easier to find remaining naked operator new 2016-02-14 18:52:41 -05:00
Paul Licameli
56e7653343 "delete"->"DELETE" in comments, easier to find remaining naked operator delete 2016-02-14 18:50:45 -05:00
Paul Licameli
321d5259a2 More uses of SampleBuffer, eliminating explicit DeleteSamples calls 2016-02-01 10:16:00 -05:00
benjamin.drung@gmail.com
277932dccb Remove trailing spaces. 2014-06-03 20:30:19 +00:00
v.audacity
c26b3c6b49 Campbell Barton's further patch to turn many, many tabs to our 3-space convenbtion 2013-02-23 04:33:20 +00:00
martynshaw99
cdd2ccf594 Remove spurious windows.h includes. 2012-12-31 22:12:23 +00:00
mchinen
816b58bc08 integrate OD FFmpeg to work with multiple formats, including wav
also move streamContext to ffmpeg.h to allow for refactoring of import code
2012-06-01 06:11:07 +00:00
martynshaw99
2fa98d3c16 Add missing header 2012-05-06 14:27:55 +00:00
martynshaw99
f8c81d332a Fix summary values for edge cases when overall signal does not straddle zero line. 2012-05-05 21:45:50 +00:00
v.audacity
5f5b9778de Fixes per Vigilant Sentry (http://www.vigilantsw.com/)
* Fix memory leaks.

* Add comments about initializations and checking for successful results.

* Add checks for NULL deref.

* Consistency in "TODO" vs "TO-DO" comments!
2012-02-08 05:09:14 +00:00
v.audacity
c6c3d9106b As in commit r11447, put a wxASSERT on result of SimpleBlockFile::WriteSimpleBlockFile() in ODDecodeBlockFile::WriteODDecodeBlockFile. 2012-02-02 00:36:39 +00:00
mchinen
ada7eaf758 Apply patch by Christopher Rudorff that fixes an issue where re-opening OD projects would create blockfiles with malformed filenames.
Modified by mchinen to cleanup debug messages and fix unbalanced mutex on error.
Original patch notes:

    OD loader doesn't properly continue scanning files
    
    BUG:
    
    * import large audio file with OD import
    * save and close project before OD finishes
    * open project again: OD failes badly on continuing
    
    Syntoms:
    
    * .auf.auf.auf worm files ...
    * truncated wave display
    
    The isse is subtile:
    
    <odpcmaliasblockfile summaryfile="e000031a.auf" aliasfile="/home/chris/Records/test/0.5seek+cue.flac" aliasstart="26738688" aliaslen="524288" aliaschannel="1"/>
    
    A ODPCMAliasBlockFile is a AliasBlockFile which has 3 overloaded
    constructer. One of then silently adds '.aup' to the summaryfile.
    
    So when creating those tracks from XML, we must use the other constructor.
    
    Now we run into a second bug:
    
    AudacityProject::OpenFile calls ProjectFSCK after reading which deletes
    the just created empty directories in the _data/e00 dir. OD is doomed.
    So simply skip rmdir in fsck.  The OD..Blockfiles will disapper when the
    OD finishes, so empty dirs will be deleted on further opening the project.
2011-04-28 19:57:37 +00:00
v.audacity
0332c60a2a Define one constant, PLATFORM_MAX_PATH, for maximum path value, so we don't have to do platform-specific conditionals everywhere we want to check it. In fact, we were actually checking that only for Windows. This is follow-on to Richard's message on audacity-devel about "overflow vulns".
Remove unnecessary declaration of MAX_PATH in BlockFile.h.
2011-01-06 00:07:59 +00:00
v.audacity
1c5ba68d55 (bug 137)
Make DirManager::MoveToNewProjectDirectory(), DirManager::CopyToNewProjectDirectory(), and several BuildFromXML() methods check the result of AssignFile() and do something appropriate about it on failure, rather than ignoring it. Also made AssignFile() check whether the assigned name is well-formed, so it doesn't always return TRUE when disckcheck is FALSE.

Briefer and more correct checks for uninitialized wxFileName objects.

Several "//ANSWER-ME" comments about file ops and commented-out cruft to probably remove.

Clarify some logic and readability.
2010-08-31 23:31:11 +00:00
v.audacity
3729f067be more progress on bug 113
better handling of error conditions in all BuildFromXML methods, per comment: 

// BuildFromXML methods should always return a BlockFile, not NULL,  
// even if the result is flawed (e.g., refers to nonexistent file), 
// as testing will be done in DirManager::ProjectFSCK().
2010-07-30 03:04:37 +00:00
mchinen
5a5957b422 Add seek support to OD-based FFmpeg import.
Also some minor refactoring.
This feature works with mp3 right now - may work on other formats, but that will be a seperate commit.
It is not enabled so most of the changes won't even be compiled, and those that do won't be run.
To enable it uncommment the EXPERIMENTAL_ODFFMPEG def in Experimental.h
2010-07-05 14:38:47 +00:00
businessmanprogrammersteve
a55c20be66 Fix most of the compile warnings I get on Linux (but not the Audacity Logo
xpm stuff or a few things in FFMPEG export)
2010-02-12 21:36:20 +00:00