// SPDX-License-Identifier: GPL-2.0+
/*
 * Copyright (C) 2012 Samsung Electronics
 * R. Chandrasekar <rcsekar@samsung.com>
 */

#include <common.h>
#include <log.h>
#include <sound.h>

void sound_create_square_wave(uint sample_rate, unsigned short *data, int size,
			      uint freq, uint channels)
{
	const unsigned short amplitude = 16000; /* between 1 and 32767 */
	const int period = freq ? sample_rate / 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, j;

		for (i = 0; size && i < half; i++) {
			size -= 2;
			for (j = 0; j < channels; j++)
				*data++ = amplitude;
		}
		for (i = 0; size && i < period - half; i++) {
			size -= 2;
			for (j = 0; j < channels; j++)
				*data++ = -amplitude;
		}
	}
}
