#ifndef __LOADMIDI_H__ #define __LOADMIDI_H__ #include "midi_parse.h" #include "TrackList.h" #include "TrackListList.h" #include #include #include #include class LoadMidi: public midi_parse { public: LoadMidi(entry_ref *); ~LoadMidi(); TrackListList *Load(void); float CurrentTime(void); /* overloaded midi_parse functions */ virtual void M_header(int format, int trackCount, int qnDivision); virtual void M_trackstart(uint32 trackLength); virtual void M_text(int type, int length, const char *msg); virtual void M_tempo(long tempo); virtual void M_programChange(int channel, int instrument); virtual void M_noteOn(int channel, int note, int velocity); virtual void M_noteOff(int channel, int note, int velocity); virtual void M_pitchBend(int channel, int value); virtual void M_keysig(int sharp_flat, int minor); virtual void M_controlChange(int channel, int controller, int value); virtual void M_timesig(int num, int den, int click, int clock); virtual void M_trackEnd(void); virtual void M_polyAfterTouch(int channel, int pitch, int pressure) {printf("polyaftertouch!\n");};//aka pressure virtual void M_channelAfterTouch(int channel, int pressure) {printf("channel aftertouch!\n");};//aka channel pressure virtual void M_sysEx(int length, const char *data) {printf("sys ex!\n");}; virtual void M_metaMisc(int length, const char * data) {printf("misc!\n");}; virtual void M_seqSpecific(int length, const char *msg) {printf("seqspec!\n");}; virtual void M_seqnum(int num) {printf("seqnum!\n");}; virtual void M_eot(void) {}; virtual void M_smpte(int hour, int minute, int second, int frame, int fract_frame) {printf("smpte\n");}; virtual void M_prefixChannel(int ch) {printf("prefix channel!\n");}; private: virtual void Write8(uint8) {}; virtual uint8 Read8(void); int mErr; BFile *mFile; TrackListList *mList; TrackList *tList; // current track list BString *name; //name of the file int trackNo; // number of the current track int Division; //quarter note division }; #endif