From 25ac70d30f83df61a8ebf8061dfed568679e44c6 Mon Sep 17 00:00:00 2001
From: Ryan Pavlik <ryan.pavlik@collabora.com>
Date: Wed, 19 Jun 2019 12:39:22 -0500
Subject: [PATCH] d/mt: Guard devices based on required backend.

---
 src/xrt/drivers/montrack/mt_device.c | 34 ++++++++++++++++++++++++----
 1 file changed, 29 insertions(+), 5 deletions(-)

diff --git a/src/xrt/drivers/montrack/mt_device.c b/src/xrt/drivers/montrack/mt_device.c
index 69100cb3d..99885a305 100644
--- a/src/xrt/drivers/montrack/mt_device.c
+++ b/src/xrt/drivers/montrack/mt_device.c
@@ -24,12 +24,29 @@
 
 #include "optical_tracking/tracker3D_sphere_mono.h"
 
-//#IFDEF have_opencv
+#if defined(XRT_HAVE_LIBUVC) && defined(XRT_HAVE_JPEG)
+#define XRT_HAVE_UVC_FRAMESERVER
+#endif
+
+#if defined(XRT_HAVE_JPEG) && defined(__linux__)
+#define XRT_HAVE_V4L2_FRAMESERVER
+#endif
+
+#if defined(XRT_HAVE_FFMPEG)
+#define XRT_HAVE_FFMPEG_FRAMESERVER
+#endif
+
+#ifdef XRT_HAVE_OPENCV
 #include "filters/filter_opencv_kalman.h"
-//#IFDEF have_uvc
+#endif // XRT_HAVE_OPENCV
+
+#ifdef XRT_HAVE_UVC_FRAMESERVER
 #include "frameservers/uvc/uvc_frameserver.h"
-//#IFDEF have_v4l2
+#endif // XRT_HAVE_UVC_FRAMESERVER
+
+#ifdef XRT_HAVE_V4L2_FRAMESERVER
 #include "frameservers/v4l2/v4l2_frameserver.h"
+#endif // XRT_HAVE_V4L2_FRAMESERVER
 
 
 static void
@@ -101,12 +118,15 @@ mt_device_create(char* device_name, bool log_verbose, bool log_debug)
 	mt_device_t* md = U_TYPED_CALLOC(mt_device_t);
 
 	dummy_init_mt_device(md);
-
+#ifdef XRT_HAVE_V4L2_FRAMESERVER
 	if (strcmp(device_name, "MONO_PS3EYE") == 0) {
 		if (mt_create_mono_ps3eye(md)) {
 			return md;
 		}
 	}
+#endif // XRT_HAVE_V4L2_FRAMESERVER
+
+#ifdef XRT_HAVE_UVC_FRAMESERVER
 	if (strcmp(device_name, "MONO_LOGITECH_C270") == 0) {
 		if (mt_create_mono_c270(md)) {
 			return md;
@@ -127,7 +147,7 @@ mt_device_create(char* device_name, bool log_verbose, bool log_debug)
 			return md;
 		}
 	}
-
+#endif // XRT_HAVE_UVC_FRAMESERVER
 	if (strcmp(device_name, "STEREO_PS4_60FPS") == 0) {
 		if (mt_create_stereo_ps4(md)) {
 			return md;
@@ -138,6 +158,7 @@ mt_device_create(char* device_name, bool log_verbose, bool log_debug)
 	return NULL;
 }
 
+#ifdef XRT_HAVE_V4L2_FRAMESERVER
 bool
 mt_create_mono_ps3eye(mt_device_t* md)
 {
@@ -227,7 +248,9 @@ mt_create_mono_ps3eye(mt_device_t* md)
 	    md->frameservers[0], &(descriptors[source_index]));
 	return true;
 }
+#endif // XRT_HAVE_V4L2_FRAMESERVER
 
+#ifdef XRT_HAVE_UVC_FRAMESERVER
 bool
 mt_create_mono_c270(mt_device_t* md)
 {
@@ -589,6 +612,7 @@ mt_create_uvbi_hdk(mt_device_t* md)
 
 	return true;
 }
+#endif // XRT_HAVE_UVC_FRAMESERVER
 
 bool
 mt_create_stereo_ps4(mt_device_t* md)
-- 
GitLab