Ardour/ALSA allow multiple MIDI devices with the same name
This commit is contained in:
parent
210d03a477
commit
8ccc45d44d
|
@ -1644,7 +1644,12 @@ AlsaAudioBackend::register_system_midi_ports(const std::string device)
|
|||
delete mout;
|
||||
} else {
|
||||
char tmp[64];
|
||||
snprintf(tmp, sizeof(tmp), "system:midi_playback_%u", elf_hash (i->first));
|
||||
for (int x = 0; x < 10; ++x) {
|
||||
snprintf(tmp, sizeof(tmp), "system:midi_playback_%x%d", elf_hash (i->first), x);
|
||||
if (!find_port (tmp)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
PortHandle p = add_port(std::string(tmp), DataType::MIDI, static_cast<PortFlags>(IsInput | IsPhysical | IsTerminal));
|
||||
if (!p) {
|
||||
mout->stop();
|
||||
|
@ -1685,7 +1690,12 @@ AlsaAudioBackend::register_system_midi_ports(const std::string device)
|
|||
delete midin;
|
||||
} else {
|
||||
char tmp[64];
|
||||
snprintf(tmp, sizeof(tmp), "system:midi_capture_%u", elf_hash (i->first));
|
||||
for (int x = 0; x < 10; ++x) {
|
||||
snprintf(tmp, sizeof(tmp), "system:midi_capture_%x%d", elf_hash (i->first), x);
|
||||
if (!find_port (tmp)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
PortHandle p = add_port(std::string(tmp), DataType::MIDI, static_cast<PortFlags>(IsOutput | IsPhysical | IsTerminal));
|
||||
if (!p) {
|
||||
midin->stop();
|
||||
|
|
Loading…
Reference in New Issue