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 |
} |
} |
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 |
|
|
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 |
|
|