aboutsummaryrefslogtreecommitdiff
path: root/src/accelerometers.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/accelerometers.c')
-rw-r--r--src/accelerometers.c39
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);
+
+}
+