Added documentation for Bluetooth MIDI components
[pdlib:btmidi.git] / BluetoothMidi / src / com / noisepages / nettoyeur / bluetooth / midi / BluetoothMidiReceiver.java
1 /*
2  * Copyright (C) 2011 Peter Brinkmann (peter.brinkmann@gmail.com)
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package com.noisepages.nettoyeur.bluetooth.midi;
18
19 import com.noisepages.nettoyeur.bluetooth.BluetoothSppObserver;
20
21
22 /**
23  * Callbacks for handling MIDI events and connection changes.  Note that these methods choose
24  * sanity over compliance with the MIDI standard, i.e., channel numbers start at 0, and pitch
25  * bend values are centered at 0.
26  * 
27  * @author Peter Brinkmann
28  */
29 public interface BluetoothMidiReceiver extends BluetoothSppObserver {
30
31         /**
32          * Handles note off events.
33          * 
34          * @param channel starting at 0
35          * @param key
36          * @param velocity
37          */
38         void onNoteOff(int channel, int key, int velocity);
39
40         /**
41          * Handles note on events.
42          * 
43          * @param channel starting at 0
44          * @param key
45          * @param velocity
46          */
47         void onNoteOn(int channel, int key, int velocity);
48
49         /**
50          * Handles polyphonic aftertouch events.
51          * 
52          * @param channel starting at 0
53          * @param key
54          * @param velocity
55          */
56         void onPolyAftertouch(int channel, int key, int velocity);
57
58         /**
59          * Handles a control change message.
60          * 
61          * @param channel starting at 0
62          * @param controller
63          * @param value
64          */
65         void onControlChange(int channel, int controller, int value);
66
67         /**
68          * Handles a program change message.
69          * 
70          * @param channel starting at 0
71          * @param program
72          */
73         void onProgramChange(int channel, int program);
74
75         /**
76          * Handles a channel aftertouch event.
77          * 
78          * @param channel starting at 0
79          * @param velocity
80          */
81         void onAftertouch(int channel, int velocity);
82
83         /**
84          * Handles a pitch bend event.
85          * 
86          * @param channel starting at 0
87          * @param value centered at 0, ranging from -8192 to 8191
88          */
89         void onPitchBend(int channel, int value);
90
91 }