version 1.45, 2018/06/26 07:43:19 |
version 1.46, 2018/06/26 07:44:35 |
|
|
static char *pstates[] = { |
static char *pstates[] = { |
"ini", "sta", "rdy", "run", "stp", "mid" |
"ini", "sta", "rdy", "run", "stp", "mid" |
}; |
}; |
static char *tstates[] = { |
|
"off", "sta", "run", "stp" |
|
}; |
|
#endif |
#endif |
log_puts(s->name); |
log_puts(s->name); |
log_putu(s->unit); |
log_putu(s->unit); |
|
|
if (s->ops) { |
if (s->ops) { |
log_puts(",pst="); |
log_puts(",pst="); |
log_puts(pstates[s->pstate]); |
log_puts(pstates[s->pstate]); |
log_puts(",mmc="); |
|
log_puts(tstates[s->tstate]); |
|
} |
} |
} |
} |
#endif |
#endif |
|
|
d->slot[i].unit = i; |
d->slot[i].unit = i; |
d->slot[i].ops = NULL; |
d->slot[i].ops = NULL; |
d->slot[i].vol = MIDI_MAXCTL; |
d->slot[i].vol = MIDI_MAXCTL; |
d->slot[i].tstate = MMC_OFF; |
|
d->slot[i].serial = d->serial++; |
d->slot[i].serial = d->serial++; |
strlcpy(d->slot[i].name, "prog", SLOT_NAMEMAX); |
strlcpy(d->slot[i].name, "prog", SLOT_NAMEMAX); |
} |
} |
|
|
} |
} |
for (i = 0; i < DEV_NSLOT; i++) { |
for (i = 0; i < DEV_NSLOT; i++) { |
s = d->slot + i; |
s = d->slot + i; |
if (!s->ops || s->tstate == MMC_OFF) |
if (!s->ops || !s->opt->mmc) |
continue; |
continue; |
if (s->tstate != MMC_START || s->pstate != SLOT_READY) { |
if (s->pstate != SLOT_READY) { |
#ifdef DEBUG |
#ifdef DEBUG |
if (log_level >= 3) { |
if (log_level >= 3) { |
slot_log(s); |
slot_log(s); |
|
|
return; |
return; |
for (i = 0; i < DEV_NSLOT; i++) { |
for (i = 0; i < DEV_NSLOT; i++) { |
s = d->slot + i; |
s = d->slot + i; |
if (!s->ops) |
if (!s->ops || !s->opt->mmc) |
continue; |
continue; |
if (s->tstate == MMC_START) { |
slot_attach(s); |
#ifdef DEBUG |
|
if (log_level >= 3) { |
|
slot_log(s); |
|
log_puts(": started\n"); |
|
} |
|
#endif |
|
s->tstate = MMC_RUN; |
|
slot_attach(s); |
|
} |
|
} |
} |
d->tstate = MMC_RUN; |
d->tstate = MMC_RUN; |
dev_midi_full(d); |
dev_midi_full(d); |
|
|
s->mix.nch = s->opt->pmax - s->opt->pmin + 1; |
s->mix.nch = s->opt->pmax - s->opt->pmin + 1; |
if (s->mode & MODE_RECMASK) |
if (s->mode & MODE_RECMASK) |
s->sub.nch = s->opt->rmax - s->opt->rmin + 1; |
s->sub.nch = s->opt->rmax - s->opt->rmin + 1; |
if (s->opt->mmc) { |
s->xrun = s->opt->mmc ? XRUN_SYNC : XRUN_IGNORE; |
s->xrun = XRUN_SYNC; |
|
s->tstate = MMC_STOP; |
|
} else { |
|
s->xrun = XRUN_IGNORE; |
|
s->tstate = MMC_OFF; |
|
} |
|
s->appbufsz = d->bufsz; |
s->appbufsz = d->bufsz; |
s->round = d->round; |
s->round = d->round; |
s->rate = d->rate; |
s->rate = d->rate; |
|
|
*/ |
*/ |
if (s->dev->pstate == DEV_CFG) |
if (s->dev->pstate == DEV_CFG) |
return; |
return; |
if (s->tstate == MMC_OFF) |
if (!s->opt->mmc) |
slot_attach(s); |
slot_attach(s); |
else { |
else |
s->tstate = MMC_START; |
|
dev_sync_attach(s->dev); |
dev_sync_attach(s->dev); |
} |
|
} |
} |
|
|
/* |
/* |
|
|
s->pstate = SLOT_READY; |
s->pstate = SLOT_READY; |
slot_ready(s); |
slot_ready(s); |
} |
} |
|
|
if (s->tstate != MMC_OFF) |
|
s->tstate = MMC_STOP; |
|
|
|
if (s->pstate == SLOT_RUN) { |
if (s->pstate == SLOT_RUN) { |
if (s->mode & MODE_PLAY) { |
if (s->mode & MODE_PLAY) { |