Lines Matching +full:convert +full:- +full:rate

30  * convert ``count'' samples from sox encoding to sndio encoding
38 obps = par->bps; in encode()
39 osigbit = par->sig ? 0 : 1 << (par->bits - 1); in encode()
40 oshift = 32 - (par->msb ? par->bps * 8 : par->bits); in encode()
41 if (par->le) { in encode()
45 odata += par->bps - 1; in encode()
46 obnext = -1; in encode()
47 osnext = 2 * par->bps; in encode()
49 for (; count > 0; count--) { in encode()
51 for (i = obps; i > 0; i--) { in encode()
61 * convert ``count'' samples from sndio encoding to sox encoding
69 ibps = par->bps; in decode()
70 isigbit = par->sig ? 0 : 1 << (par->bits - 1); in decode()
71 ishift = 32 - (par->msb ? par->bps * 8 : par->bits); in decode()
72 if (par->le) { in decode()
73 idata += par->bps - 1; in decode()
74 ibnext = -1; in decode()
75 isnext = 2 * par->bps; in decode()
80 for (; count > 0; count--) { in decode()
81 for (i = ibps; i > 0; i--) { in decode()
93 struct sndio_priv *p = (struct sndio_priv *)ft->priv; in startany()
97 device = ft->filename; in startany()
101 p->hdl = sio_open(device, mode, 0); in startany()
102 if (p->hdl == NULL) in startany()
108 if (ft->signal.rate > 0) in startany()
109 reqpar.rate = ft->signal.rate; in startany()
110 if (ft->signal.channels > 0) { in startany()
112 reqpar.pchan = ft->signal.channels; in startany()
114 reqpar.rchan = ft->signal.channels; in startany()
116 switch (ft->encoding.encoding) { in startany()
126 if (ft->encoding.bits_per_sample > 0) in startany()
127 reqpar.bits = ft->encoding.bits_per_sample; in startany()
128 else if (ft->signal.precision > 0) in startany()
129 reqpar.bits = ft->signal.precision; in startany()
134 if (ft->encoding.reverse_bytes != sox_option_default) { in startany()
136 if (ft->encoding.reverse_bytes) in startany()
139 if (!sio_setpar(p->hdl, &reqpar) || in startany()
140 !sio_getpar(p->hdl, &p->par)) in startany()
142 ft->signal.channels = (mode == SIO_PLAY) ? p->par.pchan : p->par.rchan; in startany()
143 ft->signal.precision = p->par.bits; in startany()
144 ft->signal.rate = p->par.rate; in startany()
145 ft->encoding.encoding = p->par.sig ? SOX_ENCODING_SIGN2 : SOX_ENCODING_UNSIGNED; in startany()
146 ft->encoding.bits_per_sample = p->par.bps * 8; in startany()
147 ft->encoding.reverse_bytes = SIO_LE_NATIVE ? !p->par.le : p->par.le; in startany()
148 ft->encoding.reverse_nibbles = sox_option_no; in startany()
149 ft->encoding.reverse_bits = sox_option_no; in startany()
151 if (!sio_start(p->hdl)) in startany()
155 sio_close(p->hdl); in startany()
161 sio_close(((struct sndio_priv *)ft->priv)->hdl); in stopany()
177 struct sndio_priv *p = (struct sndio_priv *)ft->priv; in readsamples()
183 todo = len * p->par.bps; in readsamples()
184 cpb = SNDIO_BUFSZ - (SNDIO_BUFSZ % p->par.bps); in readsamples()
186 memcpy(p->buf, partial, (size_t)pc); in readsamples()
187 cc = cpb - pc; in readsamples()
190 n = sio_read(p->hdl, p->buf + pc, (size_t)cc); in readsamples()
191 if (n == 0 && sio_eof(p->hdl)) in readsamples()
194 pc = n % p->par.bps; in readsamples()
195 n -= pc; in readsamples()
196 memcpy(partial, p->buf + n, (size_t)pc); in readsamples()
197 decode(&p->par, p->buf, buf, (unsigned)(n / p->par.bps)); in readsamples()
198 buf += n / p->par.bps; in readsamples()
199 todo -= n; in readsamples()
201 return len - todo / p->par.bps; in readsamples()
206 struct sndio_priv *p = (struct sndio_priv *)ft->priv; in writesamples()
211 spb = SNDIO_BUFSZ / p->par.bps; in writesamples()
216 encode(&p->par, buf, p->buf, sc); in writesamples()
217 n = sio_write(p->hdl, p->buf, (size_t)(sc * p->par.bps)); in writesamples()
218 if (n == 0 && sio_eof(p->hdl)) in writesamples()
220 n /= p->par.bps; in writesamples()
221 todo -= n; in writesamples()
224 return len - todo; in writesamples()