18 #ifndef RAUL_SMF_WRITER_HPP
19 #define RAUL_SMF_WRITER_HPP
22 #include <raul/MIDISink.hpp>
23 #include <raul/TimeStamp.hpp>
35 bool start(
const std::string& filename,
36 TimeStamp start_time)
throw (std::logic_error);
38 TimeUnit unit()
const {
return _unit; }
42 const unsigned char* ev)
throw (std::logic_error);
46 void finish()
throw (std::logic_error);
49 static const uint32_t VAR_LEN_MAX = 0x0FFFFFFF;
54 void write_chunk_header(
const char id[4], uint32_t length);
55 void write_chunk(
const char id[4], uint32_t length,
void* data);
56 size_t write_var_len(uint32_t val);
58 std::string _filename;
70 #endif // RAUL_SMF_WRITER_HPP
Pure virtual base for anything you can write MIDI to.
Definition: MIDISink.hpp:30
uint32_t _header_size
size of SMF header, including MTrk chunk header
Definition: SMFWriter.hpp:64
A type of time stamp.
Definition: TimeStamp.hpp:32
Standard Midi File (Type 0) Writer.
Definition: SMFWriter.hpp:30
A real-time time stamp (possible units: frame, absolute (s), or beat).
Definition: TimeStamp.hpp:78
Raul::TimeStamp _last_ev_time
Time last event was written relative to _start_time.
Definition: SMFWriter.hpp:62