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

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

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

revision 1295 by persson, Fri Jun 22 10:10:06 2007 UTC revision 1296 by iliev, Wed Aug 15 17:43:34 2007 UTC
# Line 86  namespace LinuxSampler { Line 86  namespace LinuxSampler {
86      }      }
87    
88      void MidiInputDeviceAlsa::MidiInputPortAlsa::ParameterAlsaSeqBindings::OnSetValue(std::vector<String> vS) throw (Exception) {      void MidiInputDeviceAlsa::MidiInputPortAlsa::ParameterAlsaSeqBindings::OnSetValue(std::vector<String> vS) throw (Exception) {
89            std::vector<snd_seq_port_subscribe_t*>::iterator it = pPort->subscriptions.begin();
90            for (; it != pPort->subscriptions.end(); it++) {
91                if(snd_seq_unsubscribe_port(pPort->pDevice->hAlsaSeq, *it)) {
92                    dmsg(1,("ParameterAlsaSeqBindings::OnSetValue: Can't unsubscribe port connection!.\n"));
93                }
94                snd_seq_port_subscribe_free(*it);
95            }
96            pPort->subscriptions.clear();
97            
98          std::vector<String>::iterator iter = vS.begin();          std::vector<String>::iterator iter = vS.begin();
99          for (; iter != vS.end(); iter++) pPort->ConnectToAlsaMidiSource((*iter).c_str());          for (; iter != vS.end(); iter++) pPort->ConnectToAlsaMidiSource((*iter).c_str());
100      }      }
# Line 157  namespace LinuxSampler { Line 166  namespace LinuxSampler {
166          sender.port   = (char) hExtPort;          sender.port   = (char) hExtPort;
167          dest.client   = (char) pDevice->hAlsaSeqClient;          dest.client   = (char) pDevice->hAlsaSeqClient;
168          dest.port     = (char) portNumber;          dest.port     = (char) portNumber;
169          snd_seq_port_subscribe_alloca(&subs);          snd_seq_port_subscribe_malloc(&subs);
170          snd_seq_port_subscribe_set_sender(subs, &sender);          snd_seq_port_subscribe_set_sender(subs, &sender);
171          snd_seq_port_subscribe_set_dest(subs, &dest);          snd_seq_port_subscribe_set_dest(subs, &dest);
172          snd_seq_port_subscribe_set_queue(subs, 1);          snd_seq_port_subscribe_set_queue(subs, 1);
173          snd_seq_port_subscribe_set_time_update(subs, 1);          snd_seq_port_subscribe_set_time_update(subs, 1);
174          snd_seq_port_subscribe_set_time_real(subs, 1);          snd_seq_port_subscribe_set_time_real(subs, 1);
175          if (snd_seq_subscribe_port(pDevice->hAlsaSeq, subs) < 0)          if (snd_seq_subscribe_port(pDevice->hAlsaSeq, subs) < 0) {
176                snd_seq_port_subscribe_free(subs);
177              throw MidiInputException(String("Unable to connect to Alsa seq client \'") + MidiSource + "\' (" + snd_strerror(errno) + ")");              throw MidiInputException(String("Unable to connect to Alsa seq client \'") + MidiSource + "\' (" + snd_strerror(errno) + ")");
178            }
179    
180            subscriptions.push_back(subs);
181      }      }
182    
183    
# Line 221  namespace LinuxSampler { Line 234  namespace LinuxSampler {
234      }      }
235    
236      String MidiInputDeviceAlsa::Version() {      String MidiInputDeviceAlsa::Version() {
237              String s = "$Revision: 1.19 $";              String s = "$Revision: 1.20 $";
238              return s.substr(11, s.size() - 13); // cut dollar signs, spaces and CVS macro keyword              return s.substr(11, s.size() - 13); // cut dollar signs, spaces and CVS macro keyword
239      }      }
240    

Legend:
Removed from v.1295  
changed lines
  Added in v.1296

  ViewVC Help
Powered by ViewVC