1
0
mirror of https://github.com/cookiengineer/audacity synced 2026-03-27 00:25:43 +01:00
Files
audacity/src/blockfile/PCMAliasBlockFile.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

52 lines
1.8 KiB
C++

/**********************************************************************
Audacity: A Digital Audio Editor
PCMAliasBlockFile.h
Joshua Haberman
**********************************************************************/
#ifndef __AUDACITY_PCMALIASBLOCKFILE__
#define __AUDACITY_PCMALIASBLOCKFILE__
#include "../BlockFile.h"
#include "../DirManager.h"
/// An AliasBlockFile that references uncompressed data in an existing file
class PCMAliasBlockFile /* not final */ : public AliasBlockFile
{
public:
/// Constructs a PCMAliasBlockFile, writing the summary to disk
PCMAliasBlockFile(wxFileNameWrapper &&baseFileName,
wxFileNameWrapper &&aliasedFileName,
sampleCount aliasStart,
size_t aliasLen, int aliasChannel);
///Constructs a PCMAliasBlockFile with the option of not writing to disk
PCMAliasBlockFile(wxFileNameWrapper &&fileName,
wxFileNameWrapper &&aliasedFileName,
sampleCount aliasStart,
size_t aliasLen, int aliasChannel,bool writeSummary);
PCMAliasBlockFile(wxFileNameWrapper &&existingSummaryFileName,
wxFileNameWrapper &&aliasedFileName,
sampleCount aliasStart,
size_t aliasLen, int aliasChannel,
float min, float max, float rms);
virtual ~PCMAliasBlockFile();
/// Reads the specified data from the aliased file using libsndfile
size_t ReadData(samplePtr data, sampleFormat format,
size_t start, size_t len, bool mayThrow) const override;
void SaveXML(XMLWriter &xmlFile) override;
BlockFilePtr Copy(wxFileNameWrapper &&fileName) override;
void Recover() override;
static BlockFilePtr BuildFromXML(DirManager &dm, const wxChar **attrs);
};
#endif