void parser_cb (void *context, int category, unsigned char msg, unsigned char ch, unsigned char *parms, int len) { ymhusb_midic *midic = context; if (category == CAT_VOICE) { switch (msg) { case MIDI_NOTEON: out_event (midic, 0x9, msg | ch, parms[0], parms[1]); break; case MIDI_NOTEOFF: out_event (midic, 0x8, msg | ch, parms[0], parms[1]); break; case MIDI_KEY_PRESSURE: out_event (midic, 0xa, msg | ch, parms[0], parms[1]); break; } return; } if (category == CAT_CHN) { switch (msg) { case MIDI_CTL_CHANGE: out_event (midic, 0xb, msg | ch, parms[0], parms[1]); break; case MIDI_PGM_CHANGE: out_event (midic, 0xc, msg | ch, parms[0], 0); break; case MIDI_CHN_PRESSURE: out_event (midic, 0xd, msg | ch, parms[0], 0); break; case MIDI_PITCH_BEND: out_event (midic, 0xe, msg | ch, parms[0], parms[1]); break; } return; } if (category == CAT_REALTIME) { out_event (midic, 0xf, msg | ch, 0, 0); return; } if (category == CAT_MTC) { out_event (midic, 0x2, 0xf1, parms[0], 0); return; } if (category == CAT_SYSEX) { int l = len, n; unsigned char *d = parms; while (l > 0) { n = l; if (n > 3) n = 3; switch (n) { case 3: out_event (midic, 0x4, d[0], d[1], d[2]); break; case 2: out_event (midic, 0x6, d[0], d[1], 0); break; case 1: out_event (midic, 0x5, d[0], 0, 0); break; } l -= n; d += n; } return; } }
void zmq::pgm_sender_t::revive () { set_pollout (handle); out_event (); }
void zmq::pgm_sender_t::restart_output () { set_pollout (handle); out_event (); }
void zmq::pgm_sender_t::activate_out () { set_pollout (handle); out_event (); }
void xs::pgm_sender_t::activate_out () { set_pollout (handle); out_event (retired_fd); }