aboutsummaryrefslogtreecommitdiff
path: root/src/poser.c
diff options
context:
space:
mode:
authorJustin Berger <j.david.berger@gmail.com>2018-04-03 23:44:14 -0600
committerJustin Berger <j.david.berger@gmail.com>2018-04-03 23:44:14 -0600
commitc7d9d271796b20f886e2441de852498ecb25ca82 (patch)
tree5929c2793c33c80e5392982a9baaa8d5ccaca724 /src/poser.c
parentfe025b0ff6bfb440da7cec8f388fa951910a86f0 (diff)
parent6a45298c9bc34aac59cc2ebb9de2d82c7a42756e (diff)
downloadlibsurvive-c7d9d271796b20f886e2441de852498ecb25ca82.tar.gz
libsurvive-c7d9d271796b20f886e2441de852498ecb25ca82.tar.bz2
Merge branch 'master' into imu
Diffstat (limited to 'src/poser.c')
-rw-r--r--src/poser.c26
1 files changed, 22 insertions, 4 deletions
diff --git a/src/poser.c b/src/poser.c
index 9a0de24..499e0ff 100644
--- a/src/poser.c
+++ b/src/poser.c
@@ -7,11 +7,29 @@
#define _USE_MATH_DEFINES // for C
#include <math.h>
-void PoserData_poser_raw_pose_func(PoserData *poser_data, SurviveObject *so, uint8_t lighthouse, SurvivePose *pose) {
- if (poser_data->rawposeproc) {
- poser_data->rawposeproc(so, lighthouse, pose, poser_data->userdata);
+static uint32_t PoserData_timecode(PoserData *poser_data) {
+ switch (poser_data->pt) {
+ case POSERDATA_LIGHT: {
+ PoserDataLight *lightData = (PoserDataLight *)poser_data;
+ return lightData->timecode;
+ }
+ case POSERDATA_FULL_SCENE: {
+ PoserDataFullScene *pdfs = (PoserDataFullScene *)(poser_data);
+ return -1;
+ }
+ case POSERDATA_IMU: {
+ PoserDataIMU *imuData = (PoserDataIMU *)poser_data;
+ return imuData->timecode;
+ }
+ }
+ return -1;
+}
+
+void PoserData_poser_pose_func(PoserData *poser_data, SurviveObject *so, SurvivePose *pose) {
+ if (poser_data->poseproc) {
+ poser_data->poseproc(so, PoserData_timecode(poser_data), pose, poser_data->userdata);
} else {
- so->ctx->rawposeproc(so, lighthouse, pose);
+ so->ctx->poseproc(so, PoserData_timecode(poser_data), pose);
}
}