RAUL  0.8.0
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
Raul::SMFWriter Class Reference

Standard Midi File (Type 0) Writer. More...

#include <SMFWriter.hpp>

Inheritance diagram for Raul::SMFWriter:
Inheritance graph
Collaboration diagram for Raul::SMFWriter:
Collaboration graph

Public Member Functions

 SMFWriter (TimeUnit unit)
 Create a new SMF writer. More...
 
bool start (const std::string &filename, TimeStamp start_time) throw (std::logic_error)
 Start a write to an SMF file. More...
 
TimeUnit unit () const
 
void write_event (TimeStamp time, size_t ev_size, const unsigned char *ev) throw (std::logic_error)
 Write an event at the end of the file. More...
 
void flush ()
 
void finish () throw (std::logic_error)
 
- Public Member Functions inherited from Raul::MIDISink
virtual void write_event (TimeStamp time, size_t ev_size, const uint8_t *ev)=0
 

Protected Member Functions

void write_header ()
 
void write_footer ()
 
void write_chunk_header (const char id[4], uint32_t length)
 
void write_chunk (const char id[4], uint32_t length, void *data)
 
size_t write_var_len (uint32_t val)
 Write an SMF variable length value. More...
 

Protected Attributes

std::string _filename
 
FILE * _fd
 
TimeUnit _unit
 
Raul::TimeStamp _start_time
 
Raul::TimeStamp _last_ev_time
 Time last event was written relative to _start_time.
 
uint32_t _track_size
 
uint32_t _header_size
 size of SMF header, including MTrk chunk header
 

Static Protected Attributes

static const uint32_t VAR_LEN_MAX = 0x0FFFFFFF
 

Detailed Description

Standard Midi File (Type 0) Writer.

Constructor & Destructor Documentation

Raul::SMFWriter::SMFWriter ( TimeUnit  unit)
explicit

Create a new SMF writer.

unit must match the time stamp of ALL events passed to write, or terrible things will happen.

*** NOTE: Only beat time is implemented currently.

Member Function Documentation

bool Raul::SMFWriter::start ( const std::string &  filename,
Raul::TimeStamp  start_time 
)
throw (std::logic_error
)

Start a write to an SMF file.

filename Filename to write to. start_time Beat time corresponding to t=0 in the file (timestamps passed to write_event will have this value subtracted before writing).

void Raul::SMFWriter::write_event ( Raul::TimeStamp  time,
size_t  ev_size,
const unsigned char *  ev 
)
throw (std::logic_error
)

Write an event at the end of the file.

time is the absolute time of the event, relative to the start of the file (the start_time parameter to start). Must be monotonically increasing on successive calls to this method.

size_t Raul::SMFWriter::write_var_len ( uint32_t  value)
protected

Write an SMF variable length value.

Returns
size (in bytes) of the value written.

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