Recently Written · git

sad

sad (2f30.org simple audio daemon) with a Cygwin/OSS port on branch cygwin

git clone https://github.com/equwal/sad

Log | Files | Refs


commit 178e378914c62891f84633233020ec13a9ae069f
sin <sin@2f30.org>
2015-01-02 14:50:39 +0000

Factor our pcm conversion functions to a separate file

 Makefile |  1 +
 output.c | 20 --------------------
 pcm.c    | 26 ++++++++++++++++++++++++++
 sad.h    |  4 ++++
 4 files changed, 31 insertions(+), 20 deletions(-)
diff --git a/Makefile b/Makefile
index c261f37..d17eaeb 100644
--- a/Makefile
+++ b/Makefile
@@ -16,6 +16,7 @@ OBJ =\
 	mp3.o\
 	notify.o\
 	output.o\
+	pcm.o\
 	playlist.o\
 	sad.o\
 	sndio.o\
diff --git a/output.c b/output.c
index aa7c31b..a346c95 100644
--- a/output.c
+++ b/output.c
@@ -151,26 +151,6 @@ closeoutputs(void)
 	return r;
 }
 
-static void
-s16monotostereo(short *in, short *out, size_t nsamples)
-{
-	size_t i;
-
-	for (i = 0; i < nsamples; i++) {
-		out[i * 2] = in[i];
-		out[i * 2 + 1] = in[i];
-	}
-}
-
-static void
-s16stereotomono(short *in, short *out, size_t nsamples)
-{
-	size_t i;
-
-	for (i = 0; i < nsamples; i++)
-		out[i] = (in[i * 2] + in[i * 2 + 1]) / 2;
-}
-
 static int
 playoutput(Format *fmt, Outputdesc *desc, void *buf, size_t nbytes)
 {
diff --git a/pcm.c b/pcm.c
new file mode 100644
index 0000000..222dfc3
--- /dev/null
+++ b/pcm.c
@@ -0,0 +1,26 @@
+#include <sys/select.h>
+
+#include <limits.h>
+#include <stdio.h>
+
+#include "sad.h"
+
+void
+s16monotostereo(short *in, short *out, size_t nsamples)
+{
+	size_t i;
+
+	for (i = 0; i < nsamples; i++) {
+		out[i * 2] = in[i];
+		out[i * 2 + 1] = in[i];
+	}
+}
+
+void
+s16stereotomono(short *in, short *out, size_t nsamples)
+{
+	size_t i;
+
+	for (i = 0; i < nsamples; i++)
+		out[i] = (in[i * 2] / 2) + (in[i * 2 + 1] / 2);
+}
diff --git a/sad.h b/sad.h
index c7e671d..bab6fbc 100644
--- a/sad.h
+++ b/sad.h
@@ -147,3 +147,7 @@ int addsubscriber(int, int);
 int addsubscribername(int, const char *);
 int notify(int);
 void removesubscriber(int);
+
+/* pcm.c */
+void s16monotostereo(short *, short *, size_t);
+void s16stereotomono(short *, short *, size_t);