version 1.60, 2019/09/19 05:04:34 |
version 1.61, 2019/09/19 05:10:19 |
|
|
void |
void |
slot_initconv(struct slot *s) |
slot_initconv(struct slot *s) |
{ |
{ |
unsigned int dev_nch; |
|
struct dev *d = s->dev; |
struct dev *d = s->dev; |
|
|
if (s->mode & MODE_PLAY) { |
if (s->mode & MODE_PLAY) { |
dev_nch = s->opt->pmax - s->opt->pmin + 1; |
|
s->mix.join = 1; |
|
s->mix.expand = 1; |
|
if (s->opt->dup) { |
|
if (dev_nch > s->mix.nch) |
|
s->mix.expand = dev_nch / s->mix.nch; |
|
else if (dev_nch < s->mix.nch) |
|
s->mix.join = s->mix.nch / dev_nch; |
|
} |
|
cmap_init(&s->mix.cmap, |
cmap_init(&s->mix.cmap, |
s->opt->pmin, s->opt->pmin + s->mix.nch - 1, |
s->opt->pmin, s->opt->pmin + s->mix.nch - 1, |
s->opt->pmin, s->opt->pmin + s->mix.nch - 1, |
s->opt->pmin, s->opt->pmin + s->mix.nch - 1, |
|
|
resamp_init(&s->mix.resamp, s->round, d->round, |
resamp_init(&s->mix.resamp, s->round, d->round, |
s->mix.nch); |
s->mix.nch); |
} |
} |
|
s->mix.join = 1; |
|
s->mix.expand = 1; |
|
if (s->opt->dup) { |
|
if (s->mix.cmap.nch > s->mix.nch) |
|
s->mix.expand = s->mix.cmap.nch / s->mix.nch; |
|
else if (s->mix.cmap.nch > 0) |
|
s->mix.join = s->mix.nch / s->mix.cmap.nch; |
|
} |
} |
} |
|
|
if (s->mode & MODE_RECMASK) { |
if (s->mode & MODE_RECMASK) { |
dev_nch = s->opt->rmax - s->opt->rmin + 1; |
|
s->sub.join = 1; |
|
s->sub.expand = 1; |
|
if (s->opt->dup) { |
|
if (dev_nch > s->sub.nch) |
|
s->sub.join = dev_nch / s->sub.nch; |
|
else if (dev_nch < s->sub.nch) |
|
s->sub.expand = s->sub.nch / dev_nch; |
|
} |
|
cmap_init(&s->sub.cmap, |
cmap_init(&s->sub.cmap, |
0, ((s->mode & MODE_MON) ? d->pchan : d->rchan) - 1, |
0, ((s->mode & MODE_MON) ? d->pchan : d->rchan) - 1, |
s->opt->rmin, s->opt->rmax, |
s->opt->rmin, s->opt->rmax, |
|
|
} |
} |
if (!aparams_native(&s->par)) { |
if (!aparams_native(&s->par)) { |
enc_init(&s->sub.enc, &s->par, s->sub.nch); |
enc_init(&s->sub.enc, &s->par, s->sub.nch); |
|
} |
|
s->sub.join = 1; |
|
s->sub.expand = 1; |
|
if (s->opt->dup) { |
|
if (s->sub.cmap.nch > s->sub.nch) |
|
s->sub.join = s->sub.cmap.nch / s->sub.nch; |
|
else if (s->sub.cmap.nch > 0) |
|
s->sub.expand = s->sub.nch / s->sub.cmap.nch; |
} |
} |
|
|
/* |
/* |