sensors: add allow multiple sensors in an external app

Change-Id: Ic6c0b8b607a3ccc027c9117c3bbc97cf0c099fb5
Signed-off-by: Ben Fennema <[email protected]>
diff --git a/firmware/src/drivers/vsync/vsync.c b/firmware/src/drivers/vsync/vsync.c
index c619b28..62d567c 100644
--- a/firmware/src/drivers/vsync/vsync.c
+++ b/firmware/src/drivers/vsync/vsync.c
@@ -95,7 +95,7 @@
     20,
 };
 
-static bool vsyncPower(bool on)
+static bool vsyncPower(bool on, void *cookie)
 {
     if (on) {
         extiClearPendingGpio(mTask.pin);
@@ -110,17 +110,17 @@
     return true;
 }
 
-static bool vsyncFirmwareUpload()
+static bool vsyncFirmwareUpload(void *cookie)
 {
     return sensorSignalInternalEvt(mTask.sensorHandle, SENSOR_INTERNAL_EVT_FW_STATE_CHG, 1, 0);
 }
 
-static bool vsyncSetRate(uint32_t rate, uint64_t latency)
+static bool vsyncSetRate(uint32_t rate, uint64_t latency, void *cookie)
 {
     return sensorSignalInternalEvt(mTask.sensorHandle, SENSOR_INTERNAL_EVT_RATE_CHG, rate, latency);
 }
 
-static bool vsyncFlush()
+static bool vsyncFlush(void *cookie)
 {
     return osEnqueueEvt(sensorGetMyEventType(SENS_TYPE_VSYNC), SENSOR_DATA_EVENT_FLUSH, NULL);
 }
@@ -143,8 +143,7 @@
     osLog(LOG_INFO, "VSYNC: task starting\n");
 
     mTask.id = taskId;
-    mTask.sensorHandle = sensorRegister(&mSensorInfo, &mSensorOps);
-    sensorRegisterInitComplete(mTask.sensorHandle);
+    mTask.sensorHandle = sensorRegister(&mSensorInfo, &mSensorOps, NULL, true);
     mTask.pin = gpioRequest(VSYNC_PIN);
     mTask.isr.func = vsyncIsr;