mirror of https://github.com/ericonr/sndio.git
remove aparams_{eq,copy}, nicer log messages
This commit is contained in:
parent
6ce349176e
commit
06920b56d9
|
@ -38,11 +38,6 @@ int aparams_ctltovol[128] = {
|
||||||
26008, 27029, 28090, 29193, 30339, 31530, 32768
|
26008, 27029, 28090, 29193, 30339, 31530, 32768
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
* Fake parameters for byte-streams
|
|
||||||
*/
|
|
||||||
struct aparams aparams_none = {1, 0, 0, 0, 0};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Generate a string corresponding to the encoding in par,
|
* Generate a string corresponding to the encoding in par,
|
||||||
* return the length of the resulting string.
|
* return the length of the resulting string.
|
||||||
|
@ -192,28 +187,12 @@ aparams_log(struct aparams *par)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Return true if both encodings are the same.
|
* Return true if encoding can be represented as adata_t
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
aparams_eq(struct aparams *par1, struct aparams *par2)
|
aparams_native(struct aparams *par)
|
||||||
{
|
{
|
||||||
if (par1->bps != par2->bps ||
|
return par->bps == sizeof(adata_t) && par->bits == ADATA_BITS &&
|
||||||
par1->bits != par2->bits ||
|
(par->bps > 1 || par->le == ADATA_LE) &&
|
||||||
par1->sig != par2->sig)
|
(par->bits < par->bps * 8 || !par->msb);
|
||||||
return 0;
|
|
||||||
if ((par1->bits != 8 * par1->bps) && par1->msb != par2->msb)
|
|
||||||
return 0;
|
|
||||||
if (par1->bps > 1 && par1->le != par2->le)
|
|
||||||
return 0;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
aparams_copy(struct aparams *dst, struct aparams *src)
|
|
||||||
{
|
|
||||||
dst->sig = src->sig;
|
|
||||||
dst->le = src->le;
|
|
||||||
dst->msb = src->msb;
|
|
||||||
dst->bits = src->bits;
|
|
||||||
dst->bps = src->bps;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -128,7 +128,6 @@ void aparams_init(struct aparams *);
|
||||||
void aparams_log(struct aparams *);
|
void aparams_log(struct aparams *);
|
||||||
int aparams_strtoenc(struct aparams *, char *);
|
int aparams_strtoenc(struct aparams *, char *);
|
||||||
int aparams_enctostr(struct aparams *, char *);
|
int aparams_enctostr(struct aparams *, char *);
|
||||||
int aparams_eq(struct aparams *, struct aparams *);
|
int aparams_native(struct aparams *);
|
||||||
void aparams_copy(struct aparams *, struct aparams *);
|
|
||||||
|
|
||||||
#endif /* !defined(APARAMS_H) */
|
#endif /* !defined(APARAMS_H) */
|
||||||
|
|
116
sndiod/dev.c
116
sndiod/dev.c
|
@ -1013,8 +1013,6 @@ dev_adjpar(struct dev *d, int mode,
|
||||||
int
|
int
|
||||||
dev_open(struct dev *d)
|
dev_open(struct dev *d)
|
||||||
{
|
{
|
||||||
struct aparams par;
|
|
||||||
|
|
||||||
d->mode = d->reqmode;
|
d->mode = d->reqmode;
|
||||||
d->round = d->reqround;
|
d->round = d->reqround;
|
||||||
d->bufsz = d->reqbufsz;
|
d->bufsz = d->reqbufsz;
|
||||||
|
@ -1037,8 +1035,6 @@ dev_open(struct dev *d)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (d->mode & MODE_REC) {
|
if (d->mode & MODE_REC) {
|
||||||
aparams_init(&par);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Create device <-> demuxer buffer
|
* Create device <-> demuxer buffer
|
||||||
*/
|
*/
|
||||||
|
@ -1047,16 +1043,13 @@ dev_open(struct dev *d)
|
||||||
/*
|
/*
|
||||||
* Insert a converter, if needed.
|
* Insert a converter, if needed.
|
||||||
*/
|
*/
|
||||||
if (!aparams_eq(&d->par, &par)) {
|
if (!aparams_native(&d->par)) {
|
||||||
dec_init(&d->dec, &d->par, d->rchan);
|
dec_init(&d->dec, &d->par, d->rchan);
|
||||||
d->decbuf = xmalloc(d->round * d->rchan * d->par.bps);
|
d->decbuf = xmalloc(d->round * d->rchan * d->par.bps);
|
||||||
memrnd(d->decbuf, d->round * d->rchan * d->par.bps);
|
|
||||||
} else
|
} else
|
||||||
d->decbuf = NULL;
|
d->decbuf = NULL;
|
||||||
}
|
}
|
||||||
if (d->mode & MODE_PLAY) {
|
if (d->mode & MODE_PLAY) {
|
||||||
aparams_init(&par);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Create device <-> mixer buffer
|
* Create device <-> mixer buffer
|
||||||
*/
|
*/
|
||||||
|
@ -1067,10 +1060,9 @@ dev_open(struct dev *d)
|
||||||
/*
|
/*
|
||||||
* Append a converter, if needed.
|
* Append a converter, if needed.
|
||||||
*/
|
*/
|
||||||
if (!aparams_eq(&par, &d->par)) {
|
if (!aparams_native(&d->par)) {
|
||||||
enc_init(&d->enc, &d->par, d->pchan);
|
enc_init(&d->enc, &d->par, d->pchan);
|
||||||
d->encbuf = xmalloc(d->round * d->pchan * d->par.bps);
|
d->encbuf = xmalloc(d->round * d->pchan * d->par.bps);
|
||||||
memrnd(d->encbuf, d->round * d->pchan * d->par.bps);
|
|
||||||
} else
|
} else
|
||||||
d->encbuf = NULL;
|
d->encbuf = NULL;
|
||||||
}
|
}
|
||||||
|
@ -1079,24 +1071,21 @@ dev_open(struct dev *d)
|
||||||
dev_log(d);
|
dev_log(d);
|
||||||
log_puts(": ");
|
log_puts(": ");
|
||||||
log_putu(d->rate);
|
log_putu(d->rate);
|
||||||
log_puts("Hz");
|
log_puts("Hz, ");
|
||||||
|
aparams_log(&d->par);
|
||||||
if (d->mode & MODE_PLAY) {
|
if (d->mode & MODE_PLAY) {
|
||||||
log_puts(", ");
|
log_puts(", play 0:");
|
||||||
log_puti(d->pchan);
|
log_puti(d->pchan - 1);
|
||||||
log_puts(" play chans");
|
|
||||||
}
|
}
|
||||||
if (d->mode & MODE_REC) {
|
if (d->mode & MODE_REC) {
|
||||||
log_puts(", ");
|
log_puts(", rec 0:");
|
||||||
log_puti(d->rchan);
|
log_puti(d->rchan - 1);
|
||||||
log_puts(" rec chans");
|
|
||||||
}
|
}
|
||||||
log_puts(", ");
|
log_puts(", ");
|
||||||
aparams_log(&d->par);
|
|
||||||
log_puts(", ");
|
|
||||||
log_putu(d->bufsz / d->round);
|
log_putu(d->bufsz / d->round);
|
||||||
log_puts("x");
|
log_puts(" blocks of ");
|
||||||
log_putu(d->round);
|
log_putu(d->round);
|
||||||
log_puts(" buffer\n");
|
log_puts(" frames\n");
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -1255,7 +1244,7 @@ dev_wakeup(struct dev *d)
|
||||||
#endif
|
#endif
|
||||||
if (log_level >= 2) {
|
if (log_level >= 2) {
|
||||||
dev_log(d);
|
dev_log(d);
|
||||||
log_puts(" device started\n");
|
log_puts(": device started\n");
|
||||||
}
|
}
|
||||||
if (d->mode & MODE_PLAY) {
|
if (d->mode & MODE_PLAY) {
|
||||||
d->prime = d->bufsz;
|
d->prime = d->bufsz;
|
||||||
|
@ -1667,7 +1656,7 @@ slot_attach(struct slot *s)
|
||||||
s->mix.slot_cmin, s->mix.slot_cmax,
|
s->mix.slot_cmin, s->mix.slot_cmax,
|
||||||
0, d->pchan - 1,
|
0, d->pchan - 1,
|
||||||
s->mix.dev_cmin, s->mix.dev_cmax);
|
s->mix.dev_cmin, s->mix.dev_cmax);
|
||||||
if (!aparams_eq(&s->par, &d->par)) {
|
if (!aparams_native(&s->par)) {
|
||||||
dec_init(&s->mix.dec, &s->par, slot_nch);
|
dec_init(&s->mix.dec, &s->par, slot_nch);
|
||||||
s->mix.dec.data =
|
s->mix.dec.data =
|
||||||
xmalloc(d->round * slot_nch * sizeof(adata_t));
|
xmalloc(d->round * slot_nch * sizeof(adata_t));
|
||||||
|
@ -1677,25 +1666,27 @@ slot_attach(struct slot *s)
|
||||||
s->mix.resamp.data =
|
s->mix.resamp.data =
|
||||||
xmalloc(d->round * slot_nch * sizeof(adata_t));
|
xmalloc(d->round * slot_nch * sizeof(adata_t));
|
||||||
}
|
}
|
||||||
|
#ifdef DEBUG
|
||||||
log_puts("mix: cc = ");
|
if (log_level >= 3) {
|
||||||
log_puti(s->mix.cmap.nch);
|
log_puts("play: cc = ");
|
||||||
log_puts(", dev_nch = ");
|
log_puti(s->mix.cmap.nch);
|
||||||
log_puti(dev_nch);
|
log_puts(", dev_nch = ");
|
||||||
log_puts(", slot = ");
|
log_puti(dev_nch);
|
||||||
log_puti(s->mix.slot_cmin);
|
log_puts(", slot = ");
|
||||||
log_puts(":");
|
log_puti(s->mix.slot_cmin);
|
||||||
log_puti(s->mix.slot_cmax);
|
log_puts(":");
|
||||||
log_puts(", dev = ");
|
log_puti(s->mix.slot_cmax);
|
||||||
log_puti(s->mix.dev_cmin);
|
log_puts(", dev = ");
|
||||||
log_puts(":");
|
log_puti(s->mix.dev_cmin);
|
||||||
log_puti(s->mix.dev_cmax);
|
log_puts(":");
|
||||||
log_puts(", join = ");
|
log_puti(s->mix.dev_cmax);
|
||||||
log_puti(s->mix.join);
|
log_puts(", join = ");
|
||||||
log_puts(", expand = ");
|
log_puti(s->mix.join);
|
||||||
log_puti(s->mix.expand);
|
log_puts(", expand = ");
|
||||||
log_puts("\n");
|
log_puti(s->mix.expand);
|
||||||
|
log_puts("\n");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
s->mix.drop = 0;
|
s->mix.drop = 0;
|
||||||
s->mix.vol = MIDI_TO_ADATA(s->vol);
|
s->mix.vol = MIDI_TO_ADATA(s->vol);
|
||||||
dev_mix_setmaster(d);
|
dev_mix_setmaster(d);
|
||||||
|
@ -1726,30 +1717,33 @@ slot_attach(struct slot *s)
|
||||||
s->sub.resamp.data =
|
s->sub.resamp.data =
|
||||||
xmalloc(d->round * slot_nch * sizeof(adata_t));
|
xmalloc(d->round * slot_nch * sizeof(adata_t));
|
||||||
}
|
}
|
||||||
if (!aparams_eq(&s->par, &d->par)) {
|
if (!aparams_native(&s->par)) {
|
||||||
enc_init(&s->sub.enc, &s->par, slot_nch);
|
enc_init(&s->sub.enc, &s->par, slot_nch);
|
||||||
s->sub.enc.data =
|
s->sub.enc.data =
|
||||||
xmalloc(d->round * slot_nch * sizeof(adata_t));
|
xmalloc(d->round * slot_nch * sizeof(adata_t));
|
||||||
}
|
}
|
||||||
|
|
||||||
log_puts("sub: cc = ");
|
#ifdef DEBUG
|
||||||
log_puti(s->sub.cmap.nch);
|
if (log_level >= 3) {
|
||||||
log_puts(", dev_nch = ");
|
log_puts("sub: cc = ");
|
||||||
log_puti(dev_nch);
|
log_puti(s->sub.cmap.nch);
|
||||||
log_puts(", slot ");
|
log_puts(", dev_nch = ");
|
||||||
log_puti(s->sub.slot_cmin);
|
log_puti(dev_nch);
|
||||||
log_puts(":");
|
log_puts(", slot ");
|
||||||
log_puti(s->sub.slot_cmax);
|
log_puti(s->sub.slot_cmin);
|
||||||
log_puts(", join = ");
|
log_puts(":");
|
||||||
log_puti(s->sub.join);
|
log_puti(s->sub.slot_cmax);
|
||||||
log_puts(", expand = ");
|
log_puts(", join = ");
|
||||||
log_puti(s->sub.expand);
|
log_puti(s->sub.join);
|
||||||
log_puts(", dev = ");
|
log_puts(", expand = ");
|
||||||
log_puti(s->sub.dev_cmin);
|
log_puti(s->sub.expand);
|
||||||
log_puts(":");
|
log_puts(", dev = ");
|
||||||
log_puti(s->sub.dev_cmax);
|
log_puti(s->sub.dev_cmin);
|
||||||
log_puts("\n");
|
log_puts(":");
|
||||||
|
log_puti(s->sub.dev_cmax);
|
||||||
|
log_puts("\n");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
/*
|
/*
|
||||||
* N-th recorded block is the N-th played block
|
* N-th recorded block is the N-th played block
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1071,23 +1071,28 @@ sock_execmsg(struct sock *f)
|
||||||
f->rtodo = sizeof(struct amsg);
|
f->rtodo = sizeof(struct amsg);
|
||||||
if (log_level >= 2) {
|
if (log_level >= 2) {
|
||||||
slot_log(f->slot);
|
slot_log(f->slot);
|
||||||
log_puts(": buffer size = ");
|
|
||||||
log_putu(s->appbufsz);
|
log_puts(": ");
|
||||||
log_puts(", enc = ");
|
log_putu(s->rate);
|
||||||
|
log_puts("Hz, ");
|
||||||
aparams_log(&s->par);
|
aparams_log(&s->par);
|
||||||
if (s->mode & MODE_PLAY) {
|
if (s->mode & MODE_PLAY) {
|
||||||
log_puts(", play: ");
|
log_puts(", play ");
|
||||||
log_puti(s->mix.slot_cmin);
|
log_puti(s->mix.slot_cmin);
|
||||||
log_puts(":");
|
log_puts(":");
|
||||||
log_puti(s->mix.slot_cmax);
|
log_puti(s->mix.slot_cmax);
|
||||||
}
|
}
|
||||||
if (s->mode & MODE_RECMASK) {
|
if (s->mode & MODE_RECMASK) {
|
||||||
log_puts(", rec: ");
|
log_puts(", rec ");
|
||||||
log_puti(s->sub.slot_cmin);
|
log_puti(s->sub.slot_cmin);
|
||||||
log_puts(":");
|
log_puts(":");
|
||||||
log_puti(s->sub.slot_cmax);
|
log_puti(s->sub.slot_cmax);
|
||||||
}
|
}
|
||||||
log_puts("\n");
|
log_puts(", ");
|
||||||
|
log_putu(s->appbufsz / s->round);
|
||||||
|
log_puts(" blocks of ");
|
||||||
|
log_putu(s->round);
|
||||||
|
log_puts(" frames\n");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case AMSG_STOP:
|
case AMSG_STOP:
|
||||||
|
|
Loading…
Reference in New Issue