From c8e2aaf6999da491d6ea8dab2bc99752fa94b6d4 Mon Sep 17 00:00:00 2001 From: Ludovic Pouzenc Date: Sun, 17 Jun 2012 16:18:53 +0000 Subject: Ajout d'une fonction pour linéariser un peu la réponse du projecteur (illuminate.c) Ajout d'une moyenne sur 8 valeurs pour la luminosité (mais on garde la valeur instantanée pour altérer la couleur) Correction du vumeter qui s'initialisais à 1px par 1px au lancement de l'appli. Avec le lud-msi, le projo à Ju et les sons enregistrés par Laurent, ça pète pas mal :P 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@24 6be1fa4d-33ac-4c33-becc-79fcb3794bb6 --- src/illuminate.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'src/illuminate.c') diff --git a/src/illuminate.c b/src/illuminate.c index a0f146d..92c8fac 100644 --- a/src/illuminate.c +++ b/src/illuminate.c @@ -3,6 +3,7 @@ #include #include #include +#include #include "illuminate.h" // FTDI Vendor ID @@ -84,12 +85,22 @@ int dmx_init() { return 0; } +inline int projector_correction(int in) { + //int out=powf(((in-108.f)/162.f),3.f)*256.f+80.f; + int out=in*0.25f+0.75*(powf(((in-100.f)/162.f),3.f)*256.f+48.f); + if (out>255) out=255; + if (out<0) out=0; + return out; +} + int dmx_write_rgb(int r, int g, int b) { if (! ftdi.usb_dev ) return -1; - universe[2]=r; - universe[3]=g; - universe[4]=b; + universe[2]=projector_correction(r); + universe[3]=projector_correction(g); + universe[4]=projector_correction(b); + +// printf("rgb %3i %3i %3i dmx %3i %3i %3i\n", r,g,b, universe[2], universe[3], universe[4]); return dmx_universe_write(&ftdi, universe, DMX_CHANNELS); } -- cgit v1.2.3