1
2#ifndef _MIDI_TEXT_H
3#define _MIDI_TEXT_H
4
5#include <BeBuild.h>
6#include <Midi.h>
7#include <stdio.h>
8
9class BMidiText : public BMidi {
10public:
11
12	BMidiText();
13	virtual ~BMidiText();
14
15	virtual void NoteOff(
16		uchar channel, uchar note, uchar velocity, uint32 time = B_NOW);
17
18	virtual void NoteOn(
19		uchar channel, uchar note, uchar velocity, uint32 time = B_NOW);
20
21	virtual void KeyPressure(
22		uchar channel, uchar note, uchar pressure, uint32 time = B_NOW);
23
24	virtual void ControlChange(
25		uchar channel, uchar controlNumber, uchar controlValue,
26		uint32 time = B_NOW);
27
28	virtual void ProgramChange(
29		uchar channel, uchar programNumber, uint32 time = B_NOW);
30
31	virtual void ChannelPressure(
32		uchar channel, uchar pressure, uint32 time = B_NOW);
33
34	virtual void PitchBend(
35		uchar channel, uchar lsb, uchar msb, uint32 time = B_NOW);
36
37	virtual void SystemExclusive(
38		void* data, size_t length, uint32 time = B_NOW);
39
40	virtual void SystemCommon(
41		uchar status, uchar data1, uchar data2, uint32 time = B_NOW);
42
43	virtual void SystemRealTime(uchar status, uint32 time = B_NOW);
44
45	void ResetTimer(bool start = false);
46
47private:
48
49	virtual void _ReservedMidiText1();
50	virtual void _ReservedMidiText2();
51	virtual void _ReservedMidiText3();
52
53	virtual void Run();
54
55	void _WaitAndPrint(uint32 time);
56
57	uint32 fStartTime;
58	uint32 _reserved[4];
59};
60
61#endif // _MIDI_TEXT_H
62
63