summaryrefslogtreecommitdiff
path: root/3rdparty/libwav/tests
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/libwav/tests')
-rw-r--r--3rdparty/libwav/tests/write_f32/CMakeLists.txt13
-rw-r--r--3rdparty/libwav/tests/write_f32/main.c25
2 files changed, 38 insertions, 0 deletions
diff --git a/3rdparty/libwav/tests/write_f32/CMakeLists.txt b/3rdparty/libwav/tests/write_f32/CMakeLists.txt
new file mode 100644
index 0000000..cca1ecf
--- /dev/null
+++ b/3rdparty/libwav/tests/write_f32/CMakeLists.txt
@@ -0,0 +1,13 @@
+add_executable(write-f32 main.c)
+target_link_libraries(write-f32
+ wav::wav
+ $<$<PLATFORM_ID:Linux>:m>
+ )
+target_include_directories(write-f32 PRIVATE ${CMAKE_SOURCE_DIR}/include)
+target_compile_features(write-f32 PRIVATE ${wav_compile_features})
+target_compile_definitions(write-f32 PRIVATE ${wav_compile_definitions})
+target_compile_options(write-f32 PRIVATE
+ ${wav_c_flags}
+ $<$<CONFIG:RELEASE>:${wav_compile_options_release}>
+ $<$<CONFIG:RELWITHDEBINFO>:${wav_compile_options_release}>
+ )
diff --git a/3rdparty/libwav/tests/write_f32/main.c b/3rdparty/libwav/tests/write_f32/main.c
new file mode 100644
index 0000000..14f4f33
--- /dev/null
+++ b/3rdparty/libwav/tests/write_f32/main.c
@@ -0,0 +1,25 @@
+#include <math.h>
+#include <stdlib.h>
+#include "wav.h"
+
+void generate_sine_wave(float *x, int sample_rate, int len)
+{
+ for (int i = 0; i < len; ++i) {
+ x[i] = 0.5f * cosf(2 * 3.14159265358979323f * 440.0f * i / sample_rate);
+ }
+}
+
+int main(void)
+{
+ float *buf = malloc(sizeof(float) * 10 * 44100);
+ generate_sine_wave(buf, 44100, 10 * 44100);
+ WavFile *fp = wav_open("out.wav", WAV_OPEN_WRITE);
+ wav_set_format(fp, WAV_FORMAT_IEEE_FLOAT);
+ /* wav_set_sample_size(fp, sizeof(float)); */
+ wav_set_num_channels(fp, 1);
+ wav_set_sample_rate(fp, 44100);
+ wav_write(fp, buf, 10 * 44100);
+ wav_close(fp);
+ free(buf);
+ return 0;
+}