summaryrefslogtreecommitdiffhomepage
path: root/compat
diff options
context:
space:
mode:
authorStéphane Lenclud <github@lenclud.com>2019-03-10 17:10:02 +0100
committerStéphane Lenclud <github@lenclud.com>2019-03-10 17:10:02 +0100
commit8a9d143523fddbf8ee9cb1c58cb281ac380d3ae0 (patch)
treeae5cabae1134456eff8260ff6e7c30639c9ef42c /compat
parentc90f8fbd1a83ffeed6b0bb9d55e91f4a4a9b8641 (diff)
Kinect Point Tracker: Working on basic architecture.
Diffstat (limited to 'compat')
-rw-r--r--compat/camera-names.cpp15
-rw-r--r--compat/camera-names.hpp5
2 files changed, 20 insertions, 0 deletions
diff --git a/compat/camera-names.cpp b/compat/camera-names.cpp
index 246d76ee..c30e4b33 100644
--- a/compat/camera-names.cpp
+++ b/compat/camera-names.cpp
@@ -49,6 +49,7 @@ QList<QString> get_camera_names()
// Enumerate the monikers.
IMoniker *pMoniker = nullptr;
ULONG cFetched;
+ bool hasKinect = true;
while (pEnumCat->Next(1, &pMoniker, &cFetched) == S_OK)
{
IPropertyBag *pPropBag;
@@ -63,12 +64,26 @@ QList<QString> get_camera_names()
// Display the name in your UI somehow.
QString str((QChar*)var.bstrVal, int(std::wcslen(var.bstrVal)));
ret.append(str);
+ if (!hasKinect && str.compare(KKinectVideoSensor)==0)
+ {
+ // We do have a Kinect V2 connected
+ hasKinect = true;
+ }
}
VariantClear(&var);
pPropBag->Release();
}
pMoniker->Release();
}
+
+ if (hasKinect)
+ {
+ // Add Kinect V2 IR Sensor as an option then
+ ret.append(QString(KKinectIRSensor));
+ // We made sure that extra camera is added at the end of our array so as not to mess up genuine camera indices...
+ // ...which we relly on to create our OpenCV VideoCapture object in Camera::start.
+ }
+
pEnumCat->Release();
}
else
diff --git a/compat/camera-names.hpp b/compat/camera-names.hpp
index 97184c8c..4d9b023c 100644
--- a/compat/camera-names.hpp
+++ b/compat/camera-names.hpp
@@ -13,6 +13,11 @@
#include "export.hpp"
+// Hard coding name of standard Kinect camera as returned from Windows API as used in ::get_camera_names
+static const char KKinectVideoSensor[] = "Kinect V2 Video Sensor";
+// Defining camera name for Kinect IR Sensor
+static const char KKinectIRSensor[] = "Kinect V2 IR Sensor";
+
OTR_COMPAT_EXPORT QList<QString> get_camera_names();
OTR_COMPAT_EXPORT int camera_name_to_index(const QString &name);