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

This class can read and write MIDI files. More...

#include <MidiFileFormat.h>

Inheritance diagram for AudioDataLib::MidiFileFormat:
AudioDataLib::FileFormat

Public Member Functions

 MidiFileFormat ()
 
virtual ~MidiFileFormat ()
 
virtual bool ReadFromStream (ByteStream &inputStream, FileData *&fileData, Error &error) override
 
virtual bool WriteToStream (ByteStream &outputStream, const FileData *fileData, Error &error) override
 
- Public Member Functions inherited from AudioDataLib::FileFormat
 FileFormat ()
 
virtual ~FileFormat ()
 

Static Public Member Functions

static bool DecodeEvent (ByteStream &inputStream, MidiData::Event *&event, Error &error)
 
static bool EncodeEvent (ByteStream &outputStream, const MidiData::Event *event, Error &error)
 
static bool DecodeVariableLengthValue (uint64_t &value, ByteStream &inputStream, Error &error)
 
static bool EncodeVariableLengthValue (uint64_t value, ByteStream &outputStream, Error &error)
 
- Static Public Member Functions inherited from AudioDataLib::FileFormat
static std::shared_ptr< FileFormatCreateForFile (const std::string &filePath)
 

Detailed Description

This class can read and write MIDI files.

For now, not all MIDI file features are supported here, but many are. In any case, it's a good start.

Constructor & Destructor Documentation

◆ MidiFileFormat()

MidiFileFormat::MidiFileFormat ( )

◆ ~MidiFileFormat()

MidiFileFormat::~MidiFileFormat ( )
virtual

Member Function Documentation

◆ DecodeEvent()

bool MidiFileFormat::DecodeEvent ( ByteStream & inputStream,
MidiData::Event *& event,
Error & error )
static

◆ DecodeVariableLengthValue()

bool MidiFileFormat::DecodeVariableLengthValue ( uint64_t & value,
ByteStream & inputStream,
Error & error )
static

◆ EncodeEvent()

bool MidiFileFormat::EncodeEvent ( ByteStream & outputStream,
const MidiData::Event * event,
Error & error )
static

◆ EncodeVariableLengthValue()

bool MidiFileFormat::EncodeVariableLengthValue ( uint64_t value,
ByteStream & outputStream,
Error & error )
static

◆ ReadFromStream()

bool MidiFileFormat::ReadFromStream ( ByteStream & inputStream,
FileData *& fileData,
Error & error )
overridevirtual

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.

Implements AudioDataLib::FileFormat.

◆ WriteToStream()

bool MidiFileFormat::WriteToStream ( ByteStream & outputStream,
const FileData * fileData,
Error & error )
overridevirtual

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.

Implements AudioDataLib::FileFormat.


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