int umidi_output(void *addr, int d) { struct umidi_mididev *mididev = addr; if (!mididev->out_jack || !mididev->opened) return 1; return out_jack_output(mididev->out_jack, d); }
int umidi_rtmsg(void *addr, int d) { struct umidi_mididev *mididev = addr; u_char msg = d; if (!mididev->out_jack || !mididev->opened) return EIO; return out_jack_output(mididev->out_jack, &msg, 1, 0xf); }
int umidi_sysex(void *addr, u_char *msg, int len) { struct umidi_mididev *mididev = addr; int cin; if (!mididev->out_jack || !mididev->opened) return EIO; switch ( len ) { case 1: cin = 5; break; case 2: cin = 6; break; case 3: cin = (msg[2] == 0xf7) ? 7 : 4; break; default: return EIO; /* or gcc warns of cin uninitialized */ } return out_jack_output(mididev->out_jack, msg, len, cin); }
int umidi_commonmsg(void *addr, int status, u_char *msg, int len) { struct umidi_mididev *mididev = addr; int cin; if (!mididev->out_jack || !mididev->opened) return EIO; switch ( len ) { case 1: cin = 5; break; case 2: cin = 2; break; case 3: cin = 3; break; default: return EIO; /* or gcc warns of cin uninitialized */ } return out_jack_output(mididev->out_jack, msg, len, cin); }