From 03092469c8c84e03f9099a0d147217561706a1e8 Mon Sep 17 00:00:00 2001 From: Stéphane Lenclud Date: Thu, 2 May 2019 21:17:47 +0200 Subject: Kinect IR camera was not listed any more. --- tracker-kinect-face/camera_kinect_ir.cpp | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/tracker-kinect-face/camera_kinect_ir.cpp b/tracker-kinect-face/camera_kinect_ir.cpp index a4e6b203..c5b21572 100644 --- a/tracker-kinect-face/camera_kinect_ir.cpp +++ b/tracker-kinect-face/camera_kinect_ir.cpp @@ -22,6 +22,17 @@ namespace Kinect { static const char KKinectIRSensor[] = "Kinect V2 IR Sensor"; + // Safe release for interfaces + template + inline void SafeRelease(Interface *& pInterfaceToRelease) + { + if (pInterfaceToRelease != NULL) + { + pInterfaceToRelease->Release(); + pInterfaceToRelease = NULL; + } + } + CamerasProvider::CamerasProvider() = default; std::unique_ptr CamerasProvider::make_camera(const QString& name) @@ -36,12 +47,16 @@ namespace Kinect { std::vector CamerasProvider::camera_names() const { - IKinectSensor* ptr; - BOOLEAN b; - if (SUCCEEDED(GetDefaultKinectSensor(&ptr)) && SUCCEEDED(ptr->get_IsAvailable(&b)) && b) + IKinectSensor* kinect; + if (SUCCEEDED(GetDefaultKinectSensor(&kinect))) + { + SafeRelease(kinect); return { KKinectIRSensor }; + } else + { return {}; + } } bool CamerasProvider::can_show_dialog(const QString& camera_name) @@ -109,17 +124,6 @@ namespace Kinect { return { iFrame, new_frame }; } - // Safe release for interfaces - template - inline void SafeRelease(Interface *& pInterfaceToRelease) - { - if (pInterfaceToRelease != NULL) - { - pInterfaceToRelease->Release(); - pInterfaceToRelease = NULL; - } - } - /// /// /// -- cgit v1.2.3