diff options
author | Ludovic Pouzenc <ludovic@pouzenc.fr> | 2012-06-01 20:21:08 +0000 |
---|---|---|
committer | Ludovic Pouzenc <ludovic@pouzenc.fr> | 2012-06-01 20:21:08 +0000 |
commit | 70958d6e6d40802c0f6ac0ed55bf704fbe2c9fc3 (patch) | |
tree | cb73f0e4552b23eb988a8c3b12d442933f69113b /tests/test5/compute.c | |
parent | f84862993fca45ffb3190d8e3ca0ae73ad4f2942 (diff) | |
download | 2012-violon-leds-70958d6e6d40802c0f6ac0ed55bf704fbe2c9fc3.tar.gz 2012-violon-leds-70958d6e6d40802c0f6ac0ed55bf704fbe2c9fc3.tar.bz2 2012-violon-leds-70958d6e6d40802c0f6ac0ed55bf704fbe2c9fc3.zip |
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
git-svn-id: file:///var/svn/2012-violon-leds/trunk@9 6be1fa4d-33ac-4c33-becc-79fcb3794bb6
Diffstat (limited to 'tests/test5/compute.c')
-rw-r--r-- | tests/test5/compute.c | 42 |
1 files changed, 42 insertions, 0 deletions
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; } + } +} |