From: Jaroslav Kysela Date: Fri, 5 Mar 2004 09:11:13 +0000 (+0000) Subject: Maarten de Boer X-Git-Tag: v1.0.4~28 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=23ed7623c6d5f08b51d837db1146070bff1c20a1;p=alsa-lib.git 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. --- 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;