ref: 22bca74feebe60c2059c931861c8b9ee567c6c50
parent: 9681dab6c716b544e3a07e39a6c6a52b900de6b4
author: qwx <qwx@sciops.net>
date: Sun Jan 5 02:43:12 EST 2025
add pcminv: invert samples
--- a/mkfile
+++ b/mkfile
@@ -18,7 +18,11 @@
# override $MANFILES??
TARG=\
pcmmix\
+ pcminv\
pplay\
$O.pcmmix: pcmmix.$O
$LD $LDFLAGS -o $target pcmmix.$O
+
+$O.pcminv: pcminv.$O
+ $LD $LDFLAGS -o $target pcminv.$O
--- /dev/null
+++ b/pcminv.c
@@ -1,0 +1,27 @@
+#include <u.h>
+#include <libc.h>
+
+void
+main(int argc, char **argv)
+{
+ int fd;
+ long n;
+ s16int *p, *e, buf[IOUNIT / sizeof *p];
+
+ ARGBEGIN{
+ }ARGEND
+ fd = 0;
+ if(*argv != nil && (fd = open(*argv, OREAD)) < 0)
+ sysfatal("open: %r");
+ for(;;){
+ if((n = read(fd, buf, sizeof buf)) <= 0)
+ break;
+ for(p=buf,e=buf+n/sizeof(*buf); p<e; p++)
+ *p = -(*p);
+ if(write(1, buf, n) != n)
+ sysfatal("write: %r");
+ }
+ if(n < 0)
+ sysfatal("read: %r");
+ exits(nil);
+}
--
⑨