summaryrefslogtreecommitdiff
path: root/libs/midi++2/port_request.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/midi++2/port_request.cc')
-rw-r--r--libs/midi++2/port_request.cc45
1 files changed, 3 insertions, 42 deletions
diff --git a/libs/midi++2/port_request.cc b/libs/midi++2/port_request.cc
index d081bdb570..352ed77fb7 100644
--- a/libs/midi++2/port_request.cc
+++ b/libs/midi++2/port_request.cc
@@ -18,10 +18,9 @@
$Id$
*/
-#include <fcntl.h>
-#include <string.h>
#include <midi++/port.h>
#include <midi++/port_request.h>
+#include <midi++/factory.h>
using namespace std;
using namespace MIDI;
@@ -36,45 +35,7 @@ PortRequest::PortRequest (const string &xdev,
devname = strdup (xdev.c_str());
tagname = strdup (xtag.c_str());
-
- if (xmode == "output" ||
- xmode == "out" ||
- xmode == "OUTPUT" ||
- xmode == "OUT") {
- mode = O_WRONLY;
-
- } else if (xmode == "input" ||
- xmode == "in" ||
- xmode == "INPUT" ||
- xmode == "IN") {
- mode = O_RDONLY;
-
- } else if (xmode == "duplex" ||
- xmode == "DUPLEX" ||
- xmode == "inout" ||
- xmode == "INOUT") {
- mode = O_RDWR;
- } else {
- status = Unknown;
- }
-
- if (xtype == "ALSA/RAW" ||
- xtype == "alsa/raw") {
- type = Port::ALSA_RawMidi;
- } else if (xtype == "ALSA/SEQUENCER" ||
- xtype == "alsa/sequencer") {
- type = Port::ALSA_Sequencer;
- } else if (xtype == "COREMIDI" ||
- xtype == "coremidi") {
- type = Port::CoreMidi_MidiPort;
- } else if (xtype == "NULL" ||
- xtype == "null") {
- type = Port::Null;
- } else if (xtype == "FIFO" ||
- xtype == "fifo") {
- type = Port::FIFO;
- } else {
- status = Unknown;
- }
+ mode = PortFactory::string_to_mode (xmode);
+ type = PortFactory::string_to_type (xtype);
}