AudioDataLib
A C++ library of classes supporting a variety of audio-data tasks.
Loading...
Searching...
No Matches
AudioDataLib::FileFormat Class Referenceabstract

Derivatives of this class must impliment an interface that can be used to read or write file data from or to a given stream. More...

#include <FileFormat.h>

Inheritance diagram for AudioDataLib::FileFormat:
AudioDataLib::AiffFileFormat AudioDataLib::DownloadableSoundFormat AudioDataLib::MidiFileFormat AudioDataLib::SoundFontFormat AudioDataLib::WaveFileFormat

Public Member Functions

 FileFormat ()
 
virtual ~FileFormat ()
 
virtual bool ReadFromStream (ByteStream &inputStream, FileData *&fileData, Error &error)=0
 
virtual bool WriteToStream (ByteStream &outputStream, const FileData *fileData, Error &error)=0
 

Static Public Member Functions

static std::shared_ptr< FileFormatCreateForFile (const std::string &filePath)
 

Detailed Description

Derivatives of this class must impliment an interface that can be used to read or write file data from or to a given stream.

Constructor & Destructor Documentation

◆ FileFormat()

FileFormat::FileFormat ( )

◆ ~FileFormat()

FileFormat::~FileFormat ( )
virtual

Member Function Documentation

◆ CreateForFile()

std::shared_ptr< FileFormat > FileFormat::CreateForFile ( const std::string & filePath)
static

This is a factory method which will create and return a shared pointer to a FileFormat class instance derivatve that can handle the given file.

Parameters
[in]filePathThe extension of the given file is used to determine what FileFormat to return.

◆ ReadFromStream()

virtual bool AudioDataLib::FileFormat::ReadFromStream ( ByteStream & inputStream,
FileData *& fileData,
Error & error )
pure virtual

The given file data pointer is assigned an instance of some derivative of the FileData class which is, in turn, populated with the data found in the given stream.

Parameters
[in,out]inputStreamThis must be a ByteStream derivative that can handle read operations.
[out]fileDataOn success, this pointer is assigned a heap allocation the user is reponsible for freeing.
[out]errorThis will contain error information if false is returned.
Returns
True is returned on success; false otherwise.

Implemented in AudioDataLib::AiffFileFormat, AudioDataLib::DownloadableSoundFormat, AudioDataLib::MidiFileFormat, AudioDataLib::SoundFontFormat, and AudioDataLib::WaveFileFormat.

◆ WriteToStream()

virtual bool AudioDataLib::FileFormat::WriteToStream ( ByteStream & outputStream,
const FileData * fileData,
Error & error )
pure virtual

The given file data is written to the given stream.

Parameters
[out]outputStreamThis must be a ByteStream derivative that can accept write operations.
[in]fileDataThis is the file data to be written to the stream.
[out]errorThis will contain error information if false is returned.
Returns
True is returned on success; false otherwise.

Implemented in AudioDataLib::AiffFileFormat, AudioDataLib::DownloadableSoundFormat, AudioDataLib::MidiFileFormat, AudioDataLib::SoundFontFormat, and AudioDataLib::WaveFileFormat.


The documentation for this class was generated from the following files: