char* requestMidiPort(void){ struct Tracker_Windows *window=getWindowFromNum(-1);if(window==NULL) return ""; char *ret = MIDIrequestPortName(window, requester, false); if(ret==NULL) ret=""; return ret; }
// This function must never return NULL. struct MidiPort *MIDIgetPort(struct Tracker_Windows *window,ReqType reqtype,char *name){ while(name==NULL){ name = MIDIrequestPortName(window,reqtype,false); } struct MidiPort *midi_port = g_midi_ports; while (midi_port != NULL) { if(!strcmp(midi_port->name,name)) { printf("Found existing midi_port for %s\n",name); return midi_port; } midi_port = midi_port->next; } midi_port = talloc(sizeof(struct MidiPort)); midi_port->name = talloc_strdup(name); midi_port->port = MIDI_getMidiPortOs(window,reqtype,name); midi_port->next = g_midi_ports; g_midi_ports = midi_port; return midi_port; }