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