aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorcnlohr <lohr85@gmail.com>2016-12-16 00:41:28 -0500
committercnlohr <lohr85@gmail.com>2016-12-16 00:41:28 -0500
commit898a9a5f242a1691e1c34062208b48cb0682b5d9 (patch)
tree1be7599d33a0e5f6bbacd892fbc9573ed943af34 /include
parent41b2091f9be605b39ce33f3ce8bb47ab1aeabcc7 (diff)
downloadlibsurvive-898a9a5f242a1691e1c34062208b48cb0682b5d9.tar.gz
libsurvive-898a9a5f242a1691e1c34062208b48cb0682b5d9.tar.bz2
Remove dependency on Xinerama
Improve camfinder a little Add data_recorder.c Closes #1 making libsurvive much more pluggable.
Diffstat (limited to 'include')
-rw-r--r--include/survive.h42
1 files changed, 39 insertions, 3 deletions
diff --git a/include/survive.h b/include/survive.h
index 637bd09..61a6620 100644
--- a/include/survive.h
+++ b/include/survive.h
@@ -1,17 +1,53 @@
#ifndef _SURVIVE_H
#define _SURVIVE_H
+#include <stdint.h>
+
+#define SV_FLOAT double
+
struct SurviveContext;
-struct SurviveContext * survive_init( void(*faultfunction)( struct SurviveContext * ctx, const char * fault ),
- void(*notefunction)( struct SurviveContext * ctx, const char * note ) );
+//DANGER: This structure may be redefined
+
+struct SurviveObject
+{
+ struct SurviveContext * ctx;
+ char codename[4];
+ int16_t buttonmask;
+ int16_t axis1;
+ int16_t axis2;
+ int16_t axis3;
+ int8_t charge;
+ int8_t charging:1;
+ int8_t ison:1;
+ int sensors;
+
+ int nr_locations;
+ SV_FLOAT * sensor_locations;
+};
+
+typedef void (*text_feedback_fnptr)( struct SurviveContext * ctx, const char * fault );
+typedef void (*light_process_func)( struct SurviveObject * so, int sensor_id, int acode, int timeinsweep, uint32_t timecode, uint32_t length );
+typedef void (*imu_process_func)( struct SurviveObject * so, int16_t * accelgyro, uint32_t timecode, int id );
+
+struct SurviveContext * survive_init();
+
+//For any of these, you may pass in 0 for the function pointer to use default behavior.
+void survive_install_info_fn( struct SurviveContext * ctx, text_feedback_fnptr fbp );
+void survive_install_error_fn( struct SurviveContext * ctx, text_feedback_fnptr fbp );
+void survive_install_light_fn( struct SurviveContext * ctx, light_process_func fbp );
+void survive_install_imu_fn( struct SurviveContext * ctx, imu_process_func fbp );
void survive_close( struct SurviveContext * ctx );
int survive_poll();
+
+//Utilitiy functions.
int survive_simple_inflate( struct SurviveContext * ctx, const char * input, int inlen, char * output, int outlen );
-int survive_usb_send_magic(struct SurviveContext * ctx, int on );
+
+//TODO: Need to make this do haptic responses for hands.
+int survive_usb_send_magic( struct SurviveContext * ctx, int on );
#endif