xref: /haiku/headers/os/midi/MidiText.h (revision e81a954787e50e56a7f06f72705b7859b6ab06d1)
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 public:
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 
47 private:
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