From 70958d6e6d40802c0f6ac0ed55bf704fbe2c9fc3 Mon Sep 17 00:00:00 2001 From: Ludovic Pouzenc Date: Fri, 1 Jun 2012 20:21:08 +0000 Subject: Ecriture du test5 : intégration de PulseAudio dans le code du test4. Le squelette est là, l'initialisation du contexte pulse audio aussi. Reste : ouvrir les flux, écrire le callback pulse qui récupère le niveau sonore (avec timing si possible) et qui appelle le callback applicatif du test5.c MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///var/svn/2012-violon-leds/trunk@9 6be1fa4d-33ac-4c33-becc-79fcb3794bb6 --- tests/test5/compute.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 tests/test5/compute.c (limited to 'tests/test5/compute.c') diff --git a/tests/test5/compute.c b/tests/test5/compute.c new file mode 100644 index 0000000..11a7f81 --- /dev/null +++ b/tests/test5/compute.c @@ -0,0 +1,42 @@ +#include "compute.h" + +void audio2hsv_1(gint audio_level, gint *light_h, gint *light_s, gint *light_v) { + // Dummy code + *light_h=-audio_level; + *light_s=audio_level; + *light_v=65535; +} + + +void hsv2rgb(gint h, gint s, gint v, gint *r, gint *g, gint *b) { + /* + * Purpose: + * Convert HSV values to RGB values + * All values are in the range [0..65535] + */ + float F, M, N, K; + int I; + + if ( s == 0 ) { + /* + * Achromatic case, set level of grey + */ + *r = v; + *g = v; + *b = v; + } else { + I = (int) h/(65535/6); /* should be in the range 0..5 */ + F = h - I; /* fractional part */ + + M = v * (1 - s); + N = v * (1 - s * F); + K = v * (1 - s * (1 - F)); + + if (I == 0) { *r = v; *g = K; *b = M; } + if (I == 1) { *r = N; *g = v; *b = M; } + if (I == 2) { *r = M; *g = v; *b = K; } + if (I == 3) { *r = M; *g = N; *b = v; } + if (I == 4) { *r = K; *g = M; *b = v; } + if (I == 5) { *r = v; *g = M; *b = N; } + } +} -- cgit v1.2.3