xref: /haiku/headers/os/midi/MidiText.h (revision 7120e97489acbf17d86d3f33e3b2e68974fd4b23)
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 	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 dataLength, 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 	virtual void TempoChange(int32 beatsPerMinute, uint32 time = B_NOW);
46 
47  	virtual void AllNotesOff(bool justChannel = true, uint32 time = B_NOW);
48 
49 	void ResetTimer(bool start = false);
50 
51 private:
52 
53 	virtual void _ReservedMidiText1();
54 
55 	virtual void Run();
56 
57 	void WaitAndPrint(uint32 time);
58 
59 	int32 startTime;
60 	uint32 _reserved[4];
61 };
62 
63 #endif // _MIDI_TEXT_H
64 
65