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