ScummVM API documentation
midi.h
1/* ScummVM - Graphic Adventure Engine
2 *
3 * ScummVM is the legal property of its developers, whose names
4 * are too numerous to list here. Please refer to the COPYRIGHT
5 * file distributed with this source distribution.
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 *
20 */
21
22#ifndef ZVISION_MIDI_H
23#define ZVISION_MIDI_H
24
25class MidiDriver;
26
27namespace ZVision {
28
30public:
33
34 void stop();
35 void noteOn(uint8 channel, uint8 noteNumber, uint8 velocity);
36 void noteOff(uint8 channel);
37 void setVolume(uint8 channel, uint8 volume);
38 void setBalance(uint8 channel, int8 balance);
39 void setPan(uint8 channel, int8 pan);
40 void setProgram(uint8 channel, uint8 prog);
41
42 int8 getFreeChannel(); // Negative if none available
43 bool isAvailable() const {
44 return _available;
45 }
46
47protected:
48 bool _available = false;
49 bool _mt32 = false;
50 struct chan {
51 bool playing;
52 uint8 note;
53
54 chan() : playing(false), note(0) {}
55 };
56 void send(uint8 status, uint8 data1 = 0x00, uint8 data2 = 0x00);
57 uint8 _startChannel = 0;
58 uint8 _maxChannels = 16;
59 MidiDriver *_driver;
60 chan _activeChannels[16];
61};
62
63}
64
65#endif
Definition: mididrv.h:313
Definition: midi.h:29
Definition: focus_list.h:27
Definition: midi.h:50