# HG changeset patch # User Mychaela Falconia # Date 1668904302 0 # Node ID a3aa152c46532105573541f78a14b4c2e1627fea # Parent 820d88b979249a089ce51a5bb06c10965f271c82 libtest: pcmwrite helper function and module diff -r 820d88b97924 -r a3aa152c4653 libtest/Makefile --- a/libtest/Makefile Sat Nov 19 23:57:42 2022 +0000 +++ b/libtest/Makefile Sun Nov 20 00:31:42 2022 +0000 @@ -1,6 +1,6 @@ CC= gcc CFLAGS= -O2 -OBJS= binreader.o wavreader.o wavwriter.o +OBJS= binreader.o pcmwrite.o wavreader.o wavwriter.o LIB= libtest.a all: ${LIB} diff -r 820d88b97924 -r a3aa152c4653 libtest/pcmwrite.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtest/pcmwrite.c Sun Nov 20 00:31:42 2022 +0000 @@ -0,0 +1,22 @@ +/* + * Here we implement our PCM write helper function. + */ + +#include +#include "wavwriter.h" +#include "pcmwrite.h" + +void write_pcm_to_wav(void *wav, const int16_t *pcm) +{ + uint8_t bytes[320], *dp; + int16_t samp; + unsigned n; + + dp = bytes; + for (n = 0; n < 160; n++) { + samp = pcm[n]; + *dp++ = samp & 0xFF; + *dp++ = (samp >> 8) & 0xFF; + } + wav_write_data(wav, bytes, 320); +} diff -r 820d88b97924 -r a3aa152c4653 libtest/pcmwrite.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtest/pcmwrite.h Sun Nov 20 00:31:42 2022 +0000 @@ -0,0 +1,6 @@ +/* + * This header file declares the interface to our helper function + * for writing 16-bit linear PCM samples to WAV output file. + */ + +extern void write_pcm_to_wav(void *wav, const int16_t *pcm);