#include "survive_types.h" #include #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