#include #include #include #include "gtkvumeter.h" #include "win_main.h" #include "compute.h" #include "capture.h" gint *audio_vumeter_val, *light_h, *light_s, *light_v, *light_r, *light_g, *light_b; void process(gint sound_level, void *userdata); int main (int argc, char **argv) { GtkWidget *mainwin; gint vals_for_vumeters[7]={0,0,0,0,0,0,0}; //sound,h,s,v,r,g,b //Some handy references to the previous array items to make things clear whenever possible audio_vumeter_val=vals_for_vumeters+0; light_h=vals_for_vumeters+1; light_s=vals_for_vumeters+2; light_v=vals_for_vumeters+3; light_r=vals_for_vumeters+4; light_v=vals_for_vumeters+5; light_b=vals_for_vumeters+6; pthread_t audio_analyzer; g_thread_init(NULL); gdk_threads_init(); gdk_threads_enter(); gtk_init (&argc, &argv); mainwin=win_main_build(); gtk_widget_show_all (mainwin); printf("debug : process==%p\n", process); pthread_create (&audio_analyzer, (void *)NULL, (void *)audio_thread, (void *)process); g_timeout_add (10, win_main_update_vumeters, (gpointer)vals_for_vumeters); gtk_main (); gdk_threads_leave(); return 0; } void process(gint sound_level, void *userdata) { printf("process(%i, %p)\n", sound_level, userdata); // Dummy code for audio capture *audio_vumeter_val=sound_level; // Transfert Function audio2hsv_1(*audio_vumeter_val,light_h,light_s,light_v); // Conversion hsv2rgb(*light_h,*light_s,*light_v,light_r,light_g,light_b); // Send to DMX //TODO }