diff --git a/src/cube.c b/src/cube.c index 696f20b..862fafb 100644 --- a/src/cube.c +++ b/src/cube.c @@ -6,6 +6,8 @@ void cube(int etat) { static GLuint cube = 0, proc_id = 0; static GLclampf rgb[3] = { 0 }; + static GLfloat musique[3] = {0}; + switch(etat) { case GL4DH_INIT: for(int i = 0; i < 3; ++i) { @@ -39,7 +41,25 @@ void cube(int etat) { gl4duBindMatrix("modview"); gl4duLoadIdentityf(); + GLfloat s = moyenneMusique() * 5000.f; + if(musique[0] != 0 || musique[1] != 0) { + s = (s - musique[0]) / (musique[1] - musique[0]) + .5f; + if(s > musique[2]) { + s -= s / 10.f; + } + if(s < musique[2]) { + s += s / 10.f; + } + } + musique[1] = musique[1] < s ? s : musique[1]; + musique[0] = musique[0] > s ? s : musique[0]; + musique[2] = s; + gl4duPushMatrix(); + if(musique[1] != musique[0]) { + gl4duScalef(s, s, s); + } + printf("Son : %f\n", s); gl4duRotatef(cube_rotation, 0, 1, 0); gl4duSendMatrices(); gl4dgDraw(cube);