Handle par->le, par->msb, par->sig as booleans in sio_oss_setpar().

From Tobias Kortkamp <tobik@FreeBSD.org>. Thanks.
This commit is contained in:
Alexandre Ratchov 2018-01-15 18:32:02 +01:00
parent a81ef2709a
commit 1024ccde8b
1 changed files with 15 additions and 3 deletions

View File

@ -398,13 +398,25 @@ sio_oss_setpar(struct sio_hdl *sh, struct sio_par *par)
struct sio_oss_hdl *hdl = (struct sio_oss_hdl *)sh;
unsigned int i, round, bufsz;
int frag_max, frag_shift, frag_count, frag;
unsigned int le, sig, msb;
le = par->le;
sig = par->sig;
msb = par->msb;
if (le == ~0U)
le = 0;
if (sig == ~0U)
sig = 0;
if (msb == ~0U)
msb = 0;
hdl->fmt = AFMT_S16_LE;
for (i = 0; i < sizeof(formats)/sizeof(formats[0]); i++) {
if (formats[i].bits == par->bits &&
formats[i].le == par->le &&
formats[i].sig == par->sig &&
formats[i].msb == par->msb) {
formats[i].le == le &&
formats[i].sig == sig &&
formats[i].msb == msb) {
hdl->fmt = formats[i].fmt;
break;
}