mirror of https://github.com/ericonr/sndio.git
restart xfers when we get more tickets
This commit is contained in:
parent
fc38a92505
commit
f2c1c70165
|
@ -31,7 +31,7 @@ extern unsigned int log_level;
|
||||||
/*
|
/*
|
||||||
* MIDI buffer size
|
* MIDI buffer size
|
||||||
*/
|
*/
|
||||||
#define MIDI_BUFSZ 3125 /* 1 second at 31.25kbit/s */
|
#define MIDI_BUFSZ 125 /* 1/25 second at 31.25kbit/s */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* units used for MTC clock.
|
* units used for MTC clock.
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
* input data rate is XFER / TIMO (in bytes per microsecond),
|
* input data rate is XFER / TIMO (in bytes per microsecond),
|
||||||
* it must be slightly larger than the MIDI standard 3125 bytes/s
|
* it must be slightly larger than the MIDI standard 3125 bytes/s
|
||||||
*/
|
*/
|
||||||
#define MIDI_XFER 340
|
#define MIDI_XFER 1
|
||||||
#define MIDI_TIMO 100000
|
#define MIDI_TIMO 100000
|
||||||
|
|
||||||
int port_open(struct port *);
|
int port_open(struct port *);
|
||||||
|
@ -82,8 +82,11 @@ midi_ontimo(void *arg)
|
||||||
int i;
|
int i;
|
||||||
struct midi *ep;
|
struct midi *ep;
|
||||||
|
|
||||||
for (i = MIDI_NEP, ep = midi_ep; i > 0; i--, ep++)
|
for (i = MIDI_NEP, ep = midi_ep; i > 0; i--, ep++) {
|
||||||
ep->tickets = MIDI_XFER;
|
ep->tickets = MIDI_XFER;
|
||||||
|
if (ep->ibuf.used > 0)
|
||||||
|
midi_in(ep);
|
||||||
|
}
|
||||||
timo_add(&midi_timo, MIDI_TIMO);
|
timo_add(&midi_timo, MIDI_TIMO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -251,7 +254,7 @@ midi_in(struct midi *ep)
|
||||||
idata = abuf_rgetblk(&ep->ibuf, &icount);
|
idata = abuf_rgetblk(&ep->ibuf, &icount);
|
||||||
if (icount > ep->tickets)
|
if (icount > ep->tickets)
|
||||||
icount = ep->tickets;
|
icount = ep->tickets;
|
||||||
//ep->tickets -= icount;
|
ep->tickets -= icount;
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
if (log_level >= 4) {
|
if (log_level >= 4) {
|
||||||
midi_log(ep);
|
midi_log(ep);
|
||||||
|
|
Loading…
Reference in New Issue