iio: added event api
[contrib/mraa.git] / api / mraa / iio.h
old mode 100644 (file)
new mode 100755 (executable)
index d00ac7c..a800f96
@@ -25,6 +25,7 @@
 #pragma once
 
 #include "common.h"
+#include "iio_kernel_headers.h"
 
 typedef struct {
     int index;
@@ -40,6 +41,11 @@ typedef struct {
     unsigned int location;
 } mraa_iio_channel;
 
+typedef struct {
+    char *name;
+       int enabled;
+} mraa_iio_event;
+
 /**
  * @file
  * @brief iio
@@ -77,6 +83,8 @@ mraa_result_t mraa_iio_trigger_buffer(mraa_iio_context dev, void (*fptr)(char* d
 
 const char* mraa_iio_get_device_name(mraa_iio_context dev);
 
+int mraa_iio_get_device_num_by_name(const char* name);
+
 int mraa_iio_read_size(mraa_iio_context dev);
 
 mraa_iio_channel* mraa_iio_get_channels(mraa_iio_context dev);
@@ -94,6 +102,17 @@ mraa_result_t mraa_iio_write(mraa_iio_context dev, const char* attribute);
 
 mraa_result_t mraa_iio_get_channel_data(mraa_iio_context dev);
 
+mraa_result_t mraa_iio_get_event_data(mraa_iio_context dev);
+
+mraa_result_t mraa_iio_event_read(mraa_iio_context dev, const char* attribute, float* data);
+
+mraa_result_t mraa_iio_event_write(mraa_iio_context dev, const char* attribute, const char* data);
+
+mraa_result_t mraa_iio_event_poll(mraa_iio_context dev, struct iio_event_data* data);
+
+mraa_result_t mraa_iio_event_setup_callback(mraa_iio_context dev, void (*fptr)(struct iio_event_data* data), void* args);
+
+mraa_result_t mraa_iio_event_extract_event(struct iio_event_data* event, int* chan_type, int* modifier, int* type, int* direction, int* channel, int* channel2, int* different);
 /**
  * De-inits an mraa_iio_context device
  *