ebca69e20e5d9c937dba346e17004c27ff9b22fb
[platform/upstream/gst-plugins-good.git] / gst / goom / goom_tools.c
1 #include "goom_tools.h"
2 #include <stdlib.h>
3
4 GoomRandom *
5 goom_random_init (int i)
6 {
7   GoomRandom *grandom = (GoomRandom *) malloc (sizeof (GoomRandom));
8
9   srand (i);
10   grandom->pos = 1;
11   goom_random_update_array (grandom, GOOM_NB_RAND);
12   return grandom;
13 }
14
15 void
16 goom_random_free (GoomRandom * grandom)
17 {
18   free (grandom);
19 }
20
21 void
22 goom_random_update_array (GoomRandom * grandom, int numberOfValuesToChange)
23 {
24   while (numberOfValuesToChange > 0) {
25 #if RAND_MAX < 0x10000
26     grandom->array[grandom->pos++] = ((rand () << 16) + rand ()) / 127;
27 #else
28     grandom->array[grandom->pos++] = rand () / 127;
29 #endif
30     numberOfValuesToChange--;
31   }
32 }