Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / u-boot / drivers / sound / sound.c
diff --git a/qemu/roms/u-boot/drivers/sound/sound.c b/qemu/roms/u-boot/drivers/sound/sound.c
new file mode 100644 (file)
index 0000000..9dda2db
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2012 Samsung Electronics
+ * R. Chandrasekar <rcsekar@samsung.com>
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#include <common.h>
+#include <sound.h>
+
+void sound_create_square_wave(unsigned short *data, int size, uint32_t freq)
+{
+       const int sample = 48000;
+       const unsigned short amplitude = 16000; /* between 1 and 32767 */
+       const int period = freq ? sample / freq : 0;
+       const int half = period / 2;
+
+       assert(freq);
+
+       /* Make sure we don't overflow our buffer */
+       if (size % 2)
+               size--;
+
+       while (size) {
+               int i;
+               for (i = 0; size && i < half; i++) {
+                       size -= 2;
+                       *data++ = amplitude;
+                       *data++ = amplitude;
+               }
+               for (i = 0; size && i < period - half; i++) {
+                       size -= 2;
+                       *data++ = -amplitude;
+                       *data++ = -amplitude;
+               }
+       }
+}