1
0
mirror of https://github.com/cookiengineer/audacity synced 2026-03-28 17:15:45 +01:00
Files
audacity/src/blockfile/LegacyBlockFile.h
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

72 lines
2.2 KiB
C++

/**********************************************************************
Audacity: A Digital Audio Editor
LegacyBlockFile.h
Dominic Mazzoni
**********************************************************************/
#ifndef __AUDACITY_LEGACY_BLOCKFILE__
#define __AUDACITY_LEGACY_BLOCKFILE__
#include <wx/string.h>
#include <wx/filename.h>
#include "../BlockFile.h"
void ComputeLegacySummaryInfo(const wxFileName &fileName,
size_t summaryLen,
sampleFormat format,
SummaryInfo *info,
bool noRMS,bool Silent,
float *min, float *max, float *rms);
//
// This class supports loading BlockFiles in one of the old
// Audacity BlockFile formats (versions 0.98 through 1.0, or
// versions 1.1.0 through 1.1.2). You can load a BlockFile
// in this format, and you can save information about it
// back to disk, but you can't create a NEW one from NEW
// sample data.
//
class LegacyBlockFile final : public BlockFile {
public:
// Constructor / Destructor
/// Create the memory structure to refer to the given block file
LegacyBlockFile(wxFileNameWrapper &&existingFile,
sampleFormat format,
size_t summaryLen,
size_t len,
bool noRMS);
virtual ~LegacyBlockFile();
// Reading
/// Read the summary section of the disk file
bool ReadSummary(ArrayOf<char> &data) override;
/// Read the data section of the disk file
size_t ReadData(samplePtr data, sampleFormat format,
size_t start, size_t len, bool mayThrow) const override;
/// Create a NEW block file identical to this one
BlockFilePtr Copy(wxFileNameWrapper &&newFileName) override;
/// Write an XML representation of this file
void SaveXML(XMLWriter &xmlFile) override;
DiskByteCount GetSpaceUsage() const override;
void Recover() override;
static BlockFilePtr BuildFromXML(const wxString &dir, const wxChar **attrs,
size_t len,
sampleFormat format);
protected:
sampleFormat mFormat;
};
#endif // __AUDACITY_LEGACY_BLOCKFILE__