aboutsummaryrefslogtreecommitdiff
path: root/include/libsurvive/survive_api.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/libsurvive/survive_api.h')
-rw-r--r--include/libsurvive/survive_api.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/include/libsurvive/survive_api.h b/include/libsurvive/survive_api.h
new file mode 100644
index 0000000..52eca8d
--- /dev/null
+++ b/include/libsurvive/survive_api.h
@@ -0,0 +1,63 @@
+#include "survive_types.h"
+#include <stdbool.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ struct SurviveAsyncContext;
+ typedef struct SurviveAsyncContext SurviveAsyncContext;
+
+ /***
+ * Initialize a new instance of an async context -- mirrors survive_init
+ * @return Pointer to the async context
+ */
+ SURVIVE_EXPORT SurviveAsyncContext *survive_async_init(int argc, char *const *argv);
+
+ /**
+ * Close all devices and free all memory associated with the given context
+ */
+ SURVIVE_EXPORT void survive_async_close(SurviveAsyncContext* actx);
+
+ /**
+ * Start the background thread which processes images.
+ */
+ SURVIVE_EXPORT void survive_async_start_thread(SurviveAsyncContext* actx);
+
+ /**
+ * @return true iff the background thread is still running
+ */
+ SURVIVE_EXPORT bool survive_async_is_running(SurviveAsyncContext *actx);
+
+ struct SurviveAsyncObject;
+ typedef struct SurviveAsyncObject SurviveAsyncObject;
+
+ /**
+ * Get the first known object. Note that the first n objects are the lighthouses; for however many you are
+ * configured for.
+ */
+ SURVIVE_EXPORT const SurviveAsyncObject* survive_async_get_first_tracked(SurviveAsyncContext* actx);
+ /**
+ * Get the next known object from a current one.
+ */
+ SURVIVE_EXPORT const SurviveAsyncObject* survive_async_get_next_tracked(SurviveAsyncContext* actx, const SurviveAsyncObject* curr);
+
+ /**
+ * Gets the next object which has been updated since we last looked at it with this function
+ */
+ SURVIVE_EXPORT const SurviveAsyncObject *survive_async_get_next_updated(SurviveAsyncContext *actx);
+
+ /**
+ * Gets the pose of a given object
+ */
+ SURVIVE_EXPORT survive_timecode survive_async_object_get_latest_pose(const SurviveAsyncObject *sao,
+ SurvivePose *pose);
+
+ /**
+ * Gets the null terminated name of the object.
+ */
+ SURVIVE_EXPORT const char *survive_async_object_name(const SurviveAsyncObject *sao);
+
+#ifdef __cplusplus
+}
+#endif