diff options
Diffstat (limited to 'libs/midi++2/midifactory.cc')
-rw-r--r-- | libs/midi++2/midifactory.cc | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/libs/midi++2/midifactory.cc b/libs/midi++2/midifactory.cc index d8119e362e..de4a246bcf 100644 --- a/libs/midi++2/midifactory.cc +++ b/libs/midi++2/midifactory.cc @@ -89,20 +89,28 @@ PortFactory::create_port (PortRequest &req, void* data) return port; } -void -PortFactory::add_port_request (vector<PortRequest *> &reqs, - const string &str) - +bool +PortFactory::ignore_duplicate_devices (Port::Type type) { - PortRequest *req; + bool ret = false; - req = new PortRequest; - req->devname = strdup (str.c_str()); - req->tagname = strdup (str.c_str()); + switch (type) { +#ifdef WITH_ALSA + case Port::ALSA_Sequencer: + ret = true; + break; +#endif // WITH_ALSA - req->mode = O_RDWR; - req->type = Port::ALSA_RawMidi; +#if WITH_COREMIDI + case Port::CoreMidi_MidiPort: + ret = true; + break; +#endif // WITH_COREMIDI + + default: + break; + } - reqs.push_back (req); + return ret; } |