Esempio n. 1
0
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);
}
Esempio n. 2
0
// 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();
  } 
}