Lines Matching refs:ft

63 static int startread(sox_format_t * ft)  in startread()  argument
65 priv_t * avr = (priv_t *)ft->priv; in startread()
68 lsx_reads(ft, avr->magic, (size_t)4); in startread()
71 lsx_fail_errno(ft,SOX_EHDR,"AVR: unknown header"); in startread()
75 lsx_readbuf(ft, avr->name, sizeof(avr->name)); in startread()
77 lsx_readw (ft, &(avr->mono)); in startread()
79 ft->signal.channels = 2; in startread()
82 ft->signal.channels = 1; in startread()
85 lsx_readw (ft, &(avr->rez)); in startread()
87 ft->encoding.bits_per_sample = 8; in startread()
90 ft->encoding.bits_per_sample = 16; in startread()
93 lsx_fail_errno(ft,SOX_EFMT,"AVR: unsupported sample resolution"); in startread()
97 lsx_readw (ft, &(avr->sign)); in startread()
99 ft->encoding.encoding = SOX_ENCODING_SIGN2; in startread()
102 ft->encoding.encoding = SOX_ENCODING_UNSIGNED; in startread()
105 lsx_readw (ft, &(avr->loop)); in startread()
107 lsx_readw (ft, &(avr->midi)); in startread()
109 lsx_readdw (ft, &(avr->rate)); in startread()
116 ft->signal.rate = (avr->rate & 0x00ffffff); in startread()
118 lsx_readdw (ft, &(avr->size)); in startread()
120 lsx_readdw (ft, &(avr->lbeg)); in startread()
122 lsx_readdw (ft, &(avr->lend)); in startread()
124 lsx_readw (ft, &(avr->res1)); in startread()
126 lsx_readw (ft, &(avr->res2)); in startread()
128 lsx_readw (ft, &(avr->res3)); in startread()
130 lsx_readbuf(ft, avr->ext, sizeof(avr->ext)); in startread()
132 lsx_readbuf(ft, avr->user, sizeof(avr->user)); in startread()
134 rc = lsx_rawstartread (ft); in startread()
141 static int startwrite(sox_format_t * ft) in startwrite() argument
143 priv_t * avr = (priv_t *)ft->priv; in startwrite()
146 if (!ft->seekable) { in startwrite()
147 lsx_fail_errno(ft,SOX_EOF,"AVR: file is not seekable"); in startwrite()
151 rc = lsx_rawstartwrite (ft); in startwrite()
156 lsx_writes(ft, AVR_MAGIC); in startwrite()
159 lsx_writeb(ft, 0); in startwrite()
160 lsx_writeb(ft, 0); in startwrite()
161 lsx_writeb(ft, 0); in startwrite()
162 lsx_writeb(ft, 0); in startwrite()
163 lsx_writeb(ft, 0); in startwrite()
164 lsx_writeb(ft, 0); in startwrite()
165 lsx_writeb(ft, 0); in startwrite()
166 lsx_writeb(ft, 0); in startwrite()
169 if (ft->signal.channels == 1) { in startwrite()
170 lsx_writew (ft, 0); in startwrite()
172 else if (ft->signal.channels == 2) { in startwrite()
173 lsx_writew (ft, 0xffff); in startwrite()
176 lsx_fail_errno(ft,SOX_EFMT,"AVR: number of channels not supported"); in startwrite()
181 if (ft->encoding.bits_per_sample == 8) { in startwrite()
182 lsx_writew (ft, 8); in startwrite()
184 else if (ft->encoding.bits_per_sample == 16) { in startwrite()
185 lsx_writew (ft, 16); in startwrite()
188 lsx_fail_errno(ft,SOX_EFMT,"AVR: unsupported sample resolution"); in startwrite()
193 if (ft->encoding.encoding == SOX_ENCODING_SIGN2) { in startwrite()
194 lsx_writew (ft, 0xffff); in startwrite()
196 else if (ft->encoding.encoding == SOX_ENCODING_UNSIGNED) { in startwrite()
197 lsx_writew (ft, 0); in startwrite()
200 lsx_fail_errno(ft,SOX_EFMT,"AVR: unsupported encoding"); in startwrite()
205 lsx_writew (ft, 0xffff); in startwrite()
208 lsx_writew (ft, 0xffff); in startwrite()
211 lsx_writedw(ft, (unsigned)(ft->signal.rate + .5)); in startwrite()
215 lsx_writedw (ft, 0); in startwrite()
218 lsx_writedw (ft, 0); in startwrite()
222 lsx_writedw (ft, 0); in startwrite()
225 lsx_writew (ft, 0); in startwrite()
228 lsx_writew (ft, 0); in startwrite()
231 lsx_writew (ft, 0); in startwrite()
234 lsx_writebuf(ft, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", sizeof(avr->ext)); in startwrite()
237 lsx_writebuf(ft, in startwrite()
246 static size_t write_samples(sox_format_t * ft, const sox_sample_t *buf, size_t nsamp) in write_samples() argument
248 priv_t * avr = (priv_t *)ft->priv; in write_samples()
252 return (lsx_rawwrite (ft, buf, nsamp)); in write_samples()
255 static int stopwrite(sox_format_t * ft) in stopwrite() argument
257 priv_t * avr = (priv_t *)ft->priv; in stopwrite()
259 unsigned size = avr->size / ft->signal.channels; in stopwrite()
262 lsx_seeki(ft, (off_t)26, SEEK_SET); in stopwrite()
263 lsx_writedw (ft, size); in stopwrite()
266 lsx_seeki(ft, (off_t)34, SEEK_SET); in stopwrite()
267 lsx_writedw (ft, size); in stopwrite()