int mus_midi_close(int line) { if ((line < 0) || (line >= midis)) return(-1); mdClosePort(midi_lines[line]); /* this frees? */ midi_lines[line] = NULL; return(0); }
int MidiDriver_DMEDIA::open() { int numinterfaces; int i; const char *var; char *portName; if (_isOpen) return MERR_ALREADY_OPEN; _isOpen = true; numinterfaces = mdInit(); if (numinterfaces <= 0) { fprintf(stderr, "No MIDI interfaces configured.\n"); perror("Cannot initialize libmd for sound output"); return -1; } if (getenv("RESIDUALVM_MIDIPORT")) { _deviceNum = atoi(getenv("RESIDUALVM_MIDIPORT")); _midiportName = mdGetName(_deviceNum); } else { var = ConfMan.get("dmedia_port").c_str(); if (strlen(var) > 0) { for (i = 0; i < numinterfaces; i++) { portName = mdGetName(i); if (strcmp(var, portName) == 0) { _deviceNum = i; _midiportName = portName; } } } } _midiPort = mdOpenOutPort(_midiportName); if (!_midiPort) { warning("Failed to open MIDI interface %s", _midiportName); return -1; } _fd = mdGetFd(_midiPort); if (!_fd) { warning("Failed to aquire filehandle for MIDI port %s", _midiportName); mdClosePort(_midiPort); return -1; } mdSetStampMode(_midiPort, MD_NOSTAMP); /* don't use Timestamps */ return 0; }
void MidiDriver_DMEDIA::close() { mdClosePort(_midiPort); _isOpen = false; _deviceNum = 0; _midiportName = NULL; }