BTRFS: Implement BTree::Path and change _Find.
[haiku.git] / src / apps / midiplayer / SynthBridge.h
blobddaf9ac2322a912a74f6a6a03e692213debc07ac
1 /*
2 * Copyright (c) 2004 Matthijs Hollemans
3 * Copyright (c) 2008-2014 Haiku, Inc. All rights reserved.
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
12 * The above copyright notice and this permission notice shall be included in
13 * all copies or substantial portions of the Software.
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21 * DEALINGS IN THE SOFTWARE.
23 #ifndef _SYNTH_BRIDGE_H
24 #define _SYNTH_BRIDGE_H
27 #include <MidiConsumer.h>
28 #include <MidiSynth.h>
31 class SynthBridge : public BMidiLocalConsumer {
32 public:
33 SynthBridge();
35 bool Init(synth_mode mode);
37 BMidiSynth* MidiSynth();
39 virtual void NoteOff(uchar channel, uchar note, uchar velocity,
40 bigtime_t time);
42 virtual void NoteOn(uchar channel, uchar note, uchar velocity,
43 bigtime_t time);
45 virtual void KeyPressure(uchar channel, uchar note, uchar pressure,
46 bigtime_t time);
48 virtual void ControlChange(uchar channel, uchar controlNumber,
49 uchar controlValue, bigtime_t time);
51 virtual void ProgramChange(uchar channel, uchar programNumber,
52 bigtime_t time);
54 virtual void ChannelPressure( uchar channel, uchar pressure,
55 bigtime_t time);
57 virtual void PitchBend(uchar channel, uchar lsb, uchar msb,
58 bigtime_t time);
60 virtual void AllNotesOff(bool justChannel, bigtime_t time);
62 protected:
63 virtual ~SynthBridge() {}
65 private:
66 BMidiSynth fMidiSynth;
70 #endif // _SYNTH_BRIDGE_H