static PyObject * pymidi_parse (PyObject *self, PyObject *args) { unsigned char *midi, *midi_end; unsigned long midi_size; debug_print ("%s", "\n"); if (!PyArg_ParseTuple (args, "s#", &midi, &midi_size)) return 0; if (memcmp (midi, "MThd", 4)) return midi_error (__FUNCTION__, ": MThd expected"); midi += 4; midi_end = midi + midi_size; return midi_parse (&midi, midi_end); }
// callback for the non-blocking asynchronous read. static void midi_rx_done( usb_add_t add, usb_ep_t ep, uhd_trans_status_t stat, iram_size_t nb) { // int i; if(nb > 0) { /* print_dbg("\r\n midi rx; status: 0x"); */ /* print_dbg_hex((u32)stat); */ /* print_dbg(" ; nb: "); */ /* print_dbg_ulong(nb); */ /* print_dbg(" ; data: "); */ /* for(i=0; i<nb; i++) { */ /* print_dbg_char_hex(rxBuf[i]); */ /* print_dbg(" "); */ /* } */ // rxBytes = nb; // weird extra first byte... rxBytes = nb - 1; midi_parse(); } }