From aec8d3abf216663cfafeba0fa3e1c84f7de452d3 Mon Sep 17 00:00:00 2001 From: Alexandre Ratchov Date: Fri, 7 Nov 2008 21:01:16 +0000 Subject: expose the block size in the sndio API by making par->round writable and thus remove the ugly rate <-> block-size table from sio_setpar(3). Handle the block size negociation in aucat(1), since it has few constrains the code is overally simpler. ok jakemsr@, major crank suggested by deraadt@ --- usr.bin/aucat/aucat.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'usr.bin/aucat/aucat.c') diff --git a/usr.bin/aucat/aucat.c b/usr.bin/aucat/aucat.c index 5e41f46c65a..b41b43770cf 100644 --- a/usr.bin/aucat/aucat.c +++ b/usr.bin/aucat/aucat.c @@ -1,4 +1,4 @@ -/* $OpenBSD: aucat.c,v 1.31 2008/11/03 22:25:13 ratchov Exp $ */ +/* $OpenBSD: aucat.c,v 1.32 2008/11/07 21:01:15 ratchov Exp $ */ /* * Copyright (c) 2008 Alexandre Ratchov * @@ -288,7 +288,7 @@ main(int argc, char **argv) struct farglist ifiles, ofiles; struct aparams ipar, opar, dipar, dopar; struct sigaction sa; - unsigned ivol, ovol, bufsz = 0; + unsigned ivol, ovol, bufsz; char *devpath, *dbgenv, *listenpath; const char *errstr; extern char *malloc_options; @@ -304,7 +304,6 @@ main(int argc, char **argv) aparams_init(&ipar, 0, 1, 44100); aparams_init(&opar, 0, 1, 44100); - u_flag = 0; l_flag = 0; devpath = NULL; @@ -313,6 +312,7 @@ main(int argc, char **argv) hdr = HDR_AUTO; xrun = XRUN_IGNORE; ivol = ovol = MIDI_TO_ADATA(127); + bufsz = 44100 * 4 / 15; /* XXX: use milliseconds, not frames */ while ((c = getopt(argc, argv, "b:c:C:e:r:h:x:i:o:f:lu")) != -1) { @@ -357,7 +357,7 @@ main(int argc, char **argv) u_flag = 1; break; case 'b': - if (sscanf(optarg, "%u", &bufsz) != 1) { + if (sscanf(optarg, "%u", &bufsz) != 1 || bufsz == 0) { fprintf(stderr, "%s: bad buf size\n", optarg); exit(1); } @@ -438,12 +438,13 @@ main(int argc, char **argv) filelist_init(); /* - * Open the device. + * Open the device. Give half of the buffer to the device, + * the other half is for the socket/files */ dev_init(devpath, (l_flag || !SLIST_EMPTY(&ofiles)) ? &dipar : NULL, (l_flag || !SLIST_EMPTY(&ifiles)) ? &dopar : NULL, - bufsz); + bufsz, l_flag); if (l_flag) { listenpath = getenv("AUCAT_SOCKET"); -- cgit v1.2.3