#include <XMidiFile.h>
Public Member Functions | |
XMidiFile (IDataSource *source, int pconvert) | |
~XMidiFile () | |
int | number_of_tracks () |
XMidiEventList * | GetEventList (uint32 track) |
Protected Attributes | |
uint16 | num_tracks |
Private Member Functions | |
XMidiFile () | |
void | CreateNewEvent (int time) |
int | GetVLQ (IDataSource *source, uint32 &quant) |
int | GetVLQ2 (IDataSource *source, uint32 &quant) |
void | AdjustTimings (uint32 ppqn) |
void | ApplyFirstState (first_state &fs, int chan_mask) |
int | ConvertNote (const int time, const unsigned char status, IDataSource *source, const int size) |
int | ConvertEvent (const int time, const unsigned char status, IDataSource *source, const int size, first_state &fs) |
int | ConvertSystemMessage (const int time, const unsigned char status, IDataSource *source) |
int | CreateMT32SystemMessage (const int time, uint32 address_base, uint16 address_offset, uint32 len, const void *data=0, IDataSource *source=0) |
int | ConvertFiletoList (IDataSource *source, const bool is_xmi, first_state &fs) |
int | ExtractTracksFromXmi (IDataSource *source) |
int | ExtractTracksFromMid (IDataSource *source, const uint32 ppqn, const int num_tracks, const bool type1) |
int | ExtractTracks (IDataSource *source) |
int | ExtractTracksFromU7V (IDataSource *source) |
int | ExtractTracksFromXMIDIMT (IDataSource *source) |
void | InsertDisplayEvents () |
Private Attributes | |
XMidiEventList ** | events |
XMidiEvent * | list |
XMidiEvent * | branches |
XMidiEvent * | current |
XMidiEvent * | notes_on |
bool | bank127 [16] |
int | convert_type |
bool | do_reverb |
bool | do_chorus |
int | chorus_value |
int | reverb_value |
Static Private Attributes | |
static const char | mt32asgm [128] |
static const char | mt32asgs [256] |
static const char | gmasmt32 [128] |
Classes | |
struct | first_state |
Definition at line 40 of file XMidiFile.h.
XMidiFile::XMidiFile | ( | IDataSource * | source, | |
int | pconvert | |||
) |
Definition at line 524 of file XMidiFile.cpp.
References bank127, ExtractTracks(), and InsertDisplayEvents().
XMidiFile::~XMidiFile | ( | ) |
Definition at line 536 of file XMidiFile.cpp.
References events, XMidiEvent::Free(), and num_tracks.
XMidiFile::XMidiFile | ( | ) | [private] |
void XMidiFile::AdjustTimings | ( | uint32 | ppqn | ) | [private] |
Definition at line 1001 of file XMidiFile.cpp.
References XMidiNoteStack::FindAndPop(), if(), list, XMidiEvent::next, prev, and XMidiNoteStack::Push().
Referenced by ExtractTracksFromMid().
void XMidiFile::ApplyFirstState | ( | first_state & | fs, | |
int | chan_mask | |||
) | [private] |
Definition at line 666 of file XMidiFile.cpp.
References XMidiFile::first_state::bank, NS_TIMIDITY::channel, chorus_value, convert_type, do_chorus, do_reverb, if(), PentZip::int(), list, XMidiFile::first_state::pan, XMidiFile::first_state::patch, reverb_value, and XMidiFile::first_state::vol.
Referenced by ExtractTracksFromMid().
int XMidiFile::ConvertEvent | ( | const int | time, | |
const unsigned char | status, | |||
IDataSource * | source, | |||
const int | size, | |||
first_state & | fs | |||
) | [private] |
Definition at line 1073 of file XMidiFile.cpp.
References XMidiFile::first_state::bank, bank127, XMidiEvent::branch_index, branches, convert_type, CreateNewEvent(), current, XMidiEvent::data, XMidiEvent::ex, gmasmt32, mt32asgm, mt32asgs, XMidiFile::first_state::pan, XMidiFile::first_state::patch, IDataSource::read1(), XMidiEvent::status, XMidiEvent::time, and XMidiFile::first_state::vol.
Referenced by ConvertFiletoList().
int XMidiFile::ConvertFiletoList | ( | IDataSource * | source, | |
const bool | is_xmi, | |||
first_state & | fs | |||
) | [private] |
Definition at line 1311 of file XMidiFile.cpp.
References ConvertEvent(), ConvertNote(), ConvertSystemMessage(), IDataSource::getPos(), IDataSource::getSize(), GetVLQ(), GetVLQ2(), IDataSource::read1(), IDataSource::seek(), and time.
Referenced by ExtractTracksFromMid(), and ExtractTracksFromXmi().
int XMidiFile::ConvertNote | ( | const int | time, | |
const unsigned char | status, | |||
IDataSource * | source, | |||
const int | size | |||
) | [private] |
Definition at line 1187 of file XMidiFile.cpp.
References CreateNewEvent(), current, XMidiEvent::data, XMidiEvent::ex, GetVLQ(), XMidiEvent::note_on, prev, IDataSource::read1(), and XMidiEvent::status.
Referenced by ConvertFiletoList().
int XMidiFile::ConvertSystemMessage | ( | const int | time, | |
const unsigned char | status, | |||
IDataSource * | source | |||
) | [private] |
Definition at line 1232 of file XMidiFile.cpp.
References CreateNewEvent(), current, XMidiEvent::data, XMidiEvent::ex, GetVLQ(), IDataSource::read(), IDataSource::read1(), XMidiEvent::status, and XMidiEvent::sysex_data.
Referenced by ConvertFiletoList(), ExtractTracksFromU7V(), ExtractTracksFromXmi(), and ExtractTracksFromXMIDIMT().
int XMidiFile::CreateMT32SystemMessage | ( | const int | time, | |
uint32 | address_base, | |||
uint16 | address_offset, | |||
uint32 | len, | |||
const void * | data = 0 , |
|||
IDataSource * | source = 0 | |||
) | [private] |
Definition at line 1263 of file XMidiFile.cpp.
References CreateNewEvent(), current, XMidiEvent::ex, IDataSource::read(), XMidiEvent::status, XMidiEvent::sysex_data, and sysex_data_start.
Referenced by ExtractTracksFromU7V(), ExtractTracksFromXMIDIMT(), and InsertDisplayEvents().
void XMidiFile::CreateNewEvent | ( | int | time | ) | [private] |
Definition at line 567 of file XMidiFile.cpp.
References current, list, XMidiEvent::next, and XMidiEvent::time.
Referenced by ConvertEvent(), ConvertNote(), ConvertSystemMessage(), and CreateMT32SystemMessage().
int XMidiFile::ExtractTracks | ( | IDataSource * | source | ) | [private] |
Definition at line 1523 of file XMidiFile.cpp.
References chorus_value, convert_type, do_chorus, do_reverb, events, ExtractTracksFromMid(), ExtractTracksFromU7V(), ExtractTracksFromXmi(), ExtractTracksFromXMIDIMT(), XMidiEvent::Free(), IDataSource::getPos(), num_tracks, perr, IDataSource::read(), IDataSource::read2(), IDataSource::read2high(), IDataSource::read4(), IDataSource::read4high(), reverb_value, IDataSource::seek(), and IDataSource::skip().
Referenced by XMidiFile().
int XMidiFile::ExtractTracksFromMid | ( | IDataSource * | source, | |
const uint32 | ppqn, | |||
const int | num_tracks, | |||
const bool | type1 | |||
) | [private] |
Definition at line 1465 of file XMidiFile.cpp.
References AdjustTimings(), ApplyFirstState(), XMidiEventList::branches, branches, ConvertFiletoList(), XMidiEventList::events, events, IDataSource::getPos(), IDataSource::getSize(), list, IDataSource::read(), IDataSource::read4high(), IDataSource::seek(), and IDataSource::skip().
Referenced by ExtractTracks().
int XMidiFile::ExtractTracksFromU7V | ( | IDataSource * | source | ) | [private] |
Definition at line 1794 of file XMidiFile.cpp.
References all_dev_reset_base, branches, ConvertSystemMessage(), CreateMT32SystemMessage(), current, XMidiEventList::events, events, IDataSource::getSize(), list, num_tracks, patch_base, patch_mem_offset(), patch_mem_size, patch_template, perr, pout, IDataSource::read1(), rhythm_base, rhythm_mem_offset_note(), rhythm_mem_size, IDataSource::seek(), system_base, timbre_base, timbre_mem_offset(), timbre_mem_size, PatchMemData::timbre_num, time, U7PercussionData, and U7PercussionNotes.
Referenced by ExtractTracks().
int XMidiFile::ExtractTracksFromXmi | ( | IDataSource * | source | ) | [private] |
Definition at line 1403 of file XMidiFile.cpp.
References XMidiEventList::branches, branches, XMidiEventList::chan_mask, ConvertFiletoList(), ConvertSystemMessage(), current, XMidiEventList::events, events, IDataSource::getPos(), IDataSource::getSize(), list, num_tracks, IDataSource::read(), IDataSource::read4high(), IDataSource::seek(), and IDataSource::skip().
Referenced by ExtractTracks().
int XMidiFile::ExtractTracksFromXMIDIMT | ( | IDataSource * | source | ) | [private] |
Definition at line 1916 of file XMidiFile.cpp.
References all_dev_reset_base, branches, ConvertSystemMessage(), CreateMT32SystemMessage(), current, XMidiEventList::events, events, list, num_tracks, IDataSource::seek(), system_base, system_init_reverb, system_part_chans, system_part_rsv, and time.
Referenced by ExtractTracks().
XMidiEventList * XMidiFile::GetEventList | ( | uint32 | track | ) |
Definition at line 549 of file XMidiFile.cpp.
References events, num_tracks, and perr.
Referenced by LowLevelMidiDriver::loadTimbreLibrary(), MusicProcess::playMusic_internal(), and MusicProcess::run().
int XMidiFile::GetVLQ | ( | IDataSource * | source, | |
uint32 & | quant | |||
) | [private] |
Definition at line 614 of file XMidiFile.cpp.
References IDataSource::read1().
Referenced by ConvertFiletoList(), ConvertNote(), and ConvertSystemMessage().
int XMidiFile::GetVLQ2 | ( | IDataSource * | source, | |
uint32 & | quant | |||
) | [private] |
Definition at line 641 of file XMidiFile.cpp.
References IDataSource::read1(), and IDataSource::skip().
Referenced by ConvertFiletoList().
void XMidiFile::InsertDisplayEvents | ( | ) | [private] |
Definition at line 1975 of file XMidiFile.cpp.
References CreateMT32SystemMessage(), current, display, display_base, display_beginning, display_beginning_bg, display_beginning_si, display_black_gate, display_mem_size, display_serpent_isle, XMidiEventList::events, events, list, XMidiEvent::next, and XMidiEvent::time.
Referenced by XMidiFile().
int XMidiFile::number_of_tracks | ( | ) | [inline] |
bool XMidiFile::bank127[16] [private] |
XMidiEvent* XMidiFile::branches [private] |
Definition at line 49 of file XMidiFile.h.
Referenced by ConvertEvent(), ExtractTracksFromMid(), ExtractTracksFromU7V(), ExtractTracksFromXmi(), and ExtractTracksFromXMIDIMT().
int XMidiFile::chorus_value [private] |
int XMidiFile::convert_type [private] |
Definition at line 57 of file XMidiFile.h.
Referenced by ApplyFirstState(), ConvertEvent(), and ExtractTracks().
XMidiEvent* XMidiFile::current [private] |
Definition at line 50 of file XMidiFile.h.
Referenced by ConvertEvent(), ConvertNote(), ConvertSystemMessage(), CreateMT32SystemMessage(), CreateNewEvent(), ExtractTracksFromU7V(), ExtractTracksFromXmi(), ExtractTracksFromXMIDIMT(), and InsertDisplayEvents().
bool XMidiFile::do_chorus [private] |
bool XMidiFile::do_reverb [private] |
XMidiEventList** XMidiFile::events [private] |
Definition at line 46 of file XMidiFile.h.
Referenced by ExtractTracks(), ExtractTracksFromMid(), ExtractTracksFromU7V(), ExtractTracksFromXmi(), ExtractTracksFromXMIDIMT(), GetEventList(), InsertDisplayEvents(), and ~XMidiFile().
const char XMidiFile::gmasmt32 [static, private] |
Initial value:
{ 0x00, 0x01, 0x03, 0x07, 0x05, 0x06, 0x11, 0x15, 0x16, 0x65, 0x65, 0x62, 0x68, 0x67, 0x66, 0x69, 0x0C, 0x09, 0x0A, 0x0D, 0x0E, 0x0F, 0x57, 0x0F, 0x3B, 0x3C, 0x3B, 0x3E, 0x3D, 0x3B, 0x3E, 0x3E, 0x40, 0x43, 0x42, 0x47, 0x44, 0x45, 0x42 , 0x46, 0x35, 0x34, 0x36, 0x38, 0x35, 0x33, 0x39 , 0x70, 0X30, 0x32, 0x30, 0x32, 0x22, 0x2A, 0x21, 0x7A, 0X58, 0x5A, 0x5E, 0x59, 0x5C, 0x5F, 0x59, 0x5B, 0x4E, 0x4F, 0x50, 0x51, 0x54, 0x55, 0x56, 0x53, 0x4B, 0x49, 0x4C, 0x4D, 0x6E, 0x6B, 0x6C, 0x48, 0x2F, 0x43, 0x4B, 0x33, 0x3D, 0x48, 0x34, 0x43, 0x20, 0x21, 0x43, 0x22, 0x20, 0x20, 0x21, 0x21, 0x29, 0x24, 0x23, 0x25, 0x2D, 0x21, 0x2B, 0x20, 0x3F, 0x69, 0x69, 0x69, 0x33, 0x51, 0x34, 0x51, 0x17, 0x67, 0x67, 0x71, 0x75, 0x71, 0x74, 0x77, 0x7C, 0x78, 0x77, 0x7C, 0x7B, 0x78, 0x77, 0x72 }
Definition at line 55 of file XMidiFile.h.
Referenced by ConvertEvent().
XMidiEvent* XMidiFile::list [private] |
Definition at line 48 of file XMidiFile.h.
Referenced by AdjustTimings(), ApplyFirstState(), CreateNewEvent(), ExtractTracksFromMid(), ExtractTracksFromU7V(), ExtractTracksFromXmi(), ExtractTracksFromXMIDIMT(), and InsertDisplayEvents().
const char XMidiFile::mt32asgm [static, private] |
const char XMidiFile::mt32asgs [static, private] |
XMidiEvent* XMidiFile::notes_on [private] |
Definition at line 51 of file XMidiFile.h.
uint16 XMidiFile::num_tracks [protected] |
Definition at line 43 of file XMidiFile.h.
Referenced by ExtractTracks(), ExtractTracksFromU7V(), ExtractTracksFromXmi(), ExtractTracksFromXMIDIMT(), GetEventList(), number_of_tracks(), and ~XMidiFile().
int XMidiFile::reverb_value [private] |