1
package org.herac.tuxguitar.player.base;
3
import java.util.ArrayList;
6
public class MidiTransmitter {
8
private List receivers;
10
public MidiTransmitter(){
11
this.receivers = new ArrayList();
14
public void sendSystemReset() throws MidiPlayerException {
15
for( int i = 0 ; i < this.receivers.size() ; i ++ ){
16
MidiReceiverItem receiver = (MidiReceiverItem) this.receivers.get( i );
17
receiver.getReceiver().sendSystemReset();
21
public void sendAllNotesOff() throws MidiPlayerException {
22
for( int i = 0 ; i < this.receivers.size() ; i ++ ){
23
MidiReceiverItem receiver = (MidiReceiverItem) this.receivers.get( i );
24
receiver.getReceiver().sendAllNotesOff();
28
public void sendNoteOn(int channel, int key, int velocity) throws MidiPlayerException {
29
for( int i = 0 ; i < this.receivers.size() ; i ++ ){
30
MidiReceiverItem receiver = (MidiReceiverItem) this.receivers.get( i );
31
receiver.getReceiver().sendNoteOn(channel, key, velocity);
35
public void sendNoteOff(int channel, int key, int velocity) throws MidiPlayerException {
36
for( int i = 0 ; i < this.receivers.size() ; i ++ ){
37
MidiReceiverItem receiver = (MidiReceiverItem) this.receivers.get( i );
38
receiver.getReceiver().sendNoteOff(channel, key, velocity);
42
public void sendProgramChange(int channel, int value) throws MidiPlayerException {
43
for( int i = 0 ; i < this.receivers.size() ; i ++ ){
44
MidiReceiverItem receiver = (MidiReceiverItem) this.receivers.get( i );
45
receiver.getReceiver().sendProgramChange(channel, value);
49
public void sendControlChange(int channel, int controller, int value) throws MidiPlayerException {
50
for( int i = 0 ; i < this.receivers.size() ; i ++ ){
51
MidiReceiverItem receiver = (MidiReceiverItem) this.receivers.get( i );
52
receiver.getReceiver().sendControlChange(channel, controller, value);
56
public void sendPitchBend(int channel, int value) throws MidiPlayerException {
57
for( int i = 0 ; i < this.receivers.size() ; i ++ ){
58
MidiReceiverItem receiver = (MidiReceiverItem) this.receivers.get( i );
59
receiver.getReceiver().sendPitchBend(channel, value);
63
public void addReceiver(String id, MidiReceiver receiver){
64
MidiReceiverItem item = getReceiver( id );
66
this.receivers.add( new MidiReceiverItem( id , receiver ) );
70
public void removeReceiver(String id){
71
MidiReceiverItem item = getReceiver( id );
73
this.receivers.remove( item );
77
private MidiReceiverItem getReceiver(String id){
79
for( int i = 0 ; i < this.receivers.size() ; i ++ ){
80
MidiReceiverItem receiver = (MidiReceiverItem) this.receivers.get( i );
81
if( receiver.getId() != null && receiver.getId().equals( id ) ){
89
private class MidiReceiverItem {
91
private MidiReceiver receiver;
93
public MidiReceiverItem(String id, MidiReceiver receiver){
95
this.receiver = receiver;
98
public String getId() {
102
public MidiReceiver getReceiver() {
103
return this.receiver;