X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=drivers%2Fsound%2Fsound.c;h=dd3f9db4f7547da4b45491eb44e8dd906062e504;hb=7a6c6dba28fd084f37ff43bebd721caeae9ab698;hp=4f0ad0d8f0d706f4bd0881e878341f37a388f414;hpb=172e3c11901229f0fb88317ac73a47d944a74f46;p=oweals%2Fu-boot.git diff --git a/drivers/sound/sound.c b/drivers/sound/sound.c index 4f0ad0d8f0..dd3f9db4f7 100644 --- a/drivers/sound/sound.c +++ b/drivers/sound/sound.c @@ -8,7 +8,7 @@ #include void sound_create_square_wave(uint sample_rate, unsigned short *data, int size, - uint freq) + uint freq, uint channels) { const unsigned short amplitude = 16000; /* between 1 and 32767 */ const int period = freq ? sample_rate / freq : 0; @@ -21,14 +21,17 @@ void sound_create_square_wave(uint sample_rate, unsigned short *data, int size, size--; while (size) { - int i; + int i, j; + for (i = 0; size && i < half; i++) { size -= 2; - *data++ = amplitude; + for (j = 0; j < channels; j++) + *data++ = amplitude; } for (i = 0; size && i < period - half; i++) { size -= 2; - *data++ = -amplitude; + for (j = 0; j < channels; j++) + *data++ = -amplitude; } } }