XMidiFile Class Reference

#include <XMidiFile.h>

List of all members.

Public Member Functions

 XMidiFile (IDataSource *source, int pconvert)
 ~XMidiFile ()
int number_of_tracks ()
XMidiEventListGetEventList (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
XMidiEventlist
XMidiEventbranches
XMidiEventcurrent
XMidiEventnotes_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


Detailed Description

Definition at line 40 of file XMidiFile.h.


Constructor & Destructor Documentation

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]


Member Function Documentation

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]

Definition at line 71 of file XMidiFile.h.

References num_tracks.


Member Data Documentation

bool XMidiFile::bank127[16] [private]

Definition at line 56 of file XMidiFile.h.

Referenced by ConvertEvent(), and XMidiFile().

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]

Definition at line 61 of file XMidiFile.h.

Referenced by ApplyFirstState(), and ExtractTracks().

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]

Definition at line 60 of file XMidiFile.h.

Referenced by ApplyFirstState(), and ExtractTracks().

bool XMidiFile::do_reverb [private]

Definition at line 59 of file XMidiFile.h.

Referenced by ApplyFirstState(), and ExtractTracks().

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]

Definition at line 53 of file XMidiFile.h.

Referenced by ConvertEvent().

const char XMidiFile::mt32asgs [static, private]

Definition at line 54 of file XMidiFile.h.

Referenced by ConvertEvent().

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]

Definition at line 62 of file XMidiFile.h.

Referenced by ApplyFirstState(), and ExtractTracks().


The documentation for this class was generated from the following files:
Generated on Fri Jul 27 22:30:12 2007 for pentagram by  doxygen 1.4.7