Update of /cvsroot/alsa/alsa-utils/aplay In directory sc8-pr-cvs1:/tmp/cvs-serv3324
Modified Files: aplay.c Log Message: - fixed the capture to stdout in WAV. - allow more than 32bit int in the raw capture mode. Index: aplay.c =================================================================== RCS file: /cvsroot/alsa/alsa-utils/aplay/aplay.c,v retrieving revision 1.162 retrieving revision 1.163 diff -u -r1.162 -r1.163 --- aplay.c 10 Mar 2003 14:25:45 -0000 1.162 +++ aplay.c 19 Mar 2003 14:42:00 -0000 1.163 @@ -1527,6 +1527,10 @@ u_int tmp; u_short tmp2; + /* WAVE cannot handle greater than 32bit (signed?) int */ + if (cnt == (size_t)-2) + cnt = 0x7fffff00; + bits = 8; switch ((unsigned long) hwparams.format) { case SND_PCM_FORMAT_U8: @@ -1754,28 +1758,29 @@ void capture_go(int fd, size_t count, int rtype, char *name) { - size_t c; + size_t c, cur; ssize_t r, err; header(rtype, name); set_params(); - while (count > 0) { - c = count; - if (c > chunk_bytes) - c = chunk_bytes; - c = c * 8 / bits_per_frame; - if ((size_t)(r = pcm_read(audiobuf, c)) != c) - break; - r = r * bits_per_frame / 8; - if ((err = write(fd, audiobuf, r)) != r) { - perror(name); - exit(EXIT_FAILURE); + do { + for (cur = count; cur > 0; cur -= r) { + c = cur; + if (c > chunk_bytes) + c = chunk_bytes; + c = c * 8 / bits_per_frame; + if ((size_t)(r = pcm_read(audiobuf, c)) != c) + break; + r = r * bits_per_frame / 8; + if ((err = write(fd, audiobuf, r)) != r) { + perror(name); + exit(EXIT_FAILURE); + } + if (err > 0) + fdcount += err; } - if (err > 0) - fdcount += err; - count -= r; - } + } while (rtype == FORMAT_RAW && !timelimit); } /* ------------------------------------------------------- This SF.net email is sponsored by: Does your code think in ink? You could win a Tablet PC. Get a free Tablet PC hat just for playing. What are you waiting for? http://ads.sourceforge.net/cgi-bin/redirect.pl?micr5043en _______________________________________________ Alsa-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-cvslog