LMMS
Loading...
Searching...
No Matches
mfmidi.h
Go to the documentation of this file.
1#define NOTEOFF 0x80
2#define NOTEON 0x90
3#define PRESSURE 0xa0
4#define CONTROLLER 0xb0
5#define PITCHBEND 0xe0
6#define PROGRAM 0xc0
7#define CHANPRESSURE 0xd0
8
9/* These are the strings used in keynote to identify Standard MIDI File */
10/* meta text messages. */
11
12#define METATEXT "Text Event"
13#define METACOPYRIGHT "Copyright Notice"
14#define METASEQUENCE "Sequence/Track Name"
15#define METAINSTRUMENT "Instrument Name"
16#define METALYRIC "Lyric"
17#define METAMARKER "Marker"
18#define METACUE "Cue Point"
19#define METAUNRECOGNIZED "Unrecognized"
20
21
23public:
24 void midifile();
30 void finalize(); /* clean up before deletion */
36
37protected:
39
40 virtual void *Mf_malloc(size_t size) = 0;
41 virtual void Mf_free(void *obj, size_t size) = 0;
42 /* Methods to be called while processing the MIDI file. */
43 virtual void Mf_starttrack() = 0;
44 virtual void Mf_endtrack() = 0;
45 virtual int Mf_getc() = 0;
46 virtual void Mf_chanprefix(int) = 0;
47 virtual void Mf_portprefix(int) = 0;
48 virtual void Mf_eot() = 0;
49 virtual void Mf_error(const char *) = 0;
50 virtual void Mf_header(int,int,int) = 0;
51 virtual void Mf_on(int,int,int) = 0;
52 virtual void Mf_off(int,int,int) = 0;
53 virtual void Mf_pressure(int,int,int) = 0;
54 virtual void Mf_controller(int,int,int) = 0;
55 virtual void Mf_pitchbend(int,int,int) = 0;
56 virtual void Mf_program(int,int) = 0;
57 virtual void Mf_chanpressure(int,int) = 0;
58 virtual void Mf_sysex(int,unsigned char*) = 0;
59 virtual void Mf_arbitrary(int,unsigned char*) = 0;
60 virtual void Mf_metamisc(int,int,unsigned char*) = 0;
61 virtual void Mf_seqnum(int) = 0;
62 virtual void Mf_smpte(int,int,int,int,int) = 0;
63 virtual void Mf_timesig(int,int,int,int) = 0;
64 virtual void Mf_tempo(int) = 0;
65 virtual void Mf_keysig(int,int) = 0;
66 virtual void Mf_sqspecific(int,unsigned char*) = 0;
67 virtual void Mf_text(int,int,unsigned char*) = 0;
68
69private:
71
72 long readvarinum();
73 long read32bit();
74 int read16bit();
75 void msgenlarge();
76 unsigned char *msg();
77 int readheader();
78 void readtrack();
79 void sysex();
80 void msginit();
81 int egetc();
82 int msgleng();
83
84 int readmt(const char*,int);
85 long to32bit(int,int,int,int);
86 int to16bit(int,int);
87 void mferror(const char *);
88 void badbyte(int);
89 void metaevent(int);
90 void msgadd(int);
91 void chanmessage(int,int,int);
92
93 unsigned char *Msgbuff;
94 long Msgsize;
96};
97
98
long read32bit()
Definition mfmidi.cpp:474
virtual void Mf_chanprefix(int)=0
virtual void Mf_pressure(int, int, int)=0
long Msgindex
Definition mfmidi.h:95
unsigned char * Msgbuff
Definition mfmidi.h:93
long Mf_toberead
Definition mfmidi.h:70
int msgleng()
Definition mfmidi.cpp:554
int readheader()
Definition mfmidi.cpp:101
int read16bit()
Definition mfmidi.cpp:497
void msginit()
Definition mfmidi.cpp:544
virtual void Mf_off(int, int, int)=0
virtual void Mf_pitchbend(int, int, int)=0
void mferror(const char *)
Definition mfmidi.cpp:511
int midifile_error
Definition mfmidi.h:38
virtual void Mf_keysig(int, int)=0
void metaevent(int)
Definition mfmidi.cpp:320
virtual void Mf_free(void *obj, size_t size)=0
free()
virtual void Mf_portprefix(int)=0
int Mf_nomerge
1 => continue'ed system exclusives are not collapsed.
Definition mfmidi.h:25
virtual void Mf_sqspecific(int, unsigned char *)=0
virtual void Mf_arbitrary(int, unsigned char *)=0
virtual void Mf_sysex(int, unsigned char *)=0
virtual void Mf_error(const char *)=0
unsigned char * msg()
Definition mfmidi.cpp:549
void sysex()
Definition mfmidi.cpp:389
void midifile()
Definition mfmidi.cpp:24
virtual void Mf_program(int, int)=0
virtual void Mf_on(int, int, int)=0
virtual void Mf_controller(int, int, int)=0
long Mf_currtime
current time in delta-time units
Definition mfmidi.h:26
int readmt(const char *, int)
Definition mfmidi.cpp:42
virtual int Mf_getc()=0
virtual void Mf_eot()=0
virtual void Mf_smpte(int, int, int, int, int)=0
virtual void Mf_seqnum(int)=0
virtual void Mf_tempo(int)=0
virtual void Mf_timesig(int, int, int, int)=0
virtual void Mf_metamisc(int, int, unsigned char *)=0
void chanmessage(int, int, int)
Definition mfmidi.cpp:395
virtual void Mf_header(int, int, int)=0
Midifile_reader()
Definition mfmidi.cpp:523
virtual void Mf_starttrack()=0
void readtrack()
Definition mfmidi.cpp:136
virtual void * Mf_malloc(size_t size)=0
malloc()
int to16bit(int, int)
Definition mfmidi.cpp:469
int egetc()
Definition mfmidi.cpp:88
long Msgsize
Definition mfmidi.h:94
virtual void Mf_text(int, int, unsigned char *)=0
void badbyte(int)
Definition mfmidi.cpp:307
virtual void Mf_endtrack()=0
virtual void Mf_chanpressure(int, int)=0
void msgadd(int)
Definition mfmidi.cpp:559
long readvarinum()
Definition mfmidi.cpp:434
int Mf_skipinit
1 if initial garbage should be skipped
Definition mfmidi.h:27
void finalize()
call finalize() when done or you may leak memory.
Definition mfmidi.cpp:535
void msgenlarge()
Definition mfmidi.cpp:568
long to32bit(int, int, int, int)
Definition mfmidi.cpp:458
ulg size
Definition extract.c:2350