diff options
Diffstat (limited to 'src/accelerometers.c')
-rw-r--r-- | src/accelerometers.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/accelerometers.c b/src/accelerometers.c index 7d8b0f2..054e870 100644 --- a/src/accelerometers.c +++ b/src/accelerometers.c @@ -29,8 +29,10 @@ #include <stdio.h> #include <stdlib.h> #include <stdint.h> +#include <unistd.h> #include "types.h" +#include "audio.h" struct input_event { struct timeval time; @@ -143,3 +145,40 @@ void accelerometer_update(AccelHandle *accel) { } +/* The accelerometer work thread */ +static void *accel_work(void *data) { + + AccelHandle *accel; + AudioContext *audio; + int pos = 0; + + accel = accelerometer_open(); + audio = audio_setup(); + + while ( 1 ) { + + accelerometer_update(accel); + + if ( accel->lval > 1000 ) pos = 1000; + if ( (accel->lval < -1000) && (pos == 1000) ) { + pos = 0; + audio_trigger_moo(audio); + } + + usleep(250000); + } + + audio_shutdown(audio); + + return NULL; + +} + +void accelerometer_start() { + + GThread *work_thread; + + work_thread = g_thread_create(accel_work, NULL, TRUE, NULL); + +} + |