/[svn]/linuxsampler/trunk/src/drivers/midi/MidiInputPort.cpp
ViewVC logotype

Diff of /linuxsampler/trunk/src/drivers/midi/MidiInputPort.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 244 by schoenebeck, Fri Sep 17 01:01:11 2004 UTC revision 274 by schoenebeck, Sat Oct 9 00:46:18 2004 UTC
# Line 84  namespace LinuxSampler { Line 84  namespace LinuxSampler {
84      }      }
85    
86      void MidiInputPort::DispatchNoteOn(uint8_t Key, uint8_t Velocity, uint MidiChannel) {      void MidiInputPort::DispatchNoteOn(uint8_t Key, uint8_t Velocity, uint MidiChannel) {
87          std::set<Engine*>::iterator engineiter = MidiChannelMap[MidiChannel].begin();          // dispatch event for engines listening to the same MIDI channel
88          std::set<Engine*>::iterator end        = MidiChannelMap[MidiChannel].end();          {
89          for (; engineiter != end; engineiter++) (*engineiter)->SendNoteOn(Key, Velocity);              std::set<Engine*>::iterator engineiter = MidiChannelMap[MidiChannel].begin();
90                std::set<Engine*>::iterator end        = MidiChannelMap[MidiChannel].end();
91                for (; engineiter != end; engineiter++) (*engineiter)->SendNoteOn(Key, Velocity);
92            }
93            // dispatch event for engines listening to ALL MIDI channels
94            {
95                std::set<Engine*>::iterator engineiter = MidiChannelMap[midi_chan_all].begin();
96                std::set<Engine*>::iterator end        = MidiChannelMap[midi_chan_all].end();
97                for (; engineiter != end; engineiter++) (*engineiter)->SendNoteOn(Key, Velocity);
98            }
99      }      }
100    
101      void MidiInputPort::DispatchNoteOff(uint8_t Key, uint8_t Velocity, uint MidiChannel) {      void MidiInputPort::DispatchNoteOff(uint8_t Key, uint8_t Velocity, uint MidiChannel) {
102          std::set<Engine*>::iterator engineiter = MidiChannelMap[MidiChannel].begin();          // dispatch event for engines listening to the same MIDI channel
103          std::set<Engine*>::iterator end        = MidiChannelMap[MidiChannel].end();          {
104          for (; engineiter != end; engineiter++) (*engineiter)->SendNoteOff(Key, Velocity);              std::set<Engine*>::iterator engineiter = MidiChannelMap[MidiChannel].begin();
105                std::set<Engine*>::iterator end        = MidiChannelMap[MidiChannel].end();
106                for (; engineiter != end; engineiter++) (*engineiter)->SendNoteOff(Key, Velocity);
107            }
108            // dispatch event for engines listening to ALL MIDI channels
109            {
110                std::set<Engine*>::iterator engineiter = MidiChannelMap[midi_chan_all].begin();
111                std::set<Engine*>::iterator end        = MidiChannelMap[midi_chan_all].end();
112                for (; engineiter != end; engineiter++) (*engineiter)->SendNoteOff(Key, Velocity);
113            }
114      }      }
115    
116      void MidiInputPort::DispatchPitchbend(int Pitch, uint MidiChannel) {      void MidiInputPort::DispatchPitchbend(int Pitch, uint MidiChannel) {
117          std::set<Engine*>::iterator engineiter = MidiChannelMap[MidiChannel].begin();          // dispatch event for engines listening to the same MIDI channel
118          std::set<Engine*>::iterator end        = MidiChannelMap[MidiChannel].end();          {
119          for (; engineiter != end; engineiter++) (*engineiter)->SendPitchbend(Pitch);              std::set<Engine*>::iterator engineiter = MidiChannelMap[MidiChannel].begin();
120                std::set<Engine*>::iterator end        = MidiChannelMap[MidiChannel].end();
121                for (; engineiter != end; engineiter++) (*engineiter)->SendPitchbend(Pitch);
122            }
123            // dispatch event for engines listening to ALL MIDI channels
124            {
125                std::set<Engine*>::iterator engineiter = MidiChannelMap[midi_chan_all].begin();
126                std::set<Engine*>::iterator end        = MidiChannelMap[midi_chan_all].end();
127                for (; engineiter != end; engineiter++) (*engineiter)->SendPitchbend(Pitch);
128            }
129      }      }
130    
131      void MidiInputPort::DispatchControlChange(uint8_t Controller, uint8_t Value, uint MidiChannel) {      void MidiInputPort::DispatchControlChange(uint8_t Controller, uint8_t Value, uint MidiChannel) {
132          std::set<Engine*>::iterator engineiter = MidiChannelMap[MidiChannel].begin();          // dispatch event for engines listening to the same MIDI channel
133          std::set<Engine*>::iterator end        = MidiChannelMap[MidiChannel].end();          {
134          for (; engineiter != end; engineiter++) (*engineiter)->SendControlChange(Controller, Value);              std::set<Engine*>::iterator engineiter = MidiChannelMap[MidiChannel].begin();
135                std::set<Engine*>::iterator end        = MidiChannelMap[MidiChannel].end();
136                for (; engineiter != end; engineiter++) (*engineiter)->SendControlChange(Controller, Value);
137            }
138            // dispatch event for engines listening to ALL MIDI channels
139            {
140                std::set<Engine*>::iterator engineiter = MidiChannelMap[midi_chan_all].begin();
141                std::set<Engine*>::iterator end        = MidiChannelMap[midi_chan_all].end();
142                for (; engineiter != end; engineiter++) (*engineiter)->SendControlChange(Controller, Value);
143            }
144      }      }
145    
146      void MidiInputPort::DispatchSysex(void* pData, uint Size) {      void MidiInputPort::DispatchSysex(void* pData, uint Size) {
147          for (uint MidiChannel = 0; MidiChannel <= 16; MidiChannel++) {          // dispatch event for engines listening to the same MIDI channel
148              std::set<Engine*>::iterator engineiter = MidiChannelMap[MidiChannel].begin();          {
149              std::set<Engine*>::iterator end        = MidiChannelMap[MidiChannel].end();              for (uint MidiChannel = 0; MidiChannel <= 16; MidiChannel++) {
150              for (; engineiter != end; engineiter++) (*engineiter)->SendSysex(pData, Size);                  std::set<Engine*>::iterator engineiter = MidiChannelMap[MidiChannel].begin();
151                    std::set<Engine*>::iterator end        = MidiChannelMap[MidiChannel].end();
152                    for (; engineiter != end; engineiter++) (*engineiter)->SendSysex(pData, Size);
153                }
154            }
155            // dispatch event for engines listening to ALL MIDI channels
156            {
157                for (uint MidiChannel = 0; MidiChannel <= 16; MidiChannel++) {
158                    std::set<Engine*>::iterator engineiter = MidiChannelMap[midi_chan_all].begin();
159                    std::set<Engine*>::iterator end        = MidiChannelMap[midi_chan_all].end();
160                    for (; engineiter != end; engineiter++) (*engineiter)->SendSysex(pData, Size);
161                }
162          }          }
163      }      }
164    

Legend:
Removed from v.244  
changed lines
  Added in v.274

  ViewVC Help
Powered by ViewVC