aboutsummaryrefslogtreecommitdiff
path: root/src/poser.c
diff options
context:
space:
mode:
authorJustin Berger <j.david.berger@gmail.com>2018-04-03 15:11:12 -0600
committerJustin Berger <j.david.berger@gmail.com>2018-04-03 17:01:14 -0600
commit18b20af7195b94889924156de2b4aa704b2c7391 (patch)
tree0eb3e3ab817341595167a949f67d5c0ba1dd879f /src/poser.c
parentd3d159772f1684082d7a545fbb3028d98d803308 (diff)
downloadlibsurvive-18b20af7195b94889924156de2b4aa704b2c7391.tar.gz
libsurvive-18b20af7195b94889924156de2b4aa704b2c7391.tar.bz2
Refactor pose function to get timecode and not lh
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..20334f7 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);
}
}