aboutsummaryrefslogtreecommitdiff
path: root/wave_linux.c
diff options
context:
space:
mode:
Diffstat (limited to 'wave_linux.c')
-rw-r--r--wave_linux.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/wave_linux.c b/wave_linux.c
new file mode 100644
index 0000000..6d04fb7
--- /dev/null
+++ b/wave_linux.c
@@ -0,0 +1,26 @@
+
+#include "wave.h"
+#include <stdio.h>
+#include <sndfile.h>
+
+int wave_out(wave_t *wave)
+{
+ SNDFILE* out;
+ SF_INFO info;
+
+ info.samplerate = wave->samples_per_sec;
+ info.channels = wave->channels;
+ info.format = SF_FORMAT_WAV | SF_FORMAT_PCM_U8;
+
+ out = sf_open("out.wav", SFM_WRITE, &info);
+ sf_write_raw(out, wave->frame_data, wave->frame_size);
+ sf_close(out);
+
+ printf("channels: %d, samples_per_sec: %d, bits_per_sample: %d, frame_size: %d, frame_count: %d\n", wave->channels, wave->samples_per_sec, wave->bits_per_sample, wave->frame_size, wave->frame_count);
+ return 0;
+}
+
+const char *wave_err_to_str(int err)
+{
+ return "unknown error";
+}