From 23ed7623c6d5f08b51d837db1146070bff1c20a1 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Fri, 5 Mar 2004 09:11:13 +0000 Subject: [PATCH] Maarten de Boer The attached patch makes the alsa-lib/test/pmc.c generate_sine code slightly more simple, efficient and readable (but not less accurate), taking quite some calculation out of the loop. --- test/pcm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/pcm.c b/test/pcm.c index 07ea7daf..fec36b51 100644 --- a/test/pcm.c +++ b/test/pcm.c @@ -29,9 +29,9 @@ static void generate_sine(const snd_pcm_channel_area_t *areas, snd_pcm_uframes_t offset, int count, double *_phase) { + static double max_phase = 2. * M_PI; double phase = *_phase; - double max_phase = 1.0 / freq; - double step = 1.0 / (double)rate; + double step = max_phase*freq/(double)rate; double res; signed short *samples[channels]; int steps[channels]; @@ -53,7 +53,7 @@ static void generate_sine(const snd_pcm_channel_area_t *areas, } /* fill the channel areas */ while (count-- > 0) { - res = sin((phase * 2 * M_PI) / max_phase - M_PI) * 32767; + res = sin(phase) * 32767; ires = res; for (chn = 0; chn < channels; chn++) { *samples[chn] = ires; -- 2.47.1